2013-03-12 75 views
0

产生子类的这个问题似乎很熟悉,但我曾在这里已经回答了这些,并在互联网上没有找到答案:VS 2012“添加服务引用”对于一些共享组件

编辑 目前,服务参考再次正常工作,但我仍在寻找长期解决方案。

使用与WCF Web服务通信的Windows Phone应用程序我注意到,有时在VS 2012中的“添加服务引用”选项的Reference.cs中生成了部分类,即使原始类位于程序集通过“项目参考”由客户端和服务共享。这似乎是每次服务再次发布或客户编译时随机发生的。正如人们可以想象的那样,让相当多的“无法隐式转换类型”错误。大多数情况下,我只是玩一些选项,再次删除并添加服务参考,重新启动VS等等,希望发生一些奥术魔法,迟早会发生。但这不是一种满足我或者我想永远使用的方式。特别是因为问题昨天再次出现,直到现在,没有发生奥术魔法。因此,这里是我试过到目前为止:

  1. 卸下和具有不同的选项和名称(如共享中的所有组件,共享指定的程序集...)
  2. 重启VS有时有和没有管理员再次添加服务引用特权
  3. 卸下整个类引起从共享组件的问题,并再次将其添加(编译和之间出版中)
  4. 在看看在WCFTestClient命名空间,其从由VS
  5. 所有的产生的一个不同以上有所不同机器

我也仔细地通过this和其他类似的问题在这里工作。

这些都没有使我能够自己解决问题,尽管我学到了很多东西。现在我正在使用SVCUtil生成代理类,但是由于我对整个WCF-Stuff都很陌生,所以还没有成功。 我会很感激,如果

  1. 有人能赐教是什么让“添加服务引用”选项生成毕竟和如何避免那些不需要的部分类。
  2. 提供了关于如何正确使用SVCUtil工具生成代理类并在VS项目中重用它的说明
  3. 有一种方法可以避免这种“从元数据生成代码”的整个过程,我的意思是,我可以访问两个实现

我真的想解决这个问题,但随着越来越绝望,我愿意尝试做大量的工作,如果这个问题不会再发生之后。目前我正在研究第二种可能的解决方案。考虑到第三,我正在阅读this article,但在尝试之前,我想在此提出第二个意见,这是否是一种好方法,因此可以解决我的问题,也可以查看有关该主题的最新文章。

对不起,我一直在这个工作了很长一段时间了,而且知识寥寥无几,大量的试用信息都有很多信息。

回答

2

尝试取消选中“在引用程序集中重用类型”以查看是否有帮助。

Try unchecking "Reuse types in referenced assemblies".

+1

如果未选中此框,没有为每个DataContract创建一个分部类。但是我不想要其中的任何一个,因为所有DataContracts都在共享程序集中。再次重新检查这个盒子会将部分类别减少到两个,但即使这些是不需要的。 – Scipio 2013-03-12 21:30:22