.netattributes

What is the .NET attribute to not compile a method in release mode?


I know that if I have a block of code I don't want compiled when in release mode I can wrap that code block in:

#if DEBUG
   while(true)
{ Console.WriteLine("StackOverflow rules"); }
#endif

This will keep this code block from compiling in any mode other than DEBUG.

I know there is an attribute that can be placed on an entire method that will do that same, but for the life of me I can't remember what that attribute is. I believe that it’s down the System.Diagnostics namespace, but I'm not really sure.

BTW: I'm using .NET 4, but I know this attribute existed in .NET 2 because I have used in in old projects.

Thanks


Solution

  • It's the ConditionalAttribute.

    Indicates to compilers that a method call or attribute should be ignored unless a specified conditional compilation symbol is defined.

    You should define it as [Conditional("DEBUG")] and make sure that the DEBUG constant is not being defined in release mode.