【问题标题】:Visual Studio 2012 - Conditional Using (service reference)Visual Studio 2012 - 条件使用(服务参考)
【发布时间】:2013-01-09 15:54:48
【问题描述】:

在我目前的代码中:

#if (DEBUG)
using GetNewRecordNumber = {dev web service reference}.GetNewRecordNumber;
#else
using GetNewRecordNumber = {prod web service reference}.GetNewRecordNumber;
#endif 

这样我就可以做到:

 using (GetNewRecordNumber.Tickets_GetNewRecordNumber getNum = new GetNewRecordNumber.Tickets_GetNewRecordNumber())

在我的代码中。这一切都很好,但我想在应用程序设置中进行切换,以便我可以在运行时更改它。有没有办法解决这个问题,这样切换可以在运行时发生,而不是复制代码?

谢谢!

【问题讨论】:

    标签: c# .net visual-studio debugging production-environment


    【解决方案1】:

    预处理器指令在编译之前工作,所以它不会在运行时工作。抱歉,您必须取消“#”指令并改用 ConfigurationManager.AppSettings。

    【讨论】:

    • 当然可以,但是如何使用上述引用的 using 语句来做到这一点?谢谢!
    【解决方案2】:

    不确定您是否会考虑这种重复代码,但也许最直接的方法是为您的服务创建一个包装器类,并在上述位置使用该包装器类。您已经使用这些 #if 块复制了大量代码,因此使用包装器甚至可以减少您的总代码并使其更简洁。

    另一种选择是手动修改您的服务引用,以便它们从定义您需要的所有成员的通用接口继承,但如果您需要经常更新引用,这可能不是一个好主意。

    【讨论】:

      猜你喜欢
      • 2012-12-31
      • 2013-08-29
      • 1970-01-01
      • 2015-11-15
      • 1970-01-01
      • 2013-07-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多