0
我有一个名为IPlugin接口。这是在一个称为TimerClass的抽象类中实现的。然后有一个名为Test的类从TimerClass继承。类从抽象类,它实现接口,和装载该继承反射性
测试类是在它自己的DLL,并通过反射加载。
这工作得很好,如果我不使用TimerClass(只实现IPlugin在测试)。
我该反思加载测试类的接口(IPlugin)的代码看起来是这样的:当测试类被加载var operation = Activator.CreateInstance(type) as IPlugin;
崩溃:
private IPlugin GetInterface(Assembly assembly)
{
IPlugin PluginFound = null;
var iPluginType = typeof (IPlugin);
var types = assembly.GetExportedTypes();
foreach (var type in types)
if (iPluginType.IsAssignableFrom(type))
{
var operation = Activator.CreateInstance(type) as IPlugin;
if (operation != null)
{
PluginFound = operation;
break;
}
}
return PluginFound;
}
的这部分代码。
起初我以为这可能是因为它试图加载抽象类TimerClass,但这似乎远远取因为此类是不是在同一个DLL中实现。我也调试了它,看着大会,对我来说似乎正确的类加载...
谁能告诉我为什么会发生这种情况,如果有一种解决方案,我没有看到?
你能提供一个异常消息和调用堆栈信息吗? –
它是在一堆线程中..如果我要找到它,你将不得不等待一段时间,我将不得不实施例外策略...... :)我希望以后可以这样做..所以任何猜测或预感是非常appriciated –
你尝试使用Activator.CreateInstance(NameSpaceOfType.Type)? – FelProNet