Сортировка данных WCF - PullRequest
       12

Сортировка данных WCF

1 голос
/ 14 сентября 2010

Прежде всего, прошу прощения, если это основной / простой вопрос WCF, я новичок WCF и до сих пор не сталкивался с этим.

Вопрос 1 - Есть ли способ узнать, какие данные распределяются при вызове службы wcf?

и с учетом следующих определений

Interface IX
{
   List<string> list;
   Dictionary<string,MyType> dict;
}

Interface IY : IX
{
   List<string> list2;
   Dictionary<string,MyType2> dict2;
}

Interface IService 
{
   DataSet MethodX( IX arg);
   DataSet MethodY( IY arg);
}

class service : IService { }
class A : IY { }

, где размещается службана отдельной машине

Вопрос 2 - что переносится при вызове MethodX & MethodY следующим образом

 A instance = new A();
 service s = new service();
 // init instance & Service
 s.MethodA(instance);              // what carries over to service on machine B ?
 s.MethodB(instance);              // same question - full A or only properties of IY ?

Ответы [ 2 ]

2 голосов
/ 14 сентября 2010

Ответ 1: Для просмотра сериализованных данных вы можете использовать Ведение журнала WCF .

Ответ 2: НичегоКод сгенерирует исключение, потому что для параметра arg не будет сериализуемого типа.

0 голосов
/ 16 сентября 2010

Я не буду касаться вашего примера, поскольку я не уверен, является ли его псевдо-код или нет, и, как вы узнаете, вы поймете, где он делает множество предположений.

На данный момент:

Установите «Fiddler» и запустите его (из нового меню в IE) и посмотрите фактический трафик, проходящий по сети.

Или сначала обратитесь к DataContractSerializer. Создайте и сериализуйте некоторые классы в простом консольном приложении и поймите, что происходит, прежде чем задействовать WCF.

http://msdn.microsoft.com/en-us/library/system.runtime.serialization.datacontractserializer.aspx

WCF, в очень грубом смысле, - это система для автоматического построения определений API (WSDL), установления сетевых соединений, (де) сериализации объектов и отправки их по соединению и маршрутизации их правильным методом в удаленном классе.

Сохраните тестовое приложение для дальнейшего устранения неполадок, когда вы неизбежно столкнетесь с ошибками WCF.

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

Люк

...