我建立了一个插件系统,在那里我可以动态加载类到我的应用程序(IModule
是一个接口,所以我知道该插件将正确的行为):如何从插件获取类实例?
var dll = Assembly.LoadFile("path/to/a/dll");
foreach (Type t in dll.GetExportedTypes()) {
if (typeof(IModule).IsAssignableFrom(t)) {
IModule mod = (IModule)Activator.CreateInstance(t);
}
}
所以,从我的“主”的应用,我可以在我的插件中获得并实例化类。现在我想要的是能够从插件中获得“主”应用程序的类。
我试过使用Type.GetType("NameOfClass")
,但是返回null
。
这似乎不应该是一个问题。你卡在哪里? – adv12
仅基于类的名称获取类实例。 –
为什么在这个方向上使用反射?为什么不从你的插件项目引用应用程序并直接引用这些类? – adv12