对于扩展而言,有时候我们需要去自定义实现一个Binding。这时候你可以去修改binding的一些参数。或者自己去组合一个binding使用Custom binding。比如选择使用Http作为Transport,而 Encoding选择BinaryMessageENcoding。而有时候我们希望自己去实现一个TransportElement。这时候你会发现有很多代码要你实现。如果你用reflector看一下所有关于NetMsmqBinding的代码就会发现不止是实现一两个接口那么简单。
你要去实现InputChannel,OutputChannel, MetaData import,Export 等。
现在的话,你可以用WCF LOB Adapter SDK 很快的实现一个自己的Binding。
WCF LOB Adapter SDK 安装好之后,他在WCF 模型的
简单实现一个outputhandler
| 以下是引用片段: namespace Contoso.CustomAdapter { public class ContosoCustomAdapterOutboundHandler : ContosoCustomAdapterHandlerBase, IOutboundHandler { /**//// /// Initializes a new instance of the ContosoCustomAdapterOutboundHandler class /// public ContosoCustomAdapterOutboundHandler(ContosoCustomAdapterConnection connection , MetadataLookup metadataLookup) : base(connection, metadataLookup) { } IOutboundHandler Members#region IOutboundHandler Members /**//// /// Executes the request message on the target system and returns a response message. /// If there isn抰 a response, this method should return null /// public Message Execute(Message message, TimeSpan timeout) { // //TODO: Implement Execute // Console.WriteLine("Incoming Message ", message.GetReaderAtBodyContents().ReadInnerXml()); Message rm=Message.CreateMessage(MessageVersion.None,"","A message From WCF Adapter"); return rm; } #endregion IOutboundHandler Members } } |
这个Adapter的
用户评论