建立可绑定的WCF通道
四、通道的实现
从上面的内容可知,本例实现了数据报信息交换模式。因此,通道需要实现IInputChannel接口,代码如下:
在IInputChannel中有两个关键的方法,WaitForMessage和Receive方法。当一个消息出现时,WaitForMessage返回true。然后Receive获得了这个消息。下面的使用其中一个协议栈接收消息的代码:class TestTransportChannel : ChannelBase,IInputChannel { protected EndpointAddress localAddress; public TestTransportChannel(TestTransportChannelListener parent, EndpointAddress address) : base(parent) { ... ... this.localAddress = address; }
public Message Receive(TimeSpan timeout) { Message msg; MessageHeader mh; BigHelper.DisplayMessage("Receive " + this.ToString()); msg = ((TestLevel2ChannelListener)this.Manager) .GetMessage(timeout); mh = MessageHeader.CreateHeader ("Level2", "http://Level2ns", "2"); msg.Headers.Add(mh); return msg; }
Receive方法返回一个Message对象。Message对象将被传递到WCF的各个层。接下来,让我们来看看ChannelListener的实现。
0
相关文章