Настройка аннотаций данных в динамических данных
Я сталкивался со сценарием настройки аннотаций данных в веб-приложении с динамическими данными. Это сценарий:
[Дисплей (Name="DispName")]
открытая строка DName{get;set;}
Вместо жесткого кодирования Name = "DispName" для отображения DataAnnotation, я хочу получить некоторое значение из базы данных и вписать в атрибут имени. лайк:
[Дисплей (Name=SomeValueFromDB)]
открытая строка DName{get;set;}
Есть ли способ показать атрибут Name для отображения DataAnnotation из базы данных вместо жесткого кодирования его значения?
Заранее спасибо,
Суджит
1 ответ
Я нашел решение. Но это применимо, только если мы создаем приложение:
Создайте пользовательский класс (Say: CustomDisplayNameAttribute), который наследует DisplayNameAttribute. И назовите это имя класса как атрибут отображения (здесь "CustomDisplayName") над именем свойства.
При настройке DataAnnotation для атрибута Display не указывайте эту часть "Attribute" в имени класса. то есть. Атрибут DataAnnotation for Display будет иметь значение CustomDisplayName (не CustomDisplayNameAttribute).
public class DomainClass
{
[CustomDisplayName("")]
public object PropertyName{ get; set; }
}
public class CustomDisplayNameAttribute : DisplayNameAttribute
{
public CustomDisplayNameAttribute(string value)
: base(GetMessageFromResource(value))
{ }
private static string GetMessageFromResource(string value)
{
return "Custom Display Name";
}
}
Надеюсь, это поможет всем....
Удачного кодирования....