c# - 从程序集中检索所有类型时出现奇怪的类型
问题描述
我使用反射从命名空间中检索类型并执行一些操作:
Type baseType = typeof(BaseUpdate);
var updateTypes = baseType.Assembly.GetTypes();
foreach (var type in updateTypes) {
if (type.Namespace!="myApp.Logic.Updates") continue;
// stuff
}
这工作正常。我检索所有我想要的类型并且可以用它们做一些事情。但作为补充,我还检索了一些我不太了解它们来自哪里的“奇怪”类型。它们都以“<>”开头,并且似乎将“IsNestedPrivate” - 标志设置为真: 该标志帮助我区分这些类型,但它们是什么,为什么它们在那里?
解决方案
这些是编译器在后台生成的类,用于实现 lambda 函数、IEnumerable
功能(通过yield
关键字)和async/await
状态机等功能。
如果您查看类型上的属性,则可能会是CompilerGenerated