Assmbly.GetTpes()获取程序集中的类型,但如果我还想要嵌套类(OrderLine),我该怎么做?我只知道程序集的名称,而不是类名,因此GetType(Order + OrderLine)不起作用.
public class Order
{
public class OrderLine
{
}
}
Run Code Online (Sandbox Code Playgroud)
我不知道是否assembly.GetTypes()应该包含嵌套类.假设它没有,像下面这样的方法可以迭代所有程序集的类型.
IEnumerable<Type> AllTypes(Assembly assembly)
{
foreach (Type type in assembly.GetTypes())
{
yield return type;
foreach (Type nestedType in type.GetNestedTypes())
{
yield return nestedType;
}
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:
MSDN有如下说明Assembly.GetTypes
返回的数组包含嵌套类型.
所以我的上述答案真的不是必要的.您应该找到两者Order并按Order+OrderLine类型返回Assembly.GetTypes.
像这样的东西:
Assembly.GetTypes().SelectMany(t => new [] { t }.Concat(t.GetNestedTypes()));Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2807 次 |
| 最近记录: |