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

发布于 2024-09-15 06:30:59 字数 470 浏览 4 评论 0原文

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

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

这就是代码现在的样子:

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

我想做这样的事情:

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

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

Im trying to implement multi-language support in my system,
the other systems at work uses xmlfiles for this generated from a database that they have used for some time now so they want me to use this aswell.

I have managed to translate everything except the displaynames in my formmodels, these values can apperantly only be constant values so i can't use a method that gets the correct translation.

This is how the code is now:

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

And i want to do something like this:

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

Is it possible to work around this? Or maybe there is a better way to do it and still use the xmlfiles?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

甜是你 2024-09-22 06:30:59

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

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

You'll need to create your own custom attribute that can read the xml values:

public class CustomDisplayName : DisplayNameAttribute
{
    public CustomDisplayName()
    {
        this.DisplayName = MyXmlReader.Read(DisplayName);
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文