C#预编译指令-使用一个变量来告诉要编译的代码
本文关键字:编译 变量 一个 代码 指令 | 更新日期: 2023-09-27 18:19:38
我在C#项目中使用web服务。我在网上和本地主机上测试了这个项目。我有这样的代码:
//var proxy = new PanoNestWebsite.ScheduleImagePanonest.ScheduleImageProcessingClient();
//var s = new ScheduleImagePanonest.ScheduleImageProcessing();
var proxy = new ScheduleImageLocal.ScheduleImageProcessingClient();
var s = new ScheduleImageLocal.ScheduleImageProcessing();
例如,如果我想在线部署它,我会取消前两行的注释,并对后两行进行注释。
但我还有更多的更改要做,我不喜欢对所有行进行注释和取消注释。我如何使用预处理指令来定义一个变量,比如:IsLocal,我只是将其设置为true以包含本地代码,或者设置为false以包含服务器代码?我怎么能写这样的东西?
如果这是您正在处理的事情,我建议您使用另一种方法,可能是一些IOC/DI,其中这两个类都实现了一个接口,您可以在app.config/web.config中配置指向它的类型。
所以不是
var proxy = new ScheduleImageLocal.ScheduleImageProcessingClient();
你应该做
var proxy = IoCFactory.Resolve<IScheduleImagingProcessingClient>();
或者类似的东西,不管你的图书馆如何运作。
如果使用Unity,则会将IScheduleImagingProcessingClient
接口指向配置文件中的具体类型。
您可以使用项目属性来定义值或#define SOME_KEY,然后:
#if KEY
... Code goes here
#endif