【问题标题】:pass optional parameter in wcf service在 wcf 服务中传递可选参数
【发布时间】:2016-03-30 21:03:36
【问题描述】:

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

getData(int number, int type=0)

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

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

【问题讨论】:

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


    【解决方案1】:

    您不能在 Wcf 服务方法中传递可选参数,也不能在 Wcf 服务中重载具有相同名称的方法。 如果你想重载方法,你可以使用 Name 属性来重载方法:

    [OperationContract (Name = "MethodName")]
    

    我通过在 URI 中设置默认 null 值解决了这个问题,如果用户提供了这个参数,例如:“type”值,我收到了它,但如果用户没有提供任何值,在这种情况下默认值为null 这样就解决了我的问题。

    希望这能回答你的问题。

    【讨论】:

      【解决方案2】:

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

      使用函数重载

      getData(int number)
      getData(int number, int type)
      

      【讨论】:

      • 会导致方法重复。我有 100 多个 wcf 方法,不想为可选参数复制它们
      猜你喜欢
      • 1970-01-01
      • 2012-05-10
      • 2012-08-28
      • 1970-01-01
      • 1970-01-01
      • 2014-03-04
      • 2011-10-10
      • 2011-05-18
      • 1970-01-01
      相关资源
      最近更新 更多