带可选参数的C#Web服务方法

时间:2017-07-02 13:52:30

标签: c# asp.net web-services

我想用可选参数构建WebMethod

我知道设置MessageName的方法。

[WebMethod(MessageName = "Default")]
public void SearchPerson(String finger_print_base64)
{

}

[WebMethod(MessageName = "AddThreshold")]
public void SearchPerson(String finger_print_base64,int threshold)
{

}

但我想设置两个相同类型的参数。

[WebMethod(MessageName = "AddThreshold")]
public void SearchPerson(String finger_print_base64,int threshold)
{

}

[WebMethod(MessageName = "AddMinMatches")]
public void SearchPerson(String finger_print_base64,int mini_matches)
{

}

Visual Studio告诉我一个错误。

  

" SearchPerson已经拥有了一个具有相同类型参数的方法   "

2 个答案:

答案 0 :(得分:0)

你有两个具有相同签名的方法,至少改变一个参数的数据类型或添加另一个参数,如(布尔一个)!

  
    

更改参数名称不是解决方案。

  

答案 1 :(得分:0)

首先:不支持Web方法中的重载,IIS无法处理它。

现在编译器无法在同一个类下构建两个或多个具有相同名称和签名的方法,因为它如何在“dll”文件中解决方法而不会混淆! ,,

  
    

如果你想调用你的方法使用接口或抽象类,并在新的三个类中重写它的方法并调用它们:)

         

“MessageName”只是盟友

  

No Overload由于方法名称变为(地址或Url等),因此应用程序将路由到它,而不关心它的签名,编程功能甚至是它的编程语言。