C# HTTP Web Service 方法实现可选参数

想要使用C#的asmx的WebMethod来实现一个WebService,。
想要用户给服务器传递数据,finger_print_base64是一个必须传递的固定参数,threshold和mini_matches是两个可选参数。
目前已知可以定义MessageName来通过方法重载实现相同方法名的可选参数
[WebMethod(MessageName="Default")]
publicvoidSearchPerson(Stringfinger_print_base64)
{
}
[WebMethod(MessageName="AddThreshold")]
publicvoidSearchPerson(Stringfinger_print_base64,intthreshold)
{
}
[WebMethod(MessageName="AddMinMatches")]
publicvoidSearchPerson(Stringfinger_print_base64,intmini_matches)
{
}
但是,由于第二个方法和第三个方法的参数类型是相同的,无法实现重载。
想知道是否有其他方法来实现可选参数。
因为这是一个功能的接口,不想要改变方法名:SearchPerson,所以不想通用不同的方法名来进行区分。
提前谢过各位大佬。
慕哥6287543
浏览 1275回答 2
2回答

30秒到达战场

加参就是了。反正你可用可不用,加一个可选参数就是了[WebMethod(MessageName="AddThreshold")]publicvoidSearchPerson(Stringfinger_print_base64,intthreshold=0,stringparam=""){}[WebMethod(MessageName="AddMinMatches")]publicvoidSearchPerson(Stringfinger_print_base64,intmini_matches=0){}

一只萌萌小番薯

谢邀、讲真我看你问题看了半天才搞懂、(主要是我一看概念性的东西脑壳就大)针对你的问题、我自己有两个解决方法:1.何必纠结SearchPerson的名称、直接再一个就OK、你可以取名SearchPerson1什么的、只要你自己懂就行、如果别人也要用的话可以在方法前加上//////你的方法名写在这里///当你.方法的时候会有中文注解、方便别人也知道你写的什么2.既然参数类型相同、我们需要考虑的就是怎样区分AddThreshold和AddMinMatches这两种方法方法很简单、楼楼只需再多加一个参数、在方法内做一个判断就行了、如[WebMethod(MessageName="你的名字")]publicvoidSearchPerson(Stringfinger_print_base64,intmini_matches,intnew_data){if(new_data==1){//在这里写`AddThreshold`的方法}elseif(new_data==2){//在这写`AddMinMatches`的方法}}一切迎刃而解、有时候换个思维其实就能解开难题|^_^|
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript