导航

Web Services(3)---WebMethod和WebService特性

Posted on 2005-01-12 20:19  兰宝石.NET  阅读(674)  评论(0)    收藏  举报

一、WebMethod特性:用于对方法配置特性 ;包括六种特性:

  • Description   注释 WebMethod
  • EnableSession   启用会话状态
  • MessageName   WebMethod的别名
  • TransactionOption   构建事务性Web服务
  • CacheDuration      高速缓存WEB服务
  • BufferResponse   缓存服务器响应

   1.Description特性:用于简要描述可以通过Web调用的方法或特性的功能。Description特性的值添加到WSDL和WEB SERVERCES 服务帮助页在中。

      C# [WebMethod(Description="[string]")] 

   2.EnableSession特性 会话状态在默认情况下是楚用的,为了启用会话状态支持,可以将EnableSession=ture

      C#[WebMethod(EnableSession="[true/false]")]

   3.WebMethod的别名

         如下:

         ...

         [WebMethod]

         public int Add(int a,int b)

         {

            return a+b;

         }

         [WebMethod]-------->改为:[WebMtthod(MessageName="Add2")]

         pubic int Add(int a,int b,int c)

         {

            return a+b+c;

         }

         当这个浏览请求时,就会出现一个异常,因为上面两个方法都使用了消息名称Add。可以使用Webmethod的特性中的MessageName来为方法规定惟一的消息名称。如上。MessageName特性只能给方法名称别名

      4.TransactionOption :WebSeriveces支持事务,但是公限于Web服务生成的事务,也就是说,事务不能由另一个应用程序启动,然后再流入Web Service中去。

         C# [WebMethod(TransactionOption="[TransactionOption]")]

         使用事务性Web方法的选项是:

  •  Disabled---我不不能控制对象的自动事务
  •  NotSupported---不管是否存在事务,对象都不在事务的作用哉远行
  • Supported---如果存在事务,则对象在该事务的环境中远行。如果没有现有的事务,则对象不需要事务环境来远行。
  •  Required---对象要求有一个事务,以便于远行,它会使用现有的事务:如果没有事务,则会创建一个新的事务。
  •  RequiresNew---对象要求有新事务,因此要为每个请求创建一个新事务。

         默认选项是Required

      5.高速缓存WEB服务

         Web Service中使用高速缓存是每一个方法琢一配置的,其途径是使用WebMethod特性CacheDuration

         C# [WebMethod(CacheDuration=[int])]

      6.缓存服务器响应

         C# [WebMethod(BufferResponse="[true/false]")]

二、WebService属性主要为类配置特性,这些类在WebService指令中命名。这些特性适用于WEB服务帮助页和WSDL。但它并不将类中的方法标记为可以通过WEB调用。

      WebService属性有3个可以操纵的特性:

  • Description   注释Web服务
  • Namespace   控制命名空间
  • Name   改变Web服务名