2009-03-25 8 views
1

J'utilise svcutil pour générer mon proxy wcf qui appelle un service Web WSE2.Génération de proxy WCF

Le problème survient lorsque l'auteur du service Web modifie l'ordre des champs dans le proxy.

J'ai examiné le proxy généré et constate que les attributs publics sont ornés de XmlElementAttribute (Order = 0). Order = 1, etc. pour chaque champ.

Existe-t-il un moyen de générer des proxies WCF qui peuvent encore fonctionner après que le service Web a changé?

Parce que maintenant je vais devoir régénérer le proxy et recompiler.

Répondre

0

Vous pouvez modifier manuellement le fichier généré, ce qui est probablement la meilleure solution si la seule chose qui a changé était l'ordre des champs. Mais vous devrez recompiler.

Sinon, vous pouvez utiliser une fabrique de canaux pour créer le canal, mais vous devrez toujours modifier le contrat de données => vous devrez recompiler.

Conserver le proxy dans un ensemble distinct?

0

Le proxy normal de base généré par svcutil utilisera DataContractSerializer, qui utilise ces attributs Order = x. Si vous le souhaitez, vous pouvez également utiliser le XmlSerializer, qui ne décorera pas vos propriétés avec un attribut Order = x.

Utilisation:

svcutil ........ /serializer:XmlSerializer 

pour y parvenir.

Marc

+1

Cela ne fonctionne pas pour moi, son aide de XmlSerializer par défaut et sa génération de ces attributs Ordre. –

+0

hhmm ..... ok ...... pas sûr pourquoi pas - travaillé dans mon cas. –

+0

Je suis à peu près sûr que DataContractSerializer est celui qui ne décorera pas avec l'attribut Order, et que XmlSerializer le fera. –

Questions connexes