Выставить объект из библиотеки классов с помощью WCF

Я использую библиотеку классов, которая выставляет несколько объектов. Эти объекты имеют несколько свойств, которые содержат данные, которые нужны моим клиентам. Я хотел бы создать службу WCF, которая возвращает объекты моим клиентам, но я не могу обновить библиотеку классов, чтобы добавить атрибуты DataContract и DataMember. Какой самый простой способ выставить эти объекты?

2 ответа

Решение

Вы можете использовать DataContractSurrogate.

... Вы можете применить атрибут DataContract к классу Person, но это не всегда возможно. Например, класс Person может быть определен в отдельной сборке, которую вы не можете контролировать.

Учитывая это ограничение, один из способов сериализации класса Person состоит в том, чтобы заменить его другим классом, помеченным с помощью DataContractAttribute, и скопировать необходимые данные в новый класс. Цель состоит в том, чтобы класс Person отображался как DataContract для DataContractSerializer. Обратите внимание, что это один из способов сериализации классов контрактов, не связанных с данными....

Если вы не можете установить атрибуты [DataContract] и [DataMember] для своего объекта, вам нужно будет найти способ показать их с помощью XmlSerializer.

Вы можете определить службу или операцию для использования XmlSerializer, указав атрибут [XmlSerializerFormat] в контракте на обслуживание или в отдельном OperationContract.

Может быть, это поможет?

Марк

Другие вопросы по тегам