Выставить объект из библиотеки классов с помощью WCF - PullRequest
4 голосов
/ 27 апреля 2009

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

Ответы [ 2 ]

8 голосов
/ 27 апреля 2009

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

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

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

0 голосов
/ 27 апреля 2009

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

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

Может, это поможет?

Марк

...