将System.ComponentModel.DisplayName与动态值一起使用?

时间:2010-08-19 12:09:31

标签: c# asp.net-mvc system.componentmodel

我试图在我的系统中实现多语言支持, 工作中的其他系统使用xmlfiles来生成他们已经使用了一段时间的数据库,所以他们希望我也使用它。

我已经设法翻译除了我的formmodels中的displaynames之外的所有内容,这些值显然只是常量值,所以我不能使用获得正确翻译的方法。

这就是代码的现状:

[System.ComponentModel.DisplayName("Kontraktnamn")]
public string Name { get; set; }

我想做这样的事情:

[System.ComponentModel.DisplayName(GetTextByKey("Contract_Name"))]
public string Name { get; set; }

可以解决这个问题吗?或者也许有更好的方法来做它并仍然使用xmlfiles?

1 个答案:

答案 0 :(得分:4)

您需要创建自己的自定义属性,该属性可以读取xml值:

public class CustomDisplayName : DisplayNameAttribute
{
    public CustomDisplayName()
    {
        this.DisplayName = MyXmlReader.Read(DisplayName);
    }
}