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以包含服务器代码?我怎么能写这样的东西?

C#预编译指令-使用一个变量来告诉要编译的代码

如果这是您正在处理的事情,我建议您使用另一种方法,可能是一些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