2010-08-12 4 views
0

Est-il possible de personnaliser ou de contrôler quels types de classe de collection sont créés dans les types d'interface Side du client WCF lors de l'utilisation de l'option de menu "Add Service Reference" par défaut dans Visual Studio?Personnaliser WCF Ajouter un comportement de référence de service?

Notre service WCF est telle que lorsque le automatisé « Ajouter un service de référence » est exécuté, il crée des jeux de données pour tous les types de côté serveur qui contiennent des collections d'objets .... Et cela provoque une

« non correspondant l'élément de démarrage est ouvert "

message d'erreur. Je veux dire à nos partenaires de busiens comment créer un client WCF qui fonctionne, et pour ce faire, je pense que je dois leur dire comment créer un client avec des types où les types de collection pertinents sont des listes, ou des tableaux d'objets, plutôt que de jeux de données.

EDIT:

J'ai dans mes types d'un type personnalisé appelé DoubleSchedule, qui met en œuvre IXmlSerializable, et obtient un numéro de série comme l'un des éléments suivants:
<DataELementName firstIntervalId="87656" schedule="77.3|77.3|76.9|77" />
ou
<OtherDataELementName firstIntervalId="87656" lastIntervalId="87670" value="76.1" />

Même quand je spécifiez le type de collection dans l'onglet Avancé de la boîte de dialogue Ajouter une référence de service, tous mes éléments Xml qui utilisent ce type obtiennent un type généré basé sur DataSet.

Des idées?

Répondre

1

Votre problème ne semble pas être sur les types de collecte, mais sur le DataContractSerializer. Si vous oubliez d'appliquer l'attribut XmlSchemaProvider à votre classe, DataContractSerialzer suppose que vous essayez de sérialiser un objet DataSet hérité.

Je suppose que vous n'essayez pas de faire cela, et par conséquent le DataSet retourné est nul. C'est très probable d'où provient votre erreur d'élément de départ.

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

EDIT:

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

Questions connexes