Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.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# 向WCF添加服务引用并不总是创建.datasource文件_C#_.net_Wcf_Datasource_Class Library - Fatal编程技术网

C# 向WCF添加服务引用并不总是创建.datasource文件

C# 向WCF添加服务引用并不总是创建.datasource文件,c#,.net,wcf,datasource,class-library,C#,.net,Wcf,Datasource,Class Library,在某些项目中,当我向WCF服务添加服务引用时,它会为公共类库中共享的类创建数据源文件,但在其他项目中,不会创建数据源。Reference.cs文件是不同的,在第一种情况下,类型来自类库,在后一种情况下,类型位于Reference.cs文件中。这些是不兼容的 在这种情况下,是什么触发了数据源文件的自动生成?“添加服务引用”对话框中的高级选项是相同的,所以一定有其他东西在捉弄我 更新:结果表明数据源文件不是必需的。是Reference.cs文件中生成的代码造成了整个差异。我可以手动编辑指向类库的方法

在某些项目中,当我向WCF服务添加服务引用时,它会为公共类库中共享的类创建数据源文件,但在其他项目中,不会创建数据源。Reference.cs文件是不同的,在第一种情况下,类型来自类库,在后一种情况下,类型位于Reference.cs文件中。这些是不兼容的

在这种情况下,是什么触发了数据源文件的自动生成?“添加服务引用”对话框中的高级选项是相同的,所以一定有其他东西在捉弄我


更新:结果表明数据源文件不是必需的。是Reference.cs文件中生成的代码造成了整个差异。我可以手动编辑指向类库的方法的参数,并且可以正常工作。从长远来看,这当然不是一个解决方案,因为每次更新服务引用时我都必须这样做。希望有人知道这个问题的起因。

当您添加服务引用时,该文件由VS创建。它用于使客户端UI组件能够绑定到模型(数据契约)。我不知道为什么它们不是为“所有”服务创建的(但我想这取决于该服务如何定义和使用数据契约(如:无契约无数据文件))

以下是一些有用的链接:

更新:你是对的,它不应该依赖于所使用的服务。以下是两个相关链接(表示文件包含在VS中):


因此,看起来该文件是由VS创建的,如果您不想/不需要它,可以通过使用svcutil.exe创建代理来排除它。。。您正在向WCF服务添加服务引用吗?或者您正在将WCF服务作为服务引用添加到项目中?请展示一些示例我有一个包含一些类的类库。这些类用作WCF服务的参数和结果。在第三个项目中添加服务引用(都在同一个解决方案中)时,它有时会创建.datasource文件,有时则不会。我需要datasource文件和Reference.cs来使用类库,而不是Reference.cs中创建的新类。我甚至可以在同一个项目中有两个不同的服务引用,其中一个创建了数据源,但另一个没有。我想知道在某些情况下是什么触发VS来创建.datasource文件,而在其他情况下不是。您可以做的是:右键单击服务引用,然后单击配置服务引用,然后取消选中引用程序集中的重用类型,然后单击确定。希望它能像你期望的那样工作。谢谢,但已经试过了。它对数据源文件的生成没有影响。他们仍然擅离职守:(服务和客户端都使用相同的共享类库。我需要References.cs中的自动生成代码指向类库,并且不在服务中公开它自己的类型。没有类库数据源文件将在尝试使用WCF服务时给我类似的错误;无法隐式转换类型“ServiceReference”。语言[]“到”类库。语言[]“.Language类位于共享类库中。我得到的不是类库数据源文件,而是引用servicereference的数据源文件,这些文件在references.cs文件中声明,而当类库数据源文件为autogen时,这些文件通常不是。太奇怪了。我有两个解决方案。一个是项目生成数据源classlib的文件和不存在的文件。该服务不可能是问题,因为在某些客户端中,数据源文件是为同一服务创建的,而在其他客户端中则不是。我需要找出是什么触发了此创建。对更新的评论:关键是VS在某些项目/解决方案中不生成文件。我希望它使用identic不同项目/解决方案中的所有方法。