0

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

getData(int number, int type=0) 

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

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

回答

1

在为WCF实现接口时,不能使用可选参数。 Can't use optional parameters when implementing an interface for a WCF

使用函数重载

getData(int number) 
getData(int number, int type) 
+0

这将导致重复的方法。我有100多种wcf方法,不想将它们复制为可选参数 – AshishJindal

+0

http://forums.asp.net/t/1608437.aspx?can+we+use+optional+params+in+C+while+定义+服务+合同+ –

0

你不能在一个WCF服务方法传递可选参数,也不能在具有相同名称的WCF服务重载方法。 如果你想重载方法,你可以使用Name属性重载方法是这样的:

[OperationContract (Name = "MethodName")] 

我通过设置默认为空值的URI,以便使这个参数可选,如果用户提供如解决了这个问题:“类型“价值,我收到了它,但如果用户没有提供任何价值,在这种情况下默认值为null,这样就解决了我的问题。

希望这回答你的问题。