【发布时间】:2013-03-16 12:30:37
【问题描述】:
我们可以将通用列表 (List) 作为参数发送到 WCF OperationContract 吗?
似乎唯一的方法是将 List 作为 DataMember 封装在另一个 Class 中,并将该类指定为 DataContract:
但这在我看来并不正确。有没有其他办法?
编辑1:
预期签名:
[OperationContract]
List<int> OperationName(List<CustomObject> objects);
这在客户端转换为 CustomObject[]。我目前正在从我的客户传递 CustomObject[] 并且它工作正常,但我想知道为什么我不能通过
List <CustomObject>
这给了我一个编译错误,说没有采用指定参数的函数的重载版本(类型不匹配错误)
编辑 2:
相关问题:
1)我应该能够从服务本身控制这一点。如果我将我的服务公开给全世界,而 wsdl/Proxy 是他们知道我的 OperationContract 签名的唯一方式,该怎么办?
2) 如果我想在同一个服务合同的不同操作合同中同时使用 System.Array 和 System.Generic.List 怎么办?
【问题讨论】:
-
你能分享一下无效的操作合同的预期签名吗?
-
用签名*编辑问题,谢谢
-
这个问题和stackoverflow.com/questions/8445502/…的问题很相似
-
感谢@Dhawalk。您发布的链接建议更改客户端服务参考上的设置。我也许可以使用这个解决方案。但更广泛的问题仍然存在:1)我应该能够从服务本身控制这一点。如果我将我的服务公开给全世界,而 wsdl/Proxy 是他们知道我的 OperationContract 签名的唯一方式,该怎么办? 2) 如果我想在同一个服务合同的不同操作合同中同时使用 System.Array 和 System.Generic.List 怎么办? ...我觉得这不太整洁。
-
我建议您编辑您的问题以包含您提出的 2 个 mor 问题
标签: wcf parameter-passing datacontract generic-collections operationcontract