我有一个 WCF 服务方法,我为返回类型编写了该方法作为集合类型。
但是如果我生成一个代理类并使用来自客户端的方法,则方法返回类型将从集合更改为数组。
为什么会这样?
最佳答案
请记住 - WCF 也是一个可互操作的系统,例如线路的另一端可能是无法理解 .NET 泛型列表的 PHP、Java 或 Ruby 客户端!
您可以使用 Andrew 和 Jimmie 提到的两个选项来指定您想要的通用列表 - 这有效,当且仅当您还使用 DataContractSerializer(这是 WCF 的默认选择)时。但是,如果您的服务和/或数据契约(Contract)出于某种原因需要改用 XmlSerializer,那么这些设置将无济于事 - 您的列表将再次变成数组。
所以请尝试显示的这些选项,如果它们适合您 - 太好了!但请注意,有充分的理由说明为什么您的通用列表可能只需要转换为更具互操作性的对象数组。
马克
关于.net - 为什么 WCF 方法的返回类型会从泛型集合更改为数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/973150/