我尝试从.dll(它也在执行项目中引用)中领导类型。我呼吁:assembly.GetTypes()不返回所有类型
public static void LoadPlugin(string pluginFile)
{
Assembly assembly = Assembly.LoadFrom(pluginFile);
foreach (Type type in assembly.GetTypes())
{
// play with it
}
}
它加载只是其中的几个:
public partial class Mathematics : UserControl, IMathematics, IPortable
和
public partial class Welcome : UserControl
但接下来的一个,和其他一些人,被忽略:
public partial class Test : UserControl, ITest, IPortable
他们都站在同一个大会,在s ame命名空间。 public static void LoadPlugin(string pluginFile)
方法位于执行项目中也引用的其他程序集中。
不引发任何异常。 未加载所有类型的问题可能是什么?有任何想法吗?
我有一个类似的问题,因为GetTypes()没有返回在程序集中定义的所有PUBLIC类,并且都具有Export属性。我不知道它是巧合还是什么,但它碰巧实现了一个接口的类型(就像你有)没有被报告,而不实现接口的类型被报告 – 2014-08-07 15:29:18