【发布时间】:2010-05-10 08:38:16
【问题描述】:
我尝试从 .dll 中引导类型(在执行项目中也引用了该类型)。我打电话:
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
它们都位于同一个程序集中,在同一个命名空间下。 public static void LoadPlugin(string pluginFile) 方法位于执行项目中也引用的其他程序集中。
不抛出异常。 不加载所有类型可能是什么问题?有什么想法吗?
【问题讨论】:
-
我遇到了类似的问题,因为 GetTypes() 没有返回程序集中定义的所有 PUBLIC 类并且都具有 Export 属性。我不知道这是巧合还是什么,但碰巧实现了接口的类型(就像你拥有的那样)没有被报告,而没有报告的类型没有实现接口
标签: c# assemblies load types