我在C#项目中使用Web服务。 我在线和在localhost上测试项目。 我的代码如下:
//var proxy = new PanoNestWebsite.ScheduleImagePanonest.ScheduleImageProcessingClient();
//var s = new ScheduleImagePanonest.ScheduleImageProcessing();
var proxy = new ScheduleImageLocal.ScheduleImageProcessingClient();
var s = new ScheduleImageLocal.ScheduleImageProcessing();
例如,如果我想在线部署它,我取消注释前两行,并评论最后两行。
但是我还有很多变化,我不喜欢评论和取消注释所有行。 我如何使用预处理指令来定义一个变量,如:IsLocal和我只是将其设置为true以包含本地代码,或者设置为false以包含服务器代码? 我该怎么写这样的东西?
答案 0 :(得分:3)
如果这是你正在处理的事情,我建议采用另一种方法,可能是一些IOC / DI,其中这两个类都实现了一个接口,你在app.config / web中进行配置。配置指向它的类型。
所以而不是
var proxy = new ScheduleImageLocal.ScheduleImageProcessingClient();
你会改为
var proxy = IoCFactory.Resolve<IScheduleImagingProcessingClient>();
或其他类似的东西,但是你的图书馆有效。
如果您使用Unity,则会将IScheduleImagingProcessingClient
接口指向配置文件中的具体类型。
答案 1 :(得分:1)
您可以使用项目属性来定义值,或者使用#define SOME_KEY:
#if KEY
... Code goes here
#endif