我是新來使用反射,但想了解的GetType()的行爲爲什麼Assembly.GetType()在加載不同裝配時反映了反射裝配?
我有以下幾點:
assembly = Assembly.LoadFile(@"D:\ObjectRelations.dll");
Type type = assembly.GetType("ObjectRelations.JSHierarchyBuilder");
MethodInfo[] methods = type.GetMethods();
try
{
foreach (MethodInfo method in methods)
{
.... List Some info, etc.
}
}
catch ...
雖然這會產生什麼包含在我的程序集的預期輸出,使用替代的
Type type = assembly.GetType();
讓我與反思大會,而不是大會,是在的LoadFile方法,它是不是真的我想什麼預期或將有想到會是AP指定相關的方法突然行爲;否則爲什麼我需要指定任何文件加載,如果返回類型將是反射大會。有點兒對我很害怕。
無論如何,如果這是正確的;看到我的第一個例子按預期工作。那麼,如果沒有精確地知道大會的名稱空間/和/或類名可能不同於大會的名稱,那麼如何獲得大會的「方法」等任何信息呢?
我假設Reflection應該允許您檢查這種類型的信息,即使您沒有預知程序集的底層是什麼,並且在運行時實例化對象的動態方面不是「唯一」的好處。
有人可以解釋一下嗎?或者,我是否完全錯了。
你期望它返回什麼類型? – SLaks 2011-05-16 16:37:03
由於程序集不是一個類,也沒有任何方法。 – SLaks 2011-05-16 16:38:11