1

在我的代码中,我目前有:

#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())

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

谢谢!

4

2 回答 2

1

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

于 2013-01-09T16:02:07.997 回答
0

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

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

于 2013-01-09T15:57:53.130 回答