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 us开发者_如何学JAVAer classes in .NET?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
{..}
This answer really helped me out! Here's the code I needed to add to check a Type
for the CompilerGeneratedAttribute
as Valentin Kuzub mentioned:
using System.Runtime.CompilerServices;
//...
bool IsCompilerGenerated(Type t)
{
var attr = Attribute.GetCustomAttribute(t, typeof(CompilerGeneratedAttribute));
return attr != null;
}
精彩评论