Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 空reference.cs文件在选中重用类型选项的情况下添加服务引用_C#_Wcf_Self Tracking Entities - Fatal编程技术网

C# 空reference.cs文件在选中重用类型选项的情况下添加服务引用

C# 空reference.cs文件在选中重用类型选项的情况下添加服务引用,c#,wcf,self-tracking-entities,C#,Wcf,Self Tracking Entities,场景 VisualStudio2010 银光4 实体框架 自跟踪实体 问题 在服务器端,我们使用实体框架模型生成了实体对象。我们使用自跟踪T4模板生成实体。这些实体是共享的,可以从客户端使用(Silverlight 4项目) 但是,当我们尝试添加新的Web服务引用时,代理生成器无法工作。reference.cs文件为空。我们在Web引用的配置中选中了“重用类型”选项。我们已检查将共享的程序集(仅限实体程序集) 我们试图从实体的DataContract属性中删除each(IsReference

场景

  • VisualStudio2010
  • 银光4
  • 实体框架
  • 自跟踪实体
问题

在服务器端,我们使用实体框架模型生成了实体对象。我们使用自跟踪T4模板生成实体。这些实体是共享的,可以从客户端使用(Silverlight 4项目)

但是,当我们尝试添加新的Web服务引用时,代理生成器无法工作。reference.cs文件为空。我们在Web引用的配置中选中了“重用类型”选项。我们已检查将共享的程序集(仅限实体程序集)

我们试图从实体的DataContract属性中删除each(IsReference=true),但没有成功


有什么想法或解决方法吗?

当您试图共享的程序集是在更高的.NET平台上编译时,可能会出现这种情况


例如,如果您的项目以.NET 3.5为目标,并且程序集是根据4.0编译的,则会发生这种情况。

您已经选中了“重用类型”选项?尝试取消选中选项
重用类型

取消选中对我有用的“重用类型”。代码生成器遍历依赖关系的对象图,如果遇到任何问题,例如找不到引用,那么它会爆炸,并且不会在引用中生成任何代码。cs.

只是确认一下,数据契约是由服务上的操作指定的?无论它们是否被指定为DataContract,都必须将它们列为ServiceOperation参数/响应,然后才能通过在客户端上添加服务引用来生成它们。是。我们有一些关于服务的方法。其中一些使用实体对象作为参数,另一些返回实体对象。如果我们取消选中“重用类型”选项,代理生成器工作正常,但它也会在客户端生成实体对象,我们会丢失服务器端和客户端之间的共享程序集。我以前只见过一次,那是因为我在客户端项目上无意中引用了我的DAL/服务库(添加普通引用而不是服务引用)。我只注意到这种设置对代理类造成了影响。这是VS中的一个已知问题,VS2008中甚至存在错误。VS2015可能会包含一些有用的错误修复…请检查visual studio输出窗口(而不是错误列表),当您尝试生成ServiceReference时,是否在其中看到任何警告/错误?