C # DataAnnotations и файлы ресурсов - почему нет простого конструктора? - PullRequest
2 голосов
/ 22 августа 2010

Я использую DataAnnotions в приложении ASP.NET MVC для проверки моих моделей ввода. Если я хочу использовать файлы ресурсов для сообщений об ошибках, я должен указать их с именованными параметрами, например:

[Required(
    ErrorMessageResourceType = typeof(Validation),
    ErrorMessageResourceName = "NameRequired")]

Поскольку я использую это в связке файлов, я подумал, что было бы намного проще (и более читабельно), если бы я мог использовать конструктор, подобный этому:

[Required(typeof(Validation), "NameRequired")]

Если я напишу свой собственный атрибут проверки, я смогу реализовать такой «простой конструктор»:

public class MyCustomValidationAttribute : ValidationAttribute
{
    public MyCustomValidationAttribute(Type resourceType, string resourceName)
    {
        base.ErrorMessageResourceType = resourceType;
        base.ErrorMessageResourceName = resourceName;
    }
}

Я что-то здесь упускаю или хотите, чтобы мы, команда Microsoft DataAnnotations, просто написали несколько дополнительных строк? : -)

РЕДАКТИРОВАТЬ:

Просто для пояснения: у меня есть файл ресурсов с именем "Validation.resx".

Ответы [ 2 ]

0 голосов
/ 03 мая 2013

Вы можете взглянуть на это расширение Github, которое приводит к гораздо более чистому коду: http://haacked.com/archive/2011/07/14/model-metadata-and-validation-localization-using-conventions.aspx

0 голосов
/ 22 августа 2010

Я слышу тебя и чувствую твою боль.У нас есть база данных с тысячами элементов, которые нуждаются в аннотациях данных.

Одним из вариантов является использование файлов ресурсов.Поначалу это может показаться еще более трудоемким, но вы можете повторно использовать ресурсы для таких простых вещей, как «Требуется имя».См. StackOverflow item для некоторых отведений.

...