【问题标题】:wcf service with params带参数的 wcf 服务
【发布时间】:2011-12-21 06:28:03
【问题描述】:

合约定义为

    [OperationContract]
    DataSet myfunc(string a, params object[] args);

但是代理是由添加服务引用向导生成的

    public System.Data.DataSet myfunc(string a, object[] args) {
        return base.Channel.GetDataSet(a, args);
    }

什么给了?两者都是 .net 4.0 项目

我可以更改代理,但更改将在更新时丢失

【问题讨论】:

  • 请详细描述问题!

标签: c# .net wcf c#-4.0 wcf-binding


【解决方案1】:

不确定您的问题是什么,但我猜您遇到问题是因为您在那里使用了params

WSDL 不处理这样的可选参数。

这就是你的意思吗?

如果是这种情况,那么您最好的选择可能是执行代理生成的代码正在执行的操作。传递一个对象数组(尽管您可能会在尝试传递任何旧对象时遇到麻烦,因为有些对象无法序列化或可互操作)。

我不太确定你想用可选参数做什么,所以我不能确切地告诉你该怎么做。

【讨论】:

  • 已编辑答案。除非我知道您真正想要做什么,否则不确定这是否有用。
  • 如果您使用的是 svcutil.exe,您可以在客户端类中生成的方法参数中再次添加 params 关键字public System.Data.DataSet myfunc(string a, params object[] args)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-12
  • 2017-01-13
  • 2012-07-04
相关资源
最近更新 更多