Как я могу использовать файл ресурсов для текста сообщения в атрибуте EntLib? - PullRequest
0 голосов
/ 07 декабря 2010

Я проверяю свойства своего бизнес-объекта, используя атрибуты проверки EntLib. Я хотел бы локализовать текст MessageTemplate с помощью файла ресурсов, но я получаю следующее сообщение времени компиляции, когда я делаю что-то вроде MessageTemplate = Resource.MyMessage:

"Аргумент атрибута должен быть выражением константы, выражением typeof или выражением создания массива типа параметра атрибута"

Есть ли способ использовать файл ресурсов для этого текста?

Спасибо, Jay

1 Ответ

1 голос
/ 07 декабря 2010

Вам нужно использовать свойства MessageTemplateResourceName и MessageTemplateResourceType вместо свойства MessageTemplate.

Ваш код будет выглядеть примерно так:

[StringLengthValidator(1, 50, 
   MessageTemplateResourceName="InvalidLength", 
   MessageTemplateResourceType=typeof(MyResource))]
public string FirstName
{
    get;
    set;
}

Обратите внимание, что вынельзя использовать строго типизированный класс ресурсов в атрибуте (например, MyResource.InvalidLength), поскольку атрибут ожидает константу, а автоматически сгенерированный класс содержит свойство.(Вот причина вашего сообщения об ошибке.)

См. Использование ресурсов шаблонов сообщений для получения дополнительной информации.

...