我想从这样的泛型类型全名中获取类型:
var myType = Type.GetType("MyProject.MyGenericType`1[[MyProject.MySimpleType, MyProject, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]");
Run Code Online (Sandbox Code Playgroud)
但它似乎不适用于这样的泛型类型......
这样做的好方法是什么?
如果不指定程序集限定名称,则Type.GetType
仅适用于mscorlib
类型。在您的示例中,您仅为嵌入类型参数定义了 AQN。
// this returns null:
var type = Type.GetType("MyProject.MyGenericType`1[[MyProject.MySimpleType, MyProject, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]");
// but this works:
var type = Type.GetType("MyProject.MyGenericType`1[[MyProject.MySimpleType, MyProject, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], MyProject, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null");
Run Code Online (Sandbox Code Playgroud)
Assembly.GetType
如果您使用而不是,您的原始类型字符串将起作用Type.GetType
:
var myAsm = typeof(MyGenericType<>).Assembly;
var type = myAsm.GetType("MyProject.MyGenericType`1[[MyProject.MySimpleType, MyProject, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]");
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3881 次 |
最近记录: |