c# – Type.GetType返回null

参见英文答案 > Type.GetType(“namespace.a.b.ClassName”) returns null                                    15个
我试图使用Type.GetType并传递“caLibClient.entity.Web2ImageEntity”完整的类名. caLibClient.entity是命名空间,位于分离的程序集(caLibClient)中,并添加到程序引用程序集列表中.当我从程序中调用它时,Type.GetType总是返回Null,有什么问题?
您还需要添加程序集名称,因为您的类型不在执行程序集中(也不是mscorlib.)所以调用应该是:

var myType = Type.GetType("caLibClient.entity.Web2ImageEntity, FullAssemblyName");

Type.GetType() docs

typeName
Type: System.String
The assembly-qualified name of the type to get. See
AssemblyQualifiedName. 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.

docs for AssemblyQualifiedName开始,这是一个样品名称:

TopNamespace.SubNameSpace.ContainingClass+NestedClass, MyAssembly, Version=1.3.0.0, Culture=neutral, PublicKeyToken=b17a5c561934e089

更新:如果您已经在项目中引用程序集,并且在编译时知道什么是类型名称,那么你最好说

Type myType = typeof(caLibClient.entity.Web2ImageEntity);

既然现在你不需要在运行时搜索类型;编译器会为您做所有事情.

相关文章
相关标签/搜索