#.net #vb.net #entity-framework #metadata
#.net #vb.net #entity-framework #метаданные
Вопрос:
Я работаю над бизнес-уровнем (отдельной сборкой), который будет содержать различные бизнес-объекты, используемые в нескольких клиентских приложениях. Одним из клиентских приложений является приложение WCF, которому потребуется сериализовать эти объекты. Для правильной сериализации объектов необходимо добавить метаданные для контрактов данных или для сериализации XML, но требования к сериализации могут различаться в разных приложениях.
Очевидно, что мне нужны метаданные, отделенные от определения класса. Итак, как мне добавить метаданные к моим сущностям для каждого отдельного приложения?
Ответ №1:
При обсуждении WCF вы, по сути, говорите о DTO. Было бы справедливым аргументом сказать, что если сериализация отличается, то это не один и тот же DTO, поскольку вся цель DTO — разрешить соответствующую сериализацию. Итак, мой ответ был бы таким: иметь несколько параллельных классов DTO, соответствующих потребностям разных API, и переводить между ними.
Вы могли бы сотворить некоторое волшебство, указав сериализатор в runine, но это более хрупко и сложно настроить.
Комментарии:
1. Таким образом, вы бы вернули бизнес-объекты с бизнес-уровня, а затем перевели их в соответствующий DTO?
2. @Sean если бы мне нужно было поддерживать несколько разных API с разными макетами, да