在wcf服务中传递可选参数

时间:2015-12-24 11:56:37

标签: c# wcf parameter-passing wcf-data-services optional-parameters

我在WCF中有一个函数,它接受一个参数并从另一个应用程序调用。现在,我想在WCF中添加一个可选参数,这样它就不会影响前面代码中调用的方法。

getData(int number, int type=0)

我尝试在第二个参数中使用默认值,设置[WebGet(UriTemplate但没有成功。如果我使用IsRequired的{​​{1}}属性,那么它也会更改以前代码的方法调用。

我不想创建另一个WCF方法。还有其他解决方法吗?

2 个答案:

答案 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所以这解决了我的问题。

希望这能回答你的问题。