Old*_*zer 12 tfs wcf wcf-client tfs2010 visual-studio-2012
我有一个包含WCF库项目的VS 2010解决方案和另一个使用该Web服务的项目.在VS 2012开放后,它进行了升级.
代理现在将List <T>类型作为数组返回,即使CollectionMappings明确设置为Generic.List.
可能会发生什么?
其他人在这里有类似的问题,但他正在从VS 2012降级到VS 2010.
编辑:我仔细检查,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.在这个有问题的PC上,我们进行了映射和GET.当我们尝试构建时,我们得到了这个错误,其中服务引用中使用的所有List <T>类型都以某种方式被视为数组.我们在有问题的PC上安装了VS 2010并获得了该解决方案.同样的错误也存在.所以,它似乎与VS 2012无关.
所有PC都是Windows 7 Professional.
更多信息(2012年12月19日添加):
项目打开时,本地PC上的ServiceReferences/ServiceReference1/Reference.cs会自动修改.变化是巨大的.以下是其中的一小部分:

显示了两种方法.List <string> get_Hotlines()成为string [] get_Hotlines()和List <string> get_HotlinesBySite()成为string [] get_HotlinesBySite().
即使没有我的要求,为什么文件也会改变?VS 2012升级日志表示两个文件已更改,但Reference.cs不是其中之一.
添加对wcf服务的引用时,需要将Collection Type更改为Generic List:

您也可以更新此设置,只需在解决方案中选择服务参考,右键单击并选择"配置服务参考..."
| 归档时间: | 
 | 
| 查看次数: | 5471 次 | 
| 最近记录: |