C#VS 2008构建配置 - 为不同的构建使用不同的类

时间:2010-06-09 18:02:13

标签: c# visual-studio-2008 build-process

我正在编写一个应用程序,它有两个类,它们提供基本相同的功能,但适用于不同的情况。我想要有三个版本的软件 - 一个用户可以更改一个ini文件来配置程序使用两个类中的一个,然后一个版本只使用两个类中的一个。

现在我通过ini文件工作,但我希望能够构建不包含不需要的类的代码的版本。

最好的方法是什么?我现在的想法是,由于这两个类派生自一个公共接口,我只需添加一个编译时条件,查看活动构建配置并决定是否编译该类。这样做的语法是什么?

提前感谢您的帮助和意见!

2 个答案:

答案 0 :(得分:1)

最好将每个派生类放在自己的程序集中。在运行时,加载与您的应用程序一起使用的程序集,并转换为基本接口或抽象类。

答案 1 :(得分:1)

您可以使用条件编译符号,这些符号类似于使用预编译器指令在C / C ++中执行的操作。

例如:

interface IThing {
}

#if PLATFORM_A

class ThingImplementation : IThing {
}

#endif

#if PLATFORM_B

class ThingImplementation : IThing {
}

#endif

您可以通过在项目设置的“Build”选项卡中添加条件编译符号来选择desider实现。

对于一个非常基本的实现,您根本不需要接口,只需根据您正在编译的平台删除不需要的代码(即使接口对于强制执行一致性也很有用)。

class Thing {

#if PLATFORM_A

    Platform specific code

#endif

#if PLATFORM_B

    Platform specific code

#endif

}