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