C#Typebuilder使用泛型父类创建类型,其中泛型参数是要创建的类型

时间:2018-03-29 15:26:13

标签: c# .net

我想动态创建一个具有以下结构的类型。

public abstract class GenericBase<T>
{
}

public class Instantiated : GenericBase<Instantiated>
{

}

使用typebuild这似乎是鸡和蛋的问题。要构建类型,我必须先设置父级。要设置父级,我必须得到类型。有没有办法实现这个目标?

以下是我目前拥有的代码

var baseType = typeof(GenericBase<>);
var assemblyName = string.Concat(baseType .Namespace, ".", "TestGeneric");

var asmName = new AssemblyName(assemblyName);
var asmBuilder = AppDomain.CurrentDomain.DefineDynamicAssembly(asmName, AssemblyBuilderAccess.Run);
var moduleBuilder = asmBuilder.DefineDynamicModule(assemblyName);

var typeBuilder = moduleBuilder.DefineType("Instantiated", TypeAttributes.Public);
typeBuilder.SetParent()
var type = typeBuilder.CreateType();

感谢任何帮助。

0 个答案:

没有答案