// 建立自定义绑定 BindingElement[] bindingElements = new BindingElement[2]; bindingElements[0] = new TextMessageEncodingBindingElement(); bindingElements[1] = new HttpTransportBindingElement(); CustomBinding binding = new CustomBinding(bindingElements);
// 使用自定义绑定建立通道侦听器 IChannelListener<IReplyChannel> listener = binding.BuildChannelListener<IReplyChannel>( new Uri("http://localhost:8887/StringService"), new BindingParameterCollection()); // 监听消息 listener.Open(); Console.WriteLine("Listening for incoming channel connections");
// 建立Reply通道 IReplyChannel channel = listener.AcceptChannel(); Console.WriteLine("Channel accepted. Listening for messages"); channel.Open(); RequestContext request = channel.ReceiveRequest();
// 读取请求的消息 Message message = request.RequestMessage; Console.WriteLine("Message Received"); Console.WriteLine("Message Action: {0}", message.Headers.Action); string body = message.GetBody<string>(); Console.WriteLine("Message Content: {0}", body); // 发送响应消息 Message replymessage = Message.CreateMessage( binding.MessageVersion, "http://www.cnblogs.com/TerryLee/Encode", "Hello : " + body); request.Reply(replymessage);
// 释放对象
message.Close();
request.Close();
channel.Close();
listener.Close();
/// <summary> /// Author:TerryLee /// Url:[url]http://www.cnblogs.com/terrylee[/url] /// </summary> static void Main() { // 建立自定义绑定 BindingElement[] bindingElements = new BindingElement[2]; bindingElements[0] = new TextMessageEncodingBindingElement(); bindingElements[1] = new HttpTransportBindingElement(); CustomBinding binding = new CustomBinding(bindingElements); // 使用自定义绑定建立通道侦听器 IChannelListener<IReplyChannel> listener = binding.BuildChannelListener<IReplyChannel>( new Uri("http://localhost:8887/StringService"), new BindingParameterCollection()); // 监听消息 listener.Open(); Console.WriteLine("Listening for incoming channel connections"); // 建立Reply通道 IReplyChannel channel = listener.AcceptChannel(); Console.WriteLine("Channel accepted. Listening for messages"); channel.Open(); RequestContext request = channel.ReceiveRequest(); // 读取请求的消息 Message message = request.RequestMessage; Console.WriteLine("Message Received"); Console.WriteLine("Message Action: {0}", message.Headers.Action); string body = message.GetBody<string>(); Console.WriteLine("Message Content: {0}", body); // 发送响应消息 Message replymessage = Message.CreateMessage( binding.MessageVersion, "http://www.cnblogs.com/TerryLee/Encode", "Hello : " + body); request.Reply(replymessage); // 释放对象 message.Close(); request.Close(); channel.Close(); listener.Close(); Console.WriteLine("Press Enter to exit"); Console.ReadLine(); }
// 建立绑定 BindingElement[] bindingElements = new BindingElement[2]; bindingElements[0] = new TextMessageEncodingBindingElement(); bindingElements[1] = new HttpTransportBindingElement(); CustomBinding binding = new CustomBinding(bindingElements);
// 使用绑定建立通道工厂 IChannelFactory<IRequestChannel> factory = binding.BuildChannelFactory<IRequestChannel>( new BindingParameterCollection()); // 打开通道工厂 factory.Open(); Console.WriteLine("Channel factory opened");
// 建立Request通道 IRequestChannel channel = factory.CreateChannel( new EndpointAddress("http://localhost:8887/StringService")); channel.Open(); Console.WriteLine("Request channel opened");
// 建立请求消息 Message requestmessage = Message.CreateMessage( binding.MessageVersion, "http://www.cnblogs.com/TerryLee/Encode", "TerryLee"); // 发送请求消息并接收响应消息 Message replymessage = channel.Request(requestmessage); Console.WriteLine("Reply message received"); Console.WriteLine("Reply action: {0}", replymessage.Headers.Action); string data = replymessage.GetBody<string>(); Console.WriteLine("Reply content: {0}", data);
replymessage.Close(); channel.Close(); factory.Close();
/// <summary> /// Author:TerryLee /// Url:[url]http://www.cnblogs.com/terrylee[/url] /// </summary> public static void Main() { // 建立绑定 BindingElement[] bindingElements = new BindingElement[2]; bindingElements[0] = new TextMessageEncodingBindingElement(); bindingElements[1] = new HttpTransportBindingElement(); CustomBinding binding = new CustomBinding(bindingElements); // 使用绑定建立通道工厂 IChannelFactory<IRequestChannel> factory = binding.BuildChannelFactory<IRequestChannel>( new BindingParameterCollection()); // 打开通道工厂 factory.Open(); Console.WriteLine("Channel factory opened"); // 建立Request通道 IRequestChannel channel = factory.CreateChannel( new EndpointAddress("http://localhost:8887/StringService")); channel.Open(); Console.WriteLine("Request channel opened"); // 建立请求消息 Message requestmessage = Message.CreateMessage( binding.MessageVersion, "http://www.cnblogs.com/TerryLee/Encode", "TerryLee"); // 发送请求消息并接收响应消息 Message replymessage = channel.Request(requestmessage); Console.WriteLine("Reply message received"); Console.WriteLine("Reply action: {0}", replymessage.Headers.Action); string data = replymessage.GetBody<string>(); Console.WriteLine("Reply content: {0}", data); replymessage.Close(); channel.Close(); factory.Close(); Console.WriteLine("Press Enter to exit"); Console.ReadLine(); }
0javascript
收藏css
Ctrl+Enter 发布html
发布java
取消jquery