Как сделать аннотации данных на объекте в другой сборке? - PullRequest
3 голосов
/ 04 октября 2010

У меня есть абстрактный объект домена , который используется приложениями web и windows .Этот объект домена находится в старом пространстве имен вместе с любыми производными классами.

Для моего веб-приложения я хотел бы использовать аннотации данных .Обычно я создаю частичный класс для доменного объекта и предоставляю ему MetaData класс.Однако я не могу коснуться пространства имен, в котором находятся доменные объекты , и в этом моя проблема.

Есть ли какое-либо решение для предоставления частичных классов / метаданных для доменных объектов в другом пространстве имен?Помните, я вообще не могу касаться пространства имен объектов домена.

Ответы [ 2 ]

1 голос
/ 04 октября 2010

DataAnnotations работает путем украшения свойств для типа с атрибутами или путем украшения фактического типа с помощью MetadataTypeAttribute, который указывает на фактический класс, который содержит атрибуты проверки.

Если вы не можете прикоснуться к нему, вы не можете использовать DataAnnotations.Это так просто.Вы можете попробовать использовать методику создания кода, такую ​​как CCI , чтобы изменить сборку, не касаясь кода, но, в конце концов, вы все еще касаетесь его.

Вам нужно выбрать другую структуру проверки,Тот, который позволяет полностью отделить конфигурацию проверки от фактического кода: вам явно необходим Блок приложения проверки библиотеки предприятия , поскольку он позволяет поместить проверки в файл конфигурации (XML).

Удачи.

0 голосов
/ 20 мая 2016

На самом деле вы можете сделать это, это не невозможно, и это не большая рутина.

Просто создайте новый класс, который наследуется от класса вашего домена и живет внутри вашего веб-проекта. Это будет ваша модель просмотра. Присвойте только что созданный класс модели представления с MetadataTypeAttribute, который ссылается на класс, содержащий атрибуты данных, описывающие вашу проверку, отображение и т. Д.

Вот и все, просто как пирог.

...