Type.GetType("TheClass");
返回null
如果namespace
不存在这样的:避免在Type.GetType(给予命名空间名称)
Type.GetType("SomeNamespace.TheClass"); // returns a Type object
有什么办法,以避免给namespace
名字?
Type.GetType("TheClass");
返回null
如果namespace
不存在这样的:避免在Type.GetType(给予命名空间名称)
Type.GetType("SomeNamespace.TheClass"); // returns a Type object
有什么办法,以避免给namespace
名字?
这是方法期望得到的参数,所以不是。你不能。
typeName:由其名称空间限定的类型名称。
你怎么能指望具有相同名称但不同的命名空间两个类之间的区别?
namespace one
{
public class TheClass
{
}
}
namespace two
{
public class TheClass
{
}
}
Type.GetType("TheClass") // Which?!
根据我的需要,没有像这样的情况。 – 2012-02-14 08:27:29
根据我的需要,不会有这样的情况。所以在那种情况下我该怎么办呢? – 2012-02-14 08:27:37
@NIleshLanke,我希望你认识到,微软并没有根据你的**需求设计.NET框架,而是将它设计为用于更广泛的场景。例如,在两个不同名称空间中具有相同类名的情况。 – 2012-02-14 08:45:31
我使用的是搜索所有加载Assembly■对于Type匹配指定名称的helper方法。即使在我的代码中只有一个类型结果是预期的,它支持多个。我验证每次使用它时只返回一个结果,并建议您也这样做。
/// <summary>
/// Gets a all Type instances matching the specified class name with just non-namespace qualified class name.
/// </summary>
/// <param name="className">Name of the class sought.</param>
/// <returns>Types that have the class name specified. They may not be in the same namespace.</returns>
public static Type[] getTypeByName(string className)
{
List<Type> returnVal = new List<Type>();
foreach (Assembly a in AppDomain.CurrentDomain.GetAssemblies())
{
Type[] assemblyTypes = a.GetTypes();
for (int j = 0; j < assemblyTypes.Length; j++)
{
if (assemblyTypes[j].Name == className)
{
returnVal.Add(assemblyTypes[j]);
}
}
}
return returnVal.ToArray();
}
+1回答这个问题,而不是堆在上面的火焰战争。 – 2013-08-29 18:49:48
另一个答案,是从谁知道,而不是不使用命名空间bla bla :) ty的答案 – MonsterMMORPG 2016-03-01 10:52:49
太棒了,做它说什么。我会添加到这个主要的事情是使用assemblyTypes [j] .Name.EqualsIgnoreCase(className)。 – sirthomas 2017-02-09 01:04:59
您是否意识到,您可以在项目中添加多个名为TheClass的多个不同的类,其中添加了许多引用,并且尝试解析类型的文件有很多使用语句?您应该传递完全限定名称,包括命名空间,就像您在写入名字和姓氏的文档中引用自己时一样。编译器在许多TheClass类中应该使用哪个类以防出现多个类?命名空间告诉哪一个。 – 2012-02-14 08:20:08
我会抛出'ArgumentException'而不是仅仅返回'null'。你不能区分没有'命名空间' – gdoron 2012-02-14 08:26:39
可能重复[从类型的部分名称获取System.Type](http://stackoverflow.com/questions/179102/getting-a-system-type-from-types-partial -name) – nawfal 2014-08-19 07:35:09