C# Type.GetType()动态字符串返回null

C# Type.GetType()动态字符串返回null,c#,C#,我正在使用Type.GetType()创建一个实例 这项工作: var type = Type.GetType("Test.ClassServices.HowService, Test"); 但是,这不起作用。它返回null: var name = "How"; var type = Type.GetType("Test.ClassServices."+name+"Service, Test"); 没有责备。运行此示例: var hardCodedWorking = Type.GetT

我正在使用
Type.GetType()
创建一个实例

这项工作:

 var type = Type.GetType("Test.ClassServices.HowService, Test");
但是,这不起作用。它返回
null

 var name = "How";
 var type = Type.GetType("Test.ClassServices."+name+"Service, Test");

没有责备。运行此示例:

var hardCodedWorking = Type.GetType("System.String");

var stringName = "String";
var concatenatedWorking = Type.GetType("System." + stringName);

var badStringName = "string";
var concatenatedNull = Type.GetType("System." + badStringName);
从MSDN开始:

获取具有指定名称的类型,执行区分大小写的 搜索


基于这一点和我上面的示例,我认为
name
的值很可能与类的名称不完全匹配。

GetType不创建实例,它返回一个表示指定类型的Type对象。至于null,您确定可以找到并加载程序集,并且名称空间正确吗?我在.NET4中尝试了这一点,没有问题。所以,仔细检查代码是否有拼写错误。你确定你在第二种情况下没有任何拼写错误吗?我想,计算了
name
变量的值,您确定这是正确的吗(顺便说一句,大小写很重要)?我同意@Jetti,代码是等效的。必须工作。再打一遍。也许是Unicode的有趣之处。另外,将字符串创建到它自己的变量中,然后断言它等于硬编码版本。谢谢