.NET中的SOAP自定义处理机制

内容简介:SOAP是一种消息编码规范,是Web Services Architecture中最重要的环节,它规定了线上传输的数据格式。本文详细介绍了在.NET平台下如何对SOAP消息进行各类自定义处理,比如定义SOAP消息中参数的编码风格、定型消息格式、添加并理解消息头、在SOAP扩展中处理消息等,以便在Web Services中实现更丰富灵活的功能。这些处理是实现基于SOAP扩展的各种Web Services规范的基础,对于开发高级的Web Services应用非常重要。(Based on .net framwork 1.0)

关键字:.NET   Web Services   SOAP  SOAP扩展  自定义

    Web Services是微软.NET战略最重要的核心,而SOAP规范又是Web Services协议栈中最重要的环节,所以在.NET Framework Class Library中对SOAP的支持可谓是“无微不至”,开发人员能够很容易地对SOAP消息进行全方位的操作,从而开发出适合不同需求的Web Services。这些支持主要来自System.Web.Services.Protocols System.Xml.Serialization这两个名称空间,从它们的层次结构图中,我们可以看到很多与SOAP相关的类,包括属性基类(如:SoapExtensionAttribute)、异常基类(如:SoapException)、扩展基类(如:SoapExtension)等,它们提供了一个可以指定特定元素或SOAP属性名的基于属性的机制来控制SOAP消息中XML的格式,在更深入的细节上实现对SOAP消息随心所欲的操作――这也就是.NETSOAP自定义处理机制的核心思想。以下是本文在这两个名称空间中将会涉及的部分SOAP相关类的列表(缩进表示了继承关系):

 

属性基类

System.Web.Services.Protocols名称空间

 System.Web.Services.Protocols.SoapDocumentMethodAttribute

 System.Web.Services.Protocols.SoapDocumentServiceAttribute

 System.Web.Services.Protocols.SoapExtensionAttribute

 System.Web.Services.Protocols.SoapHeaderAttribute

     System.Web.Services.Protocols.SoapRpcMethodAttribute

 System.Web.Services.Protocols.SoapRpcServiceAttribute

System.Xml.Serialization名称空间

 System.Xml.Serialization.SoapAttributeAttribute

 System.Xml.Serialization.SoapElementAttribute

 System.Xml.Serialization.SoapEnumAttribute

 System.Xml.Serialization.SoapTypeAttribute

 。。。。。。。

异常基类

System.Web.Services.Protocols名称空间

  System.Web.Services.Protocols.SoapException

    System.Web.Services.Protocols.SoapHeaderException

枚举类

System.Web.Services.Protocols名称空间

 System.Web.Services.Protocols.SoapMessageStage

 System.Web.Services.Protocols.SoapParameterStyle

 。。。。。。。

扩展基类

System.Web.Services.Protocols名称空间

 System.Web.Services.Protocols.SoapExtension

 System.Web.Services.Protocols.SoapHeader

   System.Web.Services.Protocols.SoapUnknownHeader

  消息类

System.Web.Services.Protocols名称空间

 System.Web.Services.Protocols.SoapMessage

   System.Web.Services.Protocols.SoapClientMessage

 System.Web.Services.Protocols.SoapServerMessage

 

    其中很重要也很有趣的一点是:上面所有以Attribute结尾的类,如果要使用它们各自提供的功能,可以简单的将其类名中除Attribute以外的部分用中括号括起来,然后加到WebserviceWebmethod ,例如:对于SoapDocumentMethodAttribute类,使用形式就为:[SoapDocumentMethod],它提供的功能下面马上会讲到。这种使用方式就是.NETSOAP自定义处理机制的具体体现。

 

为了使读者能清晰地理解.NET中对SOAP消息的自定义处理机制,我将其按实现的功能以及使用的类和属性的不同分为四个部分:

posted on 2004-09-15 07:41  abedon  阅读(1729)  评论(2)    收藏  举报

导航