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();