2010-01-31 6 views
3

Lorsque vous créez du code à partir d'un fichier WSDL à l'aide de SvcUtil.exe, un des nombreux types créés est une interface dérivée de l'interface de service et d'IClientChannel.Pourquoi SvcUtil crée une interface de canal dérivée de IClientChannel

Si, par exemple, l'interface de service créée est appelée IMyService, il crée aussi cette interface:

public interface IMyServiceChannel : 
    IMyService, System.ServiceModel.IClientChannel 

Pourquoi ne définit cette interface? Pour autant que je puisse voir, il n'est référencé nulle part dans le code généré automatiquement.

Répondre

4

[UPDATE]

trouvé un lien sur MSDN (faites défiler jusqu'au bas). Rien ne l'implémente, mais vous pouvez l'utiliser directement avec ChannelFactory.

Il est là pour que les utilisateurs puissent avoir intelisense à la fois pour votre interface de service et l'infrastructure WCF en un seul endroit.

Je me souviens que quelqu'un de MS parler sur un podcast ou un blog ...

+0

D'accord, mais rien ne semble implémenter cette interface, alors pourquoi devrais-je, en tant que développeur utilisant IntelliSense, le consommer/l'utiliser en premier lieu? –

+0

Merci pour la mise à jour. Ce serait tellement plus utile si IChannelFactory aurait eu un CreateChannel() (ou si ChannelFactory .CreateChannel() avait été virtuel) ... –

+0

Que voulez-vous dire? CreateChannel est virtuel. Juste pas toutes les surcharges –

0

Avez-vous essayé wsdl.exe? "svcutil /?" vous montrera les valeurs supportées pour/tcv (target clr version).