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

开发 开发工具
WCF实现SOA的具体操作步骤将会在这篇文章中通过代码的方式为大家详细解读。希望可以为又需要的朋友们带来一些帮助。

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

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

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

  1. public class ServiceHost<T> : 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<string,Uri> 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<MyService> host = new ServiceHost<MyService>(baseAddress);   
  4. host.Open( );   
  5. //Can do blocking calls:   
  6. Application.Run(new MyForm( ));   
  7. host.Close( );   

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

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

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

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

责任编辑:曹凯 来源: it168
相关推荐

2010-02-26 09:33:18

WCF创建WebSer

2010-03-01 09:19:10

WCF编码规范

2010-02-26 16:20:56

WCF程序事务

2010-02-26 14:39:27

WCF服务寄宿

2009-12-21 17:05:59

WCF自托管宿主

2010-02-25 13:54:48

WCF安全参数

2010-02-26 16:10:50

WCF传送二进制流数据

2010-02-26 16:05:14

寄宿WCF服务

2010-02-24 11:22:04

WCF方法重载

2009-12-22 10:05:54

WCF编程生命周期

2009-12-21 11:19:50

WCF配置文件

2010-02-24 09:38:58

WCF应用编码

2010-02-26 09:50:57

WCF传输安全机制

2010-01-05 18:09:07

.NET Framew

2009-12-21 18:10:50

WCF实现事件通知

2010-03-01 10:54:29

WCF双工会话通道

2010-02-24 10:41:28

WCF服务保护

2010-02-24 13:06:27

WCF使用Nhiber

2010-03-02 09:39:11

保护WCF服务

2010-02-23 14:48:38

WCF事件通知
点赞
收藏

51CTO技术栈公众号