是否存在System.Diagnostics.ConditionalAttribute的反转?

时间:2008-11-24 21:55:56

标签: c# visual-studio attributes symbols

是否存在类似的条件不存在属性,或者是否可以使用条件属性仅包含方法,如果该符号定义?

我正在寻找的东西是这样的:

[Conditional("!SILVERLIGHT")]
private void DoStuffThatSilverlightCant() {...}

如果符号SILVERLIGHT确实存在,则不会包含该方法。

我不想使用简单#ifdef的原因是我可以利用编译器删除调用语句,而不必将每个单独的调用包装在#ifdef中。

1 个答案:

答案 0 :(得分:8)

更新: 以下代码段仅在#if存在于每个不太实用的调用文件中时才有效。

#if !SILVERLIGHT
#define NOT_SILVERLIGHT
#endif

[Conditional("NOT_SILVERLIGHT")]
private void DoStuffThatSilverlightCant() {...}

然而,可以做的是为您正在使用的任何平台构建配置/定义所需的符号(在这种情况下为NOT_SILVERLIGHT)。