WebService重载问题

发布时间 2023-11-30 08:54:43作者: jack_Meng

在WebService中默认设置是不支持方法的重载的。简单写个例子

复制代码
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo 
= WsiProfiles.BasicProfile1_1  )]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
// [System.Web.Script.Services.ScriptService]
public class WebService : System.Web.Services.WebService {
    
public WebService () {

        
//Uncomment the following line if using designed components 
        
//InitializeComponent(); 
    }
    [WebMethod]

    
public string HelloWorld() {
        
return "Hello World";
    }
 
    [WebMethod]

    
public string HelloWorld(string str)
    {
    
return  "Hellp World,"+str;
    }
}
复制代码

 

在浏览器中查看,会报如下错误

 

修改步骤如下:

1.修改[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1  )],为[WebServiceBinding(ConformsTo = WsiProfiles.None  )];

2.为重载的各方法添加不同的MessageName属性,作为重载时的标识。

复制代码
[WebMethod(MessageName ="ShowWithoutName",Description="直接输出HelloWorld")]
    
public string HelloWorld() {
        
return "Hello World";
    }
  
    [WebMethod (MessageName 
="ShowByName",Description="输出指定的字符串")]
    
public string HelloWorld(string str)
    {
    
return  "Hellp World,"+str;
    }
复制代码

 

3.再次重新生成后,查看结果如下

 

【出处】:https://www.cnblogs.com/janes/p/1889098.html

=======================================================================================