Разоблачить объект из библиотеки классов, используя WCF

StackOverflow https://stackoverflow.com/questions/794739

  •  18-09-2019
  •  | 
  •  

Вопрос

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

Это было полезно?

Решение

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

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

Учитывая это ограничение, один из способов сериализации класса человека - заменить его другим классом, который отмечен DataContractattribute и копировать необходимые данные в новый класс. Цель состоит в том, чтобы класс человека появился в качестве обработки данных для dataContractSerializer. Обратите внимание, что это один из способов сериализации не датируемых контрактных классов. ...

Другие советы

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

Вы можете определить службу или операцию по использованию XMLSerializer, указав атрибут [XMLSerializerFormat] либо в вашем контракте на обслуживание, либо в отдельном отделе операции.

Возможно, это помогает?

Марк

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top