Настроить WCF Добавить поведение справочной службы? - PullRequest
0 голосов
/ 12 августа 2010

Есть ли способ настроить или контролировать, какой тип классов коллекции создается в клиентском интерфейсе WCF Типы при использовании опции меню «Добавить ссылку на службу» по умолчанию в Visual Studio?

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

«нет соответствующего начального элемента открыто»

сообщение об ошибке.

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

РЕДАКТИРОВАТЬ:

В моих типах есть пользовательский тип с именем DoubleSchedule, который реализует IXmlSerializable и сериализуется, как один из следующих:
<DataELementName firstIntervalId="87656" schedule="77.3|77.3|76.9|77" />
или
<OtherDataELementName firstIntervalId="87656" lastIntervalId="87670" value="76.1" />

Даже когда я указываю тип Collection на вкладке Advanced диалогового окна Add Service Reference, все мои элементы Xml, использующие этот тип, получают сгенерированныйтип на основе DataSet.

Идеи?

Ответы [ 2 ]

1 голос
/ 13 августа 2010

Ваша проблема не в типах коллекций, а в DataContractSerializer.Если вы забыли применить атрибут XmlSchemaProvider к своему классу, DataContractSerialzer предполагает, что вы пытаетесь сериализовать устаревший объект DataSet.

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

См. http://msdn.microsoft.com/en-us/library/system.xml.serialization.xmlschemaproviderattribute.aspx

РЕДАКТИРОВАТЬ:

также http://msdn.microsoft.com/en-us/library/aa347876.aspx

0 голосов
/ 12 августа 2010
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...