我有一个包含WCF库项目,另一个项目是消费web服务的VS 2010解决方案。 在VS 2012开盘后,它被升级。
代理现在返回列表<T>类型作为阵列,即使CollectionMappings清楚地设定为Generic.List。
可能是什么回事?
其他人也有类似的问题在这里 ,但他从降级VS 2012至10年,而不是VS。
编辑:我双重检查,并Reference.svcmap包含:
<CollectionMappings>
<CollectionMapping TypeName="System.Collections.Generic.List`1" Category="List" />
</CollectionMappings>
但Reference.cs包含的东西,如:
public xxx.ServiceReference1.ADUser[] get_ADUsers;
当Web服务,它是:
public List<ADUser> get_ADUsers(string wildcard, string sortexp, string sortorder)
更多信息(加2012年12月12日):
该解决方案,在VS2010中创建,在另一台PC上工作的罚款。 它从PC签入到TFS。 在这个问题的电脑,我们做了映射和GET。 当我们试图建立,我们得到了错误的位置在所有的服务引用使用的List <T>类型都以某种方式为数组处理。 我们有问题的电脑上安装了VS 2010和获取解决方案了。 而同样的错误也有。 所以,看来它是不相关的VS 2012。
所有的PC是Windows 7专业版。
更多信息(加2012年12月19日):
当项目被打开,ServiceReferences / ServiceReference1 / Reference.cs在本地计算机上被自动修改。 这些变化是巨大的。 下面是它的一小部分:
显示两个方法。 列表<字符串> get_Hotlines()成为串[] get_Hotlines()和List <字符串> get_HotlinesBySite()变为串[] get_HotlinesBySite()。
为什么文件甚至改变没有我问这个问题? 在VS 2012的升级日志上述两个文件被更改,但Reference.cs是不是其中之一。