как получить атрибуты аннотации данных из свойств - PullRequest
1 голос
/ 02 ноября 2010

Я пытаюсь построить сетку, используя информацию о классе и его свойства вместе с поддерживаемыми атрибутами dataannotion.

Класс и аннотации могут быть определены в разных классах, например (классы Product и ProductMetaData) и связаны вместе с атрибутом metadatatype (также могут быть определены в одном классе).

Будет ли это сделать атрибуты DataAnnotaion доступными в самом базовом классе или есть другие способы получения атрибутов dataannotation?

Любой пример кода, который вы можете связать, также будет очень полезен.

спасибо.

1 Ответ

2 голосов
/ 02 ноября 2010

Чтобы прочитать метаданные модели из класса, вы обычно должны создавать экземпляр DataAnnotationsModelMetadataProvider (в System.ComponentModel).

Этот класс генерирует объект ModelMetadata, который представляет собой сводку метаданных класса.

Одним из основных преимуществ этого подхода является то, что он автоматически учитывает метаданные в классах метаданных друзей.

Используя ModelMetadata, вы также вводите хорошую абстракцию между конкретными атрибутами метаданных и интерпретацией их значения. Например, если вы создаете некоторые из своих собственных атрибутов метаданных или хотите применить другие источники метаданных (например, обрабатывать все свойства, заканчивающиеся в Date, как если бы к ним применялся DataType.Date, даже если они этого не делают), вы можете создать свой собственный DataAnnotationsModelMetadataProvider, добавьте эти дополнительные правила, и весь ваш другой код работает без изменений, потому что он читает из класса ModelMetadata, а не непосредственно из знания конкретных атрибутов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...