Question

Je travaille sur un projet dans lequel j'ai 2 services Web qui ont besoin de la même entité. Les 2 services Web se trouvent sur le même serveur, ils partagent donc les mêmes classes sur le serveur principal.

Du côté frontal, mon code utilise les deux services Web et voit les entités des deux services comme distinctes (dans des espaces de noms différents), de sorte que je ne peux pas utiliser l'entité sur les deux services.

Est-ce que quelqu'un connaît un moyen de permettre que cela fonctionne dans .NET 2.0?

Je l'ai fait avec mon entité:

[XmlType(TypeName = "Class1", Namespace = "myNamespace")]
public class Class1
{
    public int field;
}

En espérant que mon IDE "connaisse" d'une manière ou d'une autre que la classe est la même sur les deux services Web afin de ne pas créer d'entités séparées pour les deux classes, mais pas de chance.

Est-ce possible de le faire avec les services Web .NET 2.0?

Était-ce utile?

La solution

Je pense que vous ne pouvez pas le faire depuis l'intérieur du VS mais vous pouvez utiliser manuellement l'utilitaire wsdl.exe comme ceci:

wsdl.exe /sharetypes http://localhost/MyService1.asmx?wsdl http://localhost/MyService2.asmx?wsdl

Notez l’option / sharetypes qui active la fonctionnalité de partage de types. Cette fonctionnalité crée un fichier de code avec une définition de type unique pour des types identiques partagés entre différents services (l'espace de nom, le nom et la signature filaire doivent être identiques).

Plus d'infos:

Autres conseils

Je ne suis pas sûr des détails de la mise en oeuvre avec .NET 2.0, mais je pense que vous voulez placer les classes communes dans un fichier XSD séparé et y faire référence à partir de vos deux WSDL. De cette façon, les types communs ont le même espace de noms entre les deux services.

Maintenant, comment vous faites cela dans .NET 2.0, je ne pourrais pas vous donner les détails sur ...

Pouvez-vous vérifier l'espace de noms de l'entité? Assurez-vous que c'est la même chose dans les deux services Web.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top