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

本文关键字:定义 关键字 可以通过 WSDL params | 更新日期: 2023-09-27 17:57:34

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

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

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

WSDL定义中是否存在params对应项?

或者params是C#特有的东西,不能通过WSDL定义来表达,所以服务客户端生成器不知道在生成过程中应该添加params

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

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