C# 反射发射以生成简单的继承

C# 反射发射以生成简单的继承,c#,.net,.net-core,C#,.net,.net Core,我试图通过反射动态生成以下类层次结构。emit: public class Main { public class A { A(){} } public class B : A { B() : base() {} } } 下面是我尝试在.net core框架上运行的程序(类似的程序在.net上使用,但例外情况相同): 但在执行过程中,程序在b_builder.CreateType()处失败,并显示异常消息(这里是.net core函数,我无法调试): 它是反射.发射错误吗?我

我试图通过
反射动态生成以下类层次结构。emit

public class Main
{
    public class A { A(){} }
    public class B : A { B() : base() {} }
}
下面是我尝试在
.net core
框架上运行的程序(类似的程序在
.net
上使用,但例外情况相同):

但在执行过程中,程序在
b_builder.CreateType()
处失败,并显示异常消息(这里是
.net core
函数,我无法调试):


它是反射.发射错误吗?我不知道我的代码出了什么问题

文档中的
TypeBuilder.CreateType
备注部分的第一行告诉我们:

如果此类型是嵌套类型,则必须先对封闭类型调用CreateType方法,然后才能对嵌套类型调用该方法

因此,更改通话顺序应该可以:

main_builder.CreateType();
a_builder.CreateType();
b_builder.CreateType();

哦,谢谢)这是我愚蠢的错误。我绝对应该重读文档msdn文档实际上非常适合反思。
main_builder.CreateType();
a_builder.CreateType();
b_builder.CreateType();