我正在开发的应用程序是为实现以下服务合同的WCF服务公开服务元数据:
[ServiceContract]
public interface IService
{
[OperationContract]
object Execute( string action, params object[] args );
}
添加服务引用后,我注意到服务契约中没有params
关键字及其在生成的Reference.cs
文件中的实现。
WSDL定义中是否有params
对应文件?
或者是params
特定于C#的东西,并且无法通过WSDL定义表示,因此服务客户端生成器不知道在生成期间应该添加params
吗?
答案 0 :(得分:3)
params
只是语法糖,它允许您调用期望对象数组的方法而不传递准备好的数组。 WCF对此一无所知 - 它只是期望对象数组。顺便说一句。将object
数组传递给服务操作可能会导致多个问题,因为如果您传递自定义对象作为参数,WCF可能不知道如何序列化该对象。