gpt4 book ai didi

c# - 将非常量表达式设置为 DisplayName

转载 作者:太空宇宙 更新时间:2023-11-03 10:59:13 73 4
gpt4 key购买 nike

我需要动态加载属性的 DisplayName(从数据库)。例如这样的事情:

[DisplayName(getDescriptionForLanguage("test"))]
public string test{ get; set; }

但是只能动态加载DisplayName,只允许常量。有什么方法可以作为方法的结果而不是从资源文件或常量中获取 DisplayName

最佳答案

可以调用返回非常量字符串的方法。
您必须创建一个新的属性类,例如:

class DisplayNameLanguage : DisplayNameAttribute
{
private readonly string resourceName;
public DisplayNameLanguage(string resourceName)
: base()
{
this.resourceName = resourceName;
}

public override string DisplayName
{
get
{
return getDescriptionForLanguage(resourceName);
}
}
}

现在您必须创建模型的部分子类。在那里,您可以使用从您的方法 getDescriptionForLanguage 获取描述的新属性:

[MetadataType(typeof(TestMD))]
public partial class Test { }
public partial class TestMD
{
[DisplayNameLanguage("Test")]
public string Prop1 { get; set; }
}

关于c# - 将非常量表达式设置为 DisplayName,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18310885/

73 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com