IsAssignableFrom在TypeBuilderInstantiation中不可用

时间:2015-07-29 19:03:36

标签: c# reflection.emit

当我从通用TypeBuilder创建专门类型时,它返回TypeBuilderInstantiation而不是RuntimeType,它不支持IsAssignableFrom之类的方法。有办法解决这个问题吗?

这是一个片段:

TypeBuilder stackTypeBuilder = moduleBuilder.DefineType("Stack", TypeAttributes.Public);
stackTypeBuilder.DefineGenericParameters(new[] {"T"});
var specializedType = stackTypeBuilder.MakeGenericType(new[] {typeof (int)});

此处specializedTypeTypeBuilderInstantiation的实例,因此以下代码将引发异常:

bool assignable = specializedType.IsAssignableFrom(typeof (int));

在这个例子中,我可以使用:

创建一个类型
stackTypeBuilder.CreateType().MakeGenericType(new [] {typeof(int)});

这将给我RuntimeType,但在我的编译器中,我无法在此阶段创建类型。

0 个答案:

没有答案