【问题标题】:Why does SvcUtil create a Channel interface that derives from IClientChannel为什么 SvcUtil 创建一个从 IClientChannel 派生的 Channel 接口
【发布时间】:2011-01-11 11:24:26
【问题描述】:

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

例如,如果创建的服务接口叫IMyService,它也会创建这个接口:

public interface IMyServiceChannel : 
    IMyService, System.ServiceModel.IClientChannel

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

【问题讨论】:

    标签: wcf code-generation svcutil.exe


    【解决方案1】:

    [更新]

    MSDN 上找到了一个链接(滚动到最底部)。什么都没有实现,但是直接使用ChannelFactory的时候可以使用。

    它的存在是为了让用户可以在一个地方对您的服务接口和 WCF 基础架构进行智能感知。

    我记得 MS 的某个人在播客或博客上谈论它...

    【讨论】:

    • 好的,但似乎没有实现此接口,那么作为使用 IntelliSense 的开发人员,我为什么要首先使用/使用它?
    • 感谢您的更新。如果 IChannelFactory 有一个 CreateChannel() (或者如果 ChannelFactory.CreateChannel() 是虚拟的)会更有用...
    • 什么意思? CreateChannel 是虚拟的。只是不是所有的重载
    • CreateChannel() 方法(没有参数的方法)是非虚拟的,但那才是真正有用的方法......
    • IIRC 它调用另一个虚拟的,所以虽然不那么漂亮,你仍然可以达到相同的结果。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2015-04-19
      • 1970-01-01
      • 2011-04-08
      • 2022-06-14
      • 1970-01-01
      • 2020-01-27
      • 1970-01-01
      • 1970-01-01
      • 2020-01-23
      相关资源
      最近更新 更多