您的位置:知识库 » .NET技术

创建一个示例和WebMethod特性解析

作者: VisualStudio  来源: 博客园  发布时间: 2008-10-14 23:38  阅读: 12686 次  推荐: 1   原文链接   [收藏]  

系列文章导航:

创建一个示例和WebMethod特性解析

WebService特性和数组类型解析

类和结构体解析

利用YAHOO公开API做天气预报Web服务

Webservice 的设计和模式

Remoting和Webservice的区别


 

可是当你从新生成的时候,会发现不会在报错了,但是在浏览器打开时,却会出现下面的问题。

 

后来看书发现了这个问题的原因在于:

由于默认WebServiceBinding特性遵循WS-1 BP V1.1,如果两个方法处于相同的数据绑定,那么该规范不允许方法的重载(尽管使用了MessageName属性)可以做两种选择:

(1)重命名方法,当然用这种方法最好是客户端没有链接到Web服务。

(2)创建一个新的绑定来代特重载方法

做法如下:

1)为类添加新的属性(文件的摘要下面),代码如下:

 

[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo 
= WsiProfiles.BasicProfile1_1, Name = "
OverloadedGetCollege",EmitConformanceClaims=true)]
[ToolboxItem(
false)]


多添加了这个两个属性:Name = "OverloadedGetCollege",EmitConformanceClaims=true

2)在任意一个GetCollege()方法上部添加SoapDocumentMethod特性:

        [SoapDocumentMethod(Binding="OverloadedGetCollege")]
        [WebMethod(Description = "根据学号获得学生的学院", MessageName = "GetCollegeStuNum")]
        public string GetCollege(string strStuNum)

3)重新生成,就成功了。效果如下:

 

想了解这样的好处,点击如上图的“服务说明”,就可以看到WSDL的变化,我也就不多说了!

1
0
 

.NET技术热门文章

    .NET技术最新文章

      最新新闻

        热门新闻