Я пытаюсь расширить логику DisplayAttrubte от Mvc. Плохо, так как DisplayAttribute
- это запечатанный класс, который я не могу наследовать. Поэтому я унаследовал от DisplayNameAttribute
..NET Mvc Локализация
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
implementaion переменная 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; }
Я не использую файлы Resx, поэтому я не хочу использовать этот подход. Мои переведенные ресурсы хранятся в базе данных SQL. –
Может быть, ваш подход может быть расширен поставщиком ресурсов ... для получения перевода из базы данных. Проверьте это: http://stackoverflow.com/a/2466530/7720 – Romias