.net - 为什么 WCF 方法的返回类型会从泛型集合更改为数组?

标签 .net wcf

我有一个 WCF 服务方法,我为返回类型编写了该方法作为集合类型。

但是如果我生成一个代理类并使用来自客户端的方法,则方法返回类型将从集合更改为数组。

为什么会这样?

最佳答案

请记住 - WCF 也是一个可互操作的系统,例如线路的另一端可能是无法理解 .NET 泛型列表的 PHP、Java 或 Ruby 客户端!

您可以使用 Andrew 和 Jimmie 提到的两个选项来指定您想要的通用列表 - 这有效,当且仅当您还使用 DataContractSerializer(这是 WCF 的默认选择)时。但是,如果您的服务和/或数据契约(Contract)出于某种原因需要改用 XmlSerializer,那么这些设置将无济于事 - 您的列表将再次变成数组。

所以请尝试显示的这些选项,如果它们适合您 - 太好了!但请注意,有充分的理由说明为什么您的通用列表可能只需要转换为更具互操作性的对象数组。

马克

关于.net - 为什么 WCF 方法的返回类型会从泛型集合更改为数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/973150/

相关文章:

c# - 如何检查 NLog 是否已以异步模式完成从其队列中记录消息?

wcf - 如果不再推荐自跟踪实体,那么更改跟踪复杂实体关系的前进道路是什么?

wcf - 我应该使用 OData 还是开发自己的 WCF 服务?

asp.net - 从 wsdl 生成 Web 服务

c# - 输入不是有效的 Base64 字符串,因为它在 C# 中包含非 base 64 字符?

jquery - 使用 JQuery 访问 protected REST 端点

C# 独立 WebDAV

.net - 代码契约 Vs。对象初始值设定项 (.net 4.0)

c# - Marshal.GetFunctionPointerForDelegate 如何作用于实例成员?

c# - Entity Framework 使用 IdentityDbContext 和代码优先自动迁移表位置和模式?