WCF实现SOA相关操作步骤详解

我们知道,在WCF中,可以实现许多相应的功能,来帮助我们轻松的解决一些比较复杂的问题。在这里我们就一起来了解一下有关WCF实现SOA的相关方法,以方便我们在实际应用中来获得些帮助。#t#

成都创新互联专注于曲江企业网站建设,响应式网站,商城开发。曲江网站建设公司,为曲江等地区提供建站服务。全流程按需网站建设,专业设计,全程项目跟踪,成都创新互联专业和态度为您提供的服务

WCF实现SOA的一个关键问题是,如何将与技术无关的服务转换为CLR。一旦提供了这种转换,WCF的服务设计者与开发者就可以根据自己拥有的CLR的知识,进行WCF面向服务开发。为两者搭建桥梁的是宿主。一个宿主可以包含多个上下文,而在上下文中则可以包含服务实例。特殊的,宿主的上下文也可以为空。

客户端若要调用服务,可以采用代理或通道的方式。这两种方式在很多资料上已经有了详尽的介绍。在这里,我不准备重复。如果需要详细了解甚至掌握着两种方式,当然可以购买Programming WCF Services一书一探究竟。这里我想介绍的是本书中频繁使用的一种简化WCF类库的一个示例,主要是引入泛型来简化以及各种步骤地自动化处理。例如ServiceHost类,就是通过引入泛型简化了WCF实现SOA提供的ServiceHost类:

 
 
 
  1. public class ServiceHost : ServiceHost {   
  2. public ServiceHost( ) : base(typeof(T)) {}   
  3. public ServiceHost(params string[] baseAddresses) : 
    base(typeof(T),Convert(baseAddresses)) {}   
  4. public ServiceHost(params Uri[] baseAddresses) : 
    base(typeof(T),baseAddresses) {}   
  5. static Uri[]   
  6. Convert(string[] baseAddresses) {   
  7. Converter convert = delegate(string address) 
    { return new Uri(address); };   
  8. return Array.ConvertAll(baseAddresses,convert);   
  9. } } 

如果是使用ServiceHost类,则托管服务的代码如下所示:

 
 
 
  1. public static void Main( ) {   
  2. Uri baseAddress = new Uri("http://localhost:8000/");   
  3. ServiceHost host = new ServiceHost(typeof(MyService),baseAddress);   
  4. host.Open( );   
  5. //Can do blocking calls: Application.Run(new MyForm( ));   
  6. host.Close( );   

使用ServiceHost类,则可修改为:

 
 
 
  1. public static void Main( ) {  
  2.  Uri baseAddress = new Uri("http://localhost:8000/");   
  3. ServiceHost host = new ServiceHost(baseAddress);   
  4. host.Open( );   
  5. //Can do blocking calls:   
  6. Application.Run(new MyForm( ));   
  7. host.Close( );   

在ServiceHost类的实现中,使用了.NET 2.0中才引入的一个方法Array.ConvertAll(),它的方法签名为:

 
 
 
  1. public static TOutput[]   
  2. ConvertAll ( TInput[] array, 
    Converter converter ) 

它能够根据Converter对象将一种类型的数组转换为另一种类型的数组。

以上就是对WCF实现SOA的相关步骤的介绍。

分享名称:WCF实现SOA相关操作步骤详解
文章网址:http://www.shufengxianlan.com/qtweb/news16/242766.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联