2009-09-16 5 views
1

J'ai deux ServiceContracts implémentés en tant qu'interfaces. Je veux exporter les métadonnées pour un seul d'entre eux. L'astuce est que les deux interfaces sont implémentées par le même classe. Par conséquent, je ne pense pas que je peux utiliser/excludeTypes. Veuillez inclure l'exemple de syntaxe lorsque vous répondez. Merci!Comment exporter des métadonnées pour un seul contrat avec svcutil.exe?

EDIT: Un collègue m'a récemment demandé pourquoi cela est nécessaire. La raison en est que le premier ServiceContract est pour un service REST, ce qui n'a pas de sens pour exporter des métadonnées. Donc, je reçois deux fichiers wsdl et xsd générés, distinguables uniquement parce que le second nom de fichier est ajouté avec "1". Cela rend l'outillage difficile et ajoute plus d'encombrement au répertoire de sortie.

J'ai ajouté une prime pour tenter de susciter l'intérêt pour cette question.

Répondre

2

J'ai créé une classe de contrat de service implémentant 2 interfaces comme décrit.

namespace NS 
{ 
    [ServiceContract] 
    public interface IREST 
    { 
     [OperationContract] 
     string WorldHello(string name); 
    } 

    [ServiceContract] 
    public interface IInterface 
    { 
     [OperationContract] 
     string HelloWorld(string name); 
    } 

    public class CI2 : IREST, IInterface 
    { 
     public string WorldHello(string name) 
     { 
      return "World Hello: " + name; 
     } 

     public string HelloWorld(string name) 
     { 
      return "Hello World: " + name; 
     } 
    } 
} 

lors de l'exécution svcutil normalement, je reçois un wsdl avec les méthodes des 2 interfaces
quand je lance svcutil avec/excludeType: IREST par exemple, je ne reçois que des méthodes de IInterface.

svcutil /excludeType:NS.IREST ci2service.exe 

utilisez-vous la même configuration? Dans ce cas, /excludeType fonctionne.

+0

Cela a fonctionné parfaitement! Je ne sais pas pourquoi il ne m'est pas venu à l'esprit que je pouvais mettre l'interface * dans/excludeTypes. Merci pour votre aide - plein de points attribués! – GuyBehindtheGuy

Questions connexes