可以通过WSDL定义表达params关键字

时间:2011-05-22 10:02:42

标签: c# wcf wsdl params

我正在开发的应用程序是为实现以下服务合同的WCF服务公开服务元数据:

[ServiceContract]
public interface IService
{
    [OperationContract]
    object Execute( string action, params object[] args );
}

添加服务引用后,我注意到服务契约中没有params关键字及其在生成的Reference.cs文件中的实现。

WSDL定义中是否有params对应文件?

或者是params特定于C#的东西,并且无法通过WSDL定义表示,因此服务客户端生成器不知道在生成期间应该添加params吗?

1 个答案:

答案 0 :(得分:3)

params只是语法糖,它允许您调用期望对象数组的方法而不传递准备好的数组。 WCF对此一无所知 - 它只是期望对象数组。顺便说一句。将object数组传递给服务操作可能会导致多个问题,因为如果您传递自定义对象作为参数,WCF可能不知道如何序列化该对象。