我有一个自我托管基于TCP WCF服务。我现在构建消耗了服务项目,但似乎是增加了服务引用到项目中至少有两种方式,并且两个产生完全不同的代理。首先,我用从项目菜单中的“添加服务引用”,但这产生相当多的文件,甚至核心.NET类型的一些XML模式。然后我试图只产生两个文件,一个代理和保持服务引用和结合参数的一个配置文件中的SvcUtil工具,这是要好得多,但...

在两种情况下,VS工具似乎再现类型定义即使我已经提供到含该服务的组件和它使用的所有类型的参考。例如,我的一些服务方法返回实体类的泛型集合。所有实体类,我已直接从消费项目中引用的组件内限定为什么再次重新定义的那些类型?

我将不胜感激,如果一些机构可以在消费WCF服务返回实体类型和他们遵循的最佳做法提供一些建议。

有帮助吗?

解决方案

我们已经发现,添加服务引用创造了很多不需要的代码的方式更得到比它帮助。

我们没有走遍到设置它的手动方式,有介绍该方法这里:

http://perseus.franklins.net/dnrtvplayer/player.aspx ?ShowNum = 0103

其他提示

是的,在你的具体情况下,这似乎是重复 - 但考虑到这一点:WCF也被设计成具有互操作性,并且在大多数情况下,特别是如果你有一个non-.NET客户端调用你的代码,你不会有合同和可用的接口集。

所以没什么好说的,但创建一个全代理,它包含了所有的信息,以便在所有可能的情况下工作。

现在,如果你真的想避免数据契约等的重复,你可以编译那些为自己组装,然后使用/ R:(组件名称)开关调用SvcUtil工具时,告诉它重新使用的代码并且在组件的合同。

马克

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top