在某些项目中,当我向WCF服务添加服务引用时,它会为在公共类库中共享的类创建数据源文件,但在其他项目中,不会创建数据源。 Reference.cs文件是不同的,在第一种情况下,类型来自类库,而后者则是它自己在Reference.cs文件中。这些不兼容。
在这种情况下,触发自动生成数据源文件的是什么? “添加服务引用”对话框中的高级选项是相同的,因此其他内容必须在我身上耍花招。
更新:结果不需要数据源文件。它是Reference.cs文件中生成的代码,它完全不同。我可以手动编辑方法的参数以指向类库,并且它可以工作。从长远来看,这当然不是解决方案,因为每次更新服务参考时我都必须这样做。希望有人会知道这个问题的触发因素。
答案 0 :(得分:0)
添加服务引用时,VS会创建该文件。它用于使客户端UI组件绑定到模型(数据协定)。我不知道为什么它们不是为“所有”服务创建的(但我想这取决于该服务如何定义和使用数据合同(如:没有合同没有数据文件)。)
以下是一些有用的链接: https://msdn.microsoft.com/en-us/library/ee373840.aspx What are the WCF Service Reference .datasource files?
更新:你是对的,它不应该依赖于消费的服务。这里有两个相关的链接(VS包含文件的内容): http://objectmix.com/dotnet/797048-wcf-service-reference-datasource-file-name-length-problem.html Disable automatic generation of datasources file when updating service references
所以看起来文件是由VS创建的,如果你不需要它,可以通过使用svcutil.exe创建代理来排除它