我在WCF中有一个函数,它接受一个参数并从另一个应用程序调用。现在,我想在WCF中添加一个可选参数,这样它就不会影响前面代码中调用的方法。
getData(int number, int type=0)
我尝试在第二个参数中使用默认值,设置[WebGet(UriTemplate
但没有成功。如果我使用IsRequired
的{{1}}属性,那么它也会更改以前代码的方法调用。
我不想创建另一个WCF方法。还有其他解决方法吗?
答案 0 :(得分:3)
在为WCF实现接口时,不能使用可选参数。Can't use optional parameters when implementing an interface for a WCF
使用函数重载
getData(int number)
getData(int number, int type)
答案 1 :(得分:0)
您不能在Wcf服务方法中传递可选参数,也不能在Wcf服务中使用相同的名称重载方法。 如果要重载方法,可以使用Name属性以这种方式重载方法:
[OperationContract (Name = "MethodName")]
我通过在URI中设置默认空值来解决此问题,以便在用户提供例如:“type”值时使此参数成为可选项,我收到它但是如果用户没有提供任何值,那么默认值为null所以这解决了我的问题。
希望这能回答你的问题。