我是新来使用反射,但想了解的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