Я пишу службу .net WCF. Я написал несколько классов, которые я хочу вернуть к вызывающему коду из службы WCF; следовательно, я украшаю их атрибутом DataContract
.Как использовать методы в классах, украшенных DataContractAttribute в клиенте WCF?
Предположим, что моя служба WCF называется FooService
. Он содержит метод, называемый FooMethod
, который возвращает объект типа FooData
(который украшен атрибутом DataContract
. Предположим, что FooData
содержит список чисел и метод, называемый FooAverage
, который возвращает среднее значение чисел.
В Visual Studio, я создаю новое приложение для использования службы. Я добавляю новую «Сервисную ссылку» в мою службу WCF и присваиваю ей пространство имен myWcfService
. В моем клиентском коде я создаю прокси-класс и получаю подключение к службе. получить объект FooData
из моего прокси-сервера, вызов метода myWcfService.FooMethod()
. Он возвращает объект типа myWcfService.FooData
, который является типом, определенным из метаданных FooService
.
Теперь, когда у меня есть мой объект типа myWcfService.FooData
, как я могу получить эти данные в объект типа FooData
в качестве исходного типа из служебного кода, чтобы я мог позвонить FooData.FooAverage()
?
Edit: Я полностью осведомлен о том, что данные поступают вниз по трубе в формате XML и что логика методов в классе, украшенный DataContract
не получает возвращаемую службу; это не сериализуемо. Я спрашиваю: если я могу ссылаться на класс, который содержит класс DataContract
, используемый в службе, есть ли простой способ де-сериализации данных в класс, из которого он был сериализован?
Я согласен принять ответ, что это невозможно с текущей картой .net.
Я хотел бы избежать Remoting - WCF сделал это устаревшее. Добавление операций в контракт на обслуживание - это способ сделать это в WCF. Однако, когда я читал вопрос, это не то, о чем он просил. –