Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wcf 为什么SvcUtil创建从IClientChannel派生的通道接口_Wcf_Code Generation_Svcutil.exe - Fatal编程技术网

Wcf 为什么SvcUtil创建从IClientChannel派生的通道接口

Wcf 为什么SvcUtil创建从IClientChannel派生的通道接口,wcf,code-generation,svcutil.exe,Wcf,Code Generation,Svcutil.exe,当您使用SvcUtil.exe从WSDL文件创建代码时,在创建的许多类型中,有一个接口派生自服务接口和IClientChannel 例如,如果创建的服务接口称为IMyService,它也会创建此接口: public interface IMyServiceChannel : IMyService, System.ServiceModel.IClientChannel 它为什么定义这个接口?据我所知,它在自动生成的代码中没有被引用。[UPDATE] 在上找到链接(滚动至最底部)。没有实

当您使用SvcUtil.exe从WSDL文件创建代码时,在创建的许多类型中,有一个接口派生自服务接口和IClientChannel

例如,如果创建的服务接口称为IMyService,它也会创建此接口:

public interface IMyServiceChannel : 
    IMyService, System.ServiceModel.IClientChannel

它为什么定义这个接口?据我所知,它在自动生成的代码中没有被引用。

[UPDATE]

在上找到链接(滚动至最底部)。没有实现它,但直接使用ChannelFactory时可以使用它

这样用户就可以在一个地方同时拥有服务界面和WCF基础设施的智能感知

我记得微软有人在播客或博客上谈论过它…

你试过wsdl.exe吗?
“svcutil/?”将向您显示/tcv(目标clr版本)支持的值。

好的,但似乎没有实现此接口,因此作为使用IntelliSense的开发人员,我为什么要首先使用/使用它?感谢更新。如果IChannelFactory有一个CreateChannel()(或者如果ChannelFactory.CreateChannel()是虚拟的),它会非常有用……你是什么意思?CreateChannel是虚拟的。只是不是所有的重载CreateChannel()方法(没有参数的方法)是非虚拟的,但这是一个非常有用的方法…IIRC它调用另一个虚拟的方法,所以尽管不太漂亮,但仍然可以获得相同的结果。