Type.GetType()动态字符串返回null
问题描述:
我使用Type.GetType()
来创建实例。Type.GetType()动态字符串返回null
这工作:
var type = Type.GetType("Test.ClassServices.HowService, Test");
但是,这doesn't工作。它返回null
:
var name = "How";
var type = Type.GetType("Test.ClassServices."+name+"Service, Test");
答
没有重现。 MSDN上
var hardCodedWorking = Type.GetType("System.String");
var stringName = "String";
var concatenatedWorking = Type.GetType("System." + stringName);
var badStringName = "string";
var concatenatedNull = Type.GetType("System." + badStringName);
从Type.GetType():运行此示例
获取的类型与所指定的名称,执行区分大小写 搜索。
基于上面的例子和我的例子,我认为name
的值很可能与该类的名称完全不匹配。
GetType不创建实例,它返回表示指定类型的Type对象。至于null,你确定程序集可以被找到并被加载,并且命名空间是正确的吗? – Lloyd 2012-04-12 15:32:37
我在.NET 4中试过这个,并没有问题。所以仔细检查错误代码。 – Jetti 2012-04-12 15:36:58
你确定你没有在第二种情况下的任何错字?我想,'name'变量的值是计算出来的,你确定这是正确完成的(顺便说一句,套管事项)? – 2012-04-12 15:37:40