我有一组共享通用DTO模型的WCF Web服务。
问题在于,当我在Visual Studio 2010中添加服务引用时,为每个Web服务生成的代理都有自己的命名空间(解决方案内部),这意味着我在每个服务引用上基本上都有重复的DTO
有没有一种干净的方式来克服这个并分享dto,而不是在整个服务组中创建一个外观?
干杯。
答案 0 :(得分:5)
您可以使用Visual Studio的命令行工具svcutil.exe生成它们,而不是通过Visual Studio“添加服务引用”功能创建客户端代理。将URL传递给每个服务的元数据,svcutil应该找出它们共有的类型。
.Net Consuming Web Service: Identical types in two different services
我不确定是否有更容易/更好的方式。
答案 1 :(得分:1)
您应该将DTO放在单独的库中。在客户端项目中添加对该库的引用。您可以从引用的库中将代理生成配置为已使用的对象。 右键单击您的服务引用并选择配置服务引用,在引用的程序集中应该有一个重用类型的选项。