我有一個應用程序使用通過接口管理的插件,然後動態加載插件類並將它們投射到接口以使用它們。使用反射投射錯誤
我有以下代碼行,假設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