假设我有以下内容:

var t = typeof(Foo).MakeByRefType();


有什么方法可以将结果转换回typeof(Foo)

老实说,我发现的唯一方法是:

var t = typeof(Foo).MakeByRefType();
string name = t.Name.Trim('&');
string asmQualified = t.AssemblyQualifiedName.Replace(t.Name, name);
var v = Type.GetType(asmQualified);


我尝试过的其他方法似乎无效:


有更好的方法可以做到这一点吗?
如果这是唯一的方法,那么在某些情况下它可能会失败(也许使用动态生成的程序集)?

最佳答案

这就是GetElementType()的用途。尽管有名称,它不仅可以获取数组类型的元素,还可以获取指针或引用类型所引用的类型。

10-05 21:30
查看更多