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

SNA*_*SNA 2 .net wcf

我有一个WCF服务方法,我已经为返回类型编写了集合类型.

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

为什么会这样?

mar*_*c_s 5

记住 - WCF也是一个可互操作的系统,例如你的另一端可能是PHP或Java或Ruby客户端,它们将无法理解.NET通用列表!

您可以使用Andrew和Jimmie提到的两个选项指定您想要的通用列表 - 这是有效的,当且仅当您还使用DataContractSerializer(这是WCF的默认选项)时.但是,如果您的服务和/或数据合同无论出于何种原因需要使用XmlSerializer,那么这些设置将无济于事 - 您的列表将再次转换为数组.

所以尝试显示这些选项,如果它们适合你 - 太好了!但请注意,有很好的理由可以将通用列表转换为更具互操作性的对象数组.