2009-12-01 4 views
0

J'ai l'application de la console hôte de service WCF suivant:Comment configurer un point de terminaison WCF pour un service générique avec un type spécifié?

static void Main(string[] args) 
{ 
    ServiceHost serviceHost = 
     new ServiceHost(typeof(MyServiceName<int>)); 
    serviceHost.Open(); 
    Console.ReadLine(); 
} 

J'ai essayé de configurer un point final pour elle:

<services> 
    <service name="MyNamespace.MyServiceName&lt;int&gt;"> 
    <endpoint 
     address="net.tcp://localhost:8002/MyServiceName" 
     binding="netTcpBinding" 
     contract="MyNamespace.IMyServiceName&lt;int&gt;"/> 
    </service> 
</services> 

Mais cela ne fonctionne pas. Est le &lt; et &gt; le problème?

Répondre

2

Votre contrat doit être concret - vous ne pouvez pas utiliser de génériques, désolé. WCF est une bête très différente de tout. NET - et comme beaucoup de choses doivent être «réduites» à ce que le schéma XML peut exprimer, vous ne pouvez pas utiliser des interfaces (pour la plupart) et des génériques.

Vous devrez créer des interfaces concrètes et les utiliser comme contrats de service.

+0

Le contrat peut également être une interface. L'interface _can_ peut être générique mais comme le dit marc_s, la classe d'implémentation ne peut pas être générique. – MattC

+0

@MattC: donc le "Contrat =" avec le générique est OK? Je suis étonné ..... Je vais devoir essayer un jour :-) –

+0

@marc_s: non non non. Désolé, j'ai mal compris votre commentaire. Je pensais que vous parliez du contrat réel et non de la valeur dans le fichier web.config. – MattC

Questions connexes