WCF LOB Adapter SDK 试用手记

开发者在线 Builder.com.cn 更新时间:2007-11-20作者:montaque'blog 来源:天极网软件频道

本文关键词: WCF SDK 试用

WCF  内置了很多Binding,而很多Binding其实主要是TransportElement 和 EncodingElement以及一些额外特性(比如安全,可靠消息传递等)的组合。

  对于扩展而言,有时候我们需要去自定义实现一个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 模型的基础之上作了一个Framework.另外帮你多了一个项目模板。你要做了的只是点击向导。然后加上自己的实现就行了。他自动生成的框架代码,都有详细的注释。告诉你该做什么。

点击查看清晰大图

  简单实现一个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的下载地址:

  http://www.microsoft.com/downloads/details.aspx?FamilyID=56278FDE-B708-469C-987E-DED9C6C5E580&displaylang=en

查看本文来源

用户评论

  • 用户名
  • 评论内容