Type.GetType(“namespace.a.b.ClassName”) returns null

前端 未结 16 1545
旧巷少年郎
旧巷少年郎 2020-11-22 02:58

This code:

Type.GetType(\"namespace.a.b.ClassName\")

returns null.

and I have in the usings:

using nam         


        
16条回答
  •  醉梦人生
    2020-11-22 03:39

    As Type.GetType(String) need the Type.AssemblyQualifiedName you should use Assembly.CreateQualifiedName(String, String).

    string typeName = "MyNamespace.MyClass"; // Type.FullName
    string assemblyName = "MyAssemblyName"; // MyAssembly.FullName or MyAssembly.GetName().Name
    string assemblyQualifiedName = Assembly.CreateQualifiedName(assemblyName , typeName);
    Type myClassType = Type.GetType(assemblyQualifiedName);
    

    The Version, Culture and PublicKeyToken are not required for assemblyName that's why you can use MyAssembly.GetName().Name.

    About Type.GetType(String) :

    If the type is in the currently executing assembly or in Mscorlib.dll, it is sufficient to supply the type name qualified by its namespace.

提交回复
热议问题