2015-05-04 5 views
0

У нас есть требование, которое побуждает меня к разработке более общей службы WCF. Наш серверный код получает динамически построенный JSON из пользовательского интерфейса. Затем он де-сериализует этот JSON в объект (динамический). Можно ли отправить такой объект в WCF?Передача общего параметра типа «объект» на WCF

В принципе, можно ли отправить объект типа «объект» в WCF ...?

А затем нанести его строго типизированному объекту в WCF?

Спасибо.

+0

Я не могу ответить на этот вопрос, но нельзя ли отправить JSON на службу и восстановить его объект ? –

+1

Насколько я знаю, 'dynamic' и Generics не работают в WCF. (Требуется строго типизированный «DataContract») –

+0

Brad, это частично верно, фактически, «динамический» тип, определенный в службе WCF, становится «объектом» в клиентском прокси, поэтому технически он может быть определен как «объект» в WCF сервис, никакой разницы. – monstro

ответ

2

WCF строго типизирован. Он должен знать, как он может быть сериализован и десериализован. К сожалению, MEX слеп, как человек, которому нужна собака-поводырь. Он описывает все, что представлено в интерфейсе/контракте, поэтому он будет генерировать object для вас: /, но он не будет работать.

Если вам нужен какой-то общий способ для отправки anythintg от A до B, используйте ручной метод сериализации, xml или byte[] или Stream. (но это слишком много для этой проблемы, и вы можете отправить JSON, а также @ jfin3204)

+0

Спасибо, @sac, похоже, что вы правы, я провел много экспериментов, пытаясь заставить его работать (WCF через интерфейс, через динамический, через объект, через абстрактный, через родительский класс ...) Ничто не работает по мере необходимости или не работает вообще. Похоже, что строго типизированный объект - единственный способ ... И это имеет смысл, поскольку WCF должен знать, что сериализовать ввод. – monstro

Смежные вопросы