Search code examples
c#.netreflection

How to distingush compiler-generated classes from user classes in .NET


I have a piece of code in my program that distinguishes compiler-generated classes by checking whether they contain "DisplayClass" in its type name.
upon reading this answer, I think I need a better way. How to distingush compiler-generated classes from user classes in .NET?


Solution

  • Check classes for attribute CompilerGenerated to distinguish compiler generated classes from other

    http://msdn.microsoft.com/en-us/library/system.runtime.compilerservices.compilergeneratedattribute.aspx

    In reflector those Display classes can be seen like this:

    [CompilerGenerated]
    private sealed class <>c__DisplayClass1
    {..}