首页 > 解决方案 > 从程序集中检索所有类型时出现奇怪的类型

问题描述

我使用反射从命名空间中检索类型并执行一些操作:

Type baseType = typeof(BaseUpdate);
            var updateTypes = baseType.Assembly.GetTypes(); 
foreach (var type in updateTypes) {
  if (type.Namespace!="myApp.Logic.Updates") continue;
  // stuff
}

这工作正常。我检索所有我想要的类型并且可以用它们做一些事情。但作为补充,我还检索了一些我不太了解它们来自哪里的“奇怪”类型。它们都以“<>”开头,并且似乎将“IsNestedPrivate” - 标志设置为真: 在此处输入图像描述 该标志帮助我区分这些类型,但它们是什么,为什么它们在那里?

标签: c#reflectiontypes

解决方案


这些是编译器在后台生成的类,用于实现 lambda 函数、IEnumerable功能(通过yield关键字)和async/await状态机等功能。

如果您查看类型上的属性,则可能会是CompilerGenerated


推荐阅读