我们需要在C#中使用SAS webservice。 SAS团队为我提供了两个服务名称,一个用于开发(service_dev),另一个用于生产(服务)来自同一个SAS服务器。在消费时,我们需要指向开发服务和生产服务C#。
我为这两个服务创建了2个代理类,因为名称不同。在代码中,我正在检查环境是否为dev,调用dev服务和依赖代码,否则为prod服务和依赖代码。依赖的100行代码都在If else条件下。这看起来很丑陋,我觉得应该有更好的方法。有人可以建议使用不同名称托管相同网络服务的最佳方式是什么?
答案 0 :(得分:0)
你应该使用DI。在不同的程序集中具有不同的代理类实现,并在生产中部署连接到prod系统的代理类。这通常在CI管道中的打包步骤期间自动完成。
答案 1 :(得分:0)
此服务是否运行相同的代码?如果是(并且您正在谈论Web服务),那么它们应该具有相同的WSDL,您只需要重新配置一个服务代理的URL。 (同一课)
然后可以通过配置文件配置URL