代码之家  ›  专栏  ›  技术社区  ›  Wayne Bloss

如何获取对wcf中iduplexchannel、iduplexsessionchannel或ioutputchannel的引用

  •  0
  • Wayne Bloss  · 技术社区  · 14 年前

    我有一个双工的WCF服务,我想获得对iduplexchannel、iduplexsessionchannel或ioutputchannel的引用,以便使用非阻塞的beginsend方法。

    在我的服务器上,在初始化方法的处理程序内部,我有以下内容(我尝试了我列出的每个接口来代替ioutputChannel。它们似乎都不存在。)

    _clientCb = OperationContext.Current.GetCallbackChannel<IDxClientCb>();
    _channel = OperationContext.Current.Channel;
    _duplexChannel = _channel as IOutputChannel;
    Debug.Print("Service IOutputChannel null: {0}", _duplexChannel == null);
    

    同样,在客户机中,我尝试将duplexchannelFactory.createChannel()的返回值强制转换为这些接口中的任何一个,并且总是返回一个空值。

    我怎样才能找到其中一个?

    1 回复  |  直到 14 年前
        1
  •  1
  •   tomasr    14 年前

    你为什么要这样做?如果您想进行异步操作,只需声明带有异步操作的回调契约,然后使用它们来代替?(见 http://msdn.microsoft.com/en-us/library/ms734701.aspx )