tags:

views:

28

answers:

2

Is there any way to customize or control which type of collection class types are created in the WCF client Side interface Types when using the default "Add Service Reference" menu option in Visual Studio?

Our WCF service is such that when the automated "Add Service Reference" runs, it creates DataSets for all the server side types that contain collections of objects.... And this is causing a

"no corresponding start element is open"

error message.

I want to tell our busienss partners how to create a WCF client that works, and in order to do that I think I need to tell them how to create a client with types where the relevant collection types are Lists, or arrays of objects, rather than datasets.

EDIT:

I have in my types a custom type called DoubleSchedule, which implements IXmlSerializable, and gets serialized like one of the following:
<DataELementName firstIntervalId="87656" schedule="77.3|77.3|76.9|77" />
or
<OtherDataELementName firstIntervalId="87656" lastIntervalId="87670" value="76.1" />

Even when I specify the Collection type in the Advanced tab of the Add Service Reference dialog, all of my Xml Elements that use this type are getting a generated type based on DataSet.

Ideas?

A: 

Yes, the dialog box looks like this:

alt text

empi
It's accessible from the "Add Service Reference" dialog by clicking on the "Advanced" button on that first dialog box.
marc_s
It is also available when you choose "Configure Service Reference"
empi
+1  A: 

Your problem does not seem to be about collection types, but about the DataContractSerializer. If you forget to apply the XmlSchemaProvider attribute to your class, the DataContractSerialzer assumes you are trying to serialize a legacy DataSet object.

I am assuming your are not trying to do that, and therefore the DataSet returned is null. That is very likely where your start element error comes from.

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

EDIT:

also http://msdn.microsoft.com/en-us/library/aa347876.aspx

insipid