bri*_*137 2 c# vb.net system.reflection yield-return
我有一个类使用"yield"返回语句的单个方法.将自动创建嵌套类型.使用设置为绑定标志的反射BindingFlags.DeclaredOnly,我得到这个输出:
//我班上的公共成员
Test.FileSystemObject..ctor
Test.FileSystemObject.GetFiles(DirectoryInfo目录)
Test.FileSystemObject.GetFiles(String path)Run Code Online (Sandbox Code Playgroud)// Auto generated nested class. Test.FileSystemObject+<GetFiles>d__4..ctor Test.FileSystemObject+<GetFiles>d__4.<>3__directory Test.FileSystemObject+<GetFiles>d__4.<>4__this Test.FileSystemObject+<GetFiles>d__4.<directories>5__7 Test.FileSystemObject+<GetFiles>d__4.<files>5__8 Test.FileSystemObject+<GetFiles>d__4.<FSO>5__6 Test.FileSystemObject+<GetFiles>d__4.<i>5__9 Test.FileSystemObject+<GetFiles>d__4.<unprocessed>5__5 Test.FileSystemObject+<GetFiles>d__4.directory
如何确定返回的类型是否assembly.GetTypes(BindingsFlags)是这样的自动生成类型?我正在寻找一种简单的方法来排除这些.
您可以测试类型是否具有以下[CompilerGenerated]属性:
if (type.GetCustomAttribute(typeof(CompilerGeneratedAttribute), true) != null)
{
...
}
Run Code Online (Sandbox Code Playgroud)
或者,您可以检查名称是否包含在用户代码中无效的字符.