В моем приложении ASP.Net MVC у меня есть слой Model, который использует локализованные аннотации проверки для бизнес-объектов.
Код выглядит так:
[XmlRoot("Item")]
public class ItemBo : BusinessObjectBase
{
[Required(ErrorMessageResourceName = "RequiredField", ErrorMessageResourceType = typeof(StringResource))]
[HelpPrompt("ItemNumber")]
public long ItemNumber { get; set; }
Это хорошо работает.
Когда я хочу сериализовать объект в XML, я получаю ошибку:
"Указанное свойство 'ErrorMessageResourceType' не найдено" (хотя оно теряется из-за других ошибок, это не исключение, над которым я пытаюсь работать.
Поэтому проблема заключается в использовании атрибутов DataAnnotations. Соответствующие файлы ресурсов находятся в другой сборке и помечены как «общедоступные», и, как я уже сказал, все работает хорошо, пока я не приступлю к сериализации.
У меня есть ссылки на соответствующий класс DataAnnotations и т. Д. В моих тестах nunit и целевом классе.
Кстати, HelpPrompt - это еще одна аннотация данных, которую я определил в другом месте, и она не вызывает проблемы.
Кроме того, если я изменю атрибут Required на стандартный формат, как показано ниже, сериализация работает нормально.
[Required(ErrorMessage="Error")]
Кто-нибудь может мне помочь?