类型.GetType返回null
本文关键字:null 返回 GetType 类型 | 更新日期: 2023-09-27 18:07:15
我正在尝试使用Type。GetType并传递"caLibClient.entity"。Web2ImageEntity"完整的类名。caLibClient。实体是命名空间,位于分离程序集(caLibClient)中,并添加到程序引用程序集列表中。的类型。当我从程序调用它时,GetType总是返回Null,有什么问题吗?
还需要添加程序集名称,因为您的类型不在执行程序集的中(也不在mscorlib中)。所以调用应该是:
var myType = Type.GetType("caLibClient.entity.Web2ImageEntity, FullAssemblyName");
来自Type.GetType()
文档:
typeName
类型:System.String
要获取的类型的程序集限定名称。看到AssemblyQualifiedName。类型是否在当前执行的程序集或Mscorlib.dll中,提供类型名称就足够了
从AssemblyQualifiedName
的文档中,这是一个示例名称:
TopNamespace.SubNameSpace.ContainingClass+NestedClass, MyAssembly, Version=1.3.0.0, Culture=neutral, PublicKeyToken=b17a5c561934e089
Update:如果您已经在项目中引用了程序集,并且在编译时知道类型名称是什么,那么您最好使用
Type myType = typeof(caLibClient.entity.Web2ImageEntity);
,因为现在你不需要在运行时搜索类型;
根据程序集限定名
Type.GetType("caLibClient.entity.Web2ImageEntity, caLibClient")
您需要传递一个程序集限定名,在您的情况下类似于:
var yourType = Type.GetType("caLibClient.entity.Web2ImageEntity,caLibClient");
如果您知道目标类型所在的程序集中的类型,则可以避免对完整的程序集限定名进行硬编码。例如:
Type.GetType(
"MyAssembly.Foo.BarSubclass, " + typeof(MyAssembly.Foo.IBar).Assembly.FullName)