【问题标题】:Using System.ComponentModel.DisplayName with dynamic values?将 System.ComponentModel.DisplayName 与动态值一起使用?
【发布时间】:2010-08-19 12:09:30
【问题描述】:

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

我已经设法翻译除了我的表单模型中的显示名称之外的所有内容,这些值显然只能是常量值,因此我无法使用获得正确翻译的方法。

现在的代码是这样的:

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

我想做这样的事情:

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

是否有可能解决这个问题?或者也许有更好的方法来做到这一点并且仍然使用 xmlfiles?

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 没有在我的系统上编译,因为无法设置 DisplayName。但是你可以这样做public CustomDisplayName(aDisplayName) : base(aDisplayName) {} override string DisplayName { get { return MyXmlReader.Read(base.DisplayName); } }
    猜你喜欢
    • 2016-05-07
    • 2017-07-18
    • 1970-01-01
    • 2021-09-19
    • 2023-04-07
    • 2011-09-12
    • 2023-03-11
    • 1970-01-01
    • 2017-02-15
    相关资源
    最近更新 更多