.NET Mvc 本地化
.NET Mvc Localization
我正在尝试从 Mvc 扩展 DisplayAttrubte Logic。
不好的是因为 DisplayAttribute
是密封的 class 我无法继承。因此我继承自 DisplayNameAttribute
.
public class TranslatedDisplayAttribute : DisplayNameAttribute
{
public override string DisplayName
{
get
{
var myVariableName = ???;
return TranslationService.String( myVariableName );
}
}
}
而且我想像使用 DisplayAttribute 一样使用此属性。
public class MyDto {
[TranslatedDisplay]
public string myVariable { get; set; }
}
是否可以获取变量名称,其中分配了属性,以便在 TranslatedDisplayAttribute
实现中变量 myVariableName
自动设置为变量名称 (myVariable)?我不想做这样的事情。
public class MyDto {
[TranslatedDisplay( Name = "myVariable" )]
public string myVariable { get; set; }
}
编辑
而且我不想对 Resx 文件使用翻译方法。但是@Romias 谢谢你的回答。
[Display(Name = "XXX_YourPropertyItem", ResourceType = typeof(YourResourceFile))]
public string YourProperty { get; set; }
可能您已经意识到这一点,并且您想以另一种方式进行翻译,但是内置方法正在使用 Display
属性的另一个重载,使用资源文件。
[Display(Name = "XXX_YourPropertyItem", ResourceType = typeof(YourResourceFile))]
public string YourProperty { get; set; }
因此,"XXX_YourPropertyItem"是资源文件中的项目,"YourResourceFile"是资源文件的名称class。
我正在尝试从 Mvc 扩展 DisplayAttrubte Logic。
不好的是因为 DisplayAttribute
是密封的 class 我无法继承。因此我继承自 DisplayNameAttribute
.
public class TranslatedDisplayAttribute : DisplayNameAttribute
{
public override string DisplayName
{
get
{
var myVariableName = ???;
return TranslationService.String( myVariableName );
}
}
}
而且我想像使用 DisplayAttribute 一样使用此属性。
public class MyDto {
[TranslatedDisplay]
public string myVariable { get; set; }
}
是否可以获取变量名称,其中分配了属性,以便在 TranslatedDisplayAttribute
实现中变量 myVariableName
自动设置为变量名称 (myVariable)?我不想做这样的事情。
public class MyDto {
[TranslatedDisplay( Name = "myVariable" )]
public string myVariable { get; set; }
}
编辑
而且我不想对 Resx 文件使用翻译方法。但是@Romias 谢谢你的回答。
[Display(Name = "XXX_YourPropertyItem", ResourceType = typeof(YourResourceFile))]
public string YourProperty { get; set; }
可能您已经意识到这一点,并且您想以另一种方式进行翻译,但是内置方法正在使用 Display
属性的另一个重载,使用资源文件。
[Display(Name = "XXX_YourPropertyItem", ResourceType = typeof(YourResourceFile))]
public string YourProperty { get; set; }
因此,"XXX_YourPropertyItem"是资源文件中的项目,"YourResourceFile"是资源文件的名称class。