C# 我们可以在C中动态添加或删除名称空间引用(usings)吗

C# 我们可以在C中动态添加或删除名称空间引用(usings)吗,c#,asp.net,wcf,web-services,C#,Asp.net,Wcf,Web Services,我需要根据运行时评估的特定条件调用WCF服务1或WCF服务2。这两个服务相似,但托管在不同的服务器上 我添加了两个服务引用,NS1和NS2指向不同的URL。当前代码已使用NS1。考虑到NS1的实施已经在许多地方完成。重构代码、动态选择必须调用哪个服务的最佳方法是什么?通常,直接针对svcutil.exe生成的代理进行编程被认为是一种不好的做法 最好的方法是将其包装在自己的类中,并在每次需要服务时引用该类。这还将允许您实现更高级的业务逻辑,例如案例中的路由和其他交叉关注点。 例如:您现在可以从应用

我需要根据运行时评估的特定条件调用WCF服务1或WCF服务2。这两个服务相似,但托管在不同的服务器上


我添加了两个服务引用,NS1和NS2指向不同的URL。当前代码已使用NS1。考虑到NS1的实施已经在许多地方完成。重构代码、动态选择必须调用哪个服务的最佳方法是什么?

通常,直接针对svcutil.exe生成的代理进行编程被认为是一种不好的做法

最好的方法是将其包装在自己的类中,并在每次需要服务时引用该类。这还将允许您实现更高级的业务逻辑,例如案例中的路由和其他交叉关注点。 例如:您现在可以从应用程序中提取用于连接到服务的策略,即服务引用或ChannelFactory。您可以轻松地在不同程序集之间共享服务,而不会产生歧义

您是说您有许多直接针对NS1编写的代码。磨牙并把它包起来。这是很多肮脏的工作,但风险很低


如上所述,我想知道需求本身,如果我没有弄错的话,服务在另一台服务器上调用自己的另一个实例。这听起来很奇怪,您试图解决的问题是什么?

您的问题可能需要一些关于如何调用服务方法的详细信息,但是,为什么不能在配置中定义两个不同的端点,然后根据您的情况使用相应的端点呢?这些服务是相似的还是完全相同的?NS2是NS1的备份或负载平衡,还是它们执行不同的任务?@DanielHilgarth服务相似而不相同,我的意思是,它们是不同的版本,因此可能包含稍微不同的数据契约。您的条件是在启动时评估一次,还是会在整个过程中发生变化?非常抱歉,如果我听起来模棱两可,服务不会调用iself的另一个实例。。相反,客户端必须在运行时决定调用哪个版本的服务。我明白了。首先,我的答案是正确的。不管怎样,从旧版本到新版本有哪些变化?也许我们应该讨论向后兼容性。