现在我们在一个解决方案中为我们的项目添加了大约5个服务参考。 即使对于具有调用服务方法的间接依赖项的项目,我也强制添加服务引用。有没有办法解决这种情况。
对于服务方法中的每一个更改,我都必须更新每个服务引用以实现这些更改。这也非常耗时。 我只是想知道,有没有办法通过为整个解决方案提供单一服务参考来全球管理这些东西。
帮助赞赏..... :)
答案 0 :(得分:5)
您应该能够使用svcutil.exe命令行实用程序从多个服务URL生成单个服务文件(例如.cs文件)。关于这一点的好处是,如果它们具有相同的模式,您可以共享服务中的clinet-side DTO和消息类型。
SvcUtil参考:http://msdn.microsoft.com/en-us/library/aa347733.aspx
关于向具有间接依赖关系的项目添加服务引用的要求。您可能不应直接从服务客户端使用服务引用和相关类型。为了提高可维护性和适应性,您应该将服务引用包装在外观中。 Facade将在本地类型和服务引用类型之间进行映射,并在响应服务更改方面为您提供更多灵活性。然后,您只需要将服务引用与外观一起放在一个位置(最好是一个独立的项目)。外观应该不经常更改,它将使您免受当前服务引用所带来的问题的影响。
答案 1 :(得分:2)
不幸的是,如果您有多项服务,您将无法获得单一参考。我的立场得到纠正 - 请参阅jrista的回答。
您可以做的是自动创建和更新服务引用:而不是使用Add Service Reference
在Visual Studio中手动添加它们,请查看svcutil.exe
命令行工具,它基本上会执行相同的操作。< / p>
由于它是一个命令行工具,您可以将其作为例如每次构建应用程序时,持续构建和更新必要的代理客户端文件的一部分。
查看这些附加链接以获取有关使用svcutil.exe的详细信息的教程和说明:
马克