开发者

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 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;
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜