2010-05-05 59 views
6

如何使用条件(“条件1”)属性,其中“条件1”是一个环境变量。帮助说可以做,但没有说明如何?C#使用条件()与环境变量

+0

我打算使用环境变量作为编译时间开关。 #如果(环境变量存在) {// 东西 } – Kaya 2010-05-05 14:28:50

回答

0

除了创建envionment变量(例如值为1)之外,您不需要做任何事情,然后在ConditionalAttribute中通过名称引用它。需要在可通过系统属性对话框的高级选项卡访问的“环境变量”对话框中创建可变的;即不能只打开命令提示符并在其中设置变量,因为该值只会在该提示符下存在,并在提示符关闭时丢失。

5

我相信这是你在找什么http://yogesh.jagotagroup.com/blog/post/2008/03/01/CSharp-Conditional-attribute.aspx

词“环境变量”,是指VS环境,而不是操作系统或任何其他。您可以简单地使用DEBUG或任何自定义变量来标记您的类或方法;然后,这些类和方法在编译时仍然存在,但是当生成IL代码时,它们会被忽略 - 如果该变量未被定义(如示例所示)。

希望这会有所帮助。

的Pz, 的TaskConnect开发商

+0

您可以在属性编辑器,为您的项目添加额外的编译符号(双击该项目的属性点),然后引用那些ConditionalAttribute – Will 2010-05-05 14:22:41

3

不知道什么Conditional(string condition),但你可以使用Environment.ExpandEnvironmentVariables获取环境变量。


如果您在谈论ConditionalAttribute,那么您运气不好。该属性在COMPILE TIME,开发机器上(或构建服务器上)进行评估。它在RUNTIME中没有任何作用,您可能想根据用户的机器状态(如环境变量所示)执行不同的操作。

您可以使用之前提到的Environment类的方法来确定在方法体内是否应该继续执行。这可能是你最好的选择。

+0

是COMPILE内TIME是我之后的事情。 – Kaya 2010-05-05 14:29:36

+0

真棒@kaya。我喜欢编译时间。你可以在项目属性中设置环境变量,它应该做你需要的东西(除非你试图在不同的机器上做不同的事情)。 – Will 2010-05-05 14:31:48