Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is there an inverse of System.Diagnostics.ConditionalAttribute?

Is there an analogous conditional-not-present attribute or maybe a way to use the Conditional attribute to only include a method if that symbol is not defined?

What I'm looking for is something that works like this:

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

Such that the method will not be included if the symbol SILVERLIGHT does exist.

The reason I don't want to use a simple #ifdef is so that I can take advantage of the compiler removing the calling statements without having to wrap every individual call in an #ifdef.

like image 605
MojoFilter Avatar asked Nov 24 '08 21:11

MojoFilter


1 Answers

Update: The following code snippet only works if the #if is in every calling file which is not very practical.

#if !SILVERLIGHT
#define NOT_SILVERLIGHT
#endif

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

What could be done however, is to have a build configuration for whatever platform you are using that will /define the needed symbol (NOT_SILVERLIGHT in that case).

like image 60
Coincoin Avatar answered Nov 15 '22 10:11

Coincoin