我有一个应用程序使用通过接口管理的插件,然后动态加载插件类并将它们投射到接口以使用它们。使用反射投射错误
我有以下代码行,假设IPlugin是我的界面。
IPlugin _plugin = (IPlugin)Activator.CreateInstance(oInfo.Assembly, oInfo.FullyQualifiedName)
这应该很简单,创建实例并将其转换为接口。我知道程序集和完全限定的名称值是正确的,但我得到以下例外。
异常= System.InvalidCastException:无法类型的 铸造对象 “System.Runtime.Remoting.ObjectHandle” 键入 “MyNamespace.Components.Integration.IPlugin”。 在 MyNamespace.Components.Integration.PluginProxy..ctor(的Int32 实例Id)
任何想法可能导致此?
他不会需要转换为'ObjectHandle'第一,以'展开()'? – Jay 2010-04-13 21:29:15
@Jay:不;它被声明为返回ObjectHandle。阅读文档。 – SLaks 2010-04-13 21:55:28