Casting-Fehler bei Reflektion

7

Ich habe eine Anwendung, die Plugins verwendet, die über eine Schnittstelle verwaltet werden. Ich lade dann dynamisch die Plug-in-Klassen und wirke sie auf die Schnittstelle, um mit ihnen zu arbeiten.

Ich habe die folgende Codezeile, gehe davon aus, dass IPlugin meine Schnittstelle ist.

%Vor%

Dies sollte ziemlich einfach sein, erstellen Sie die Instanz und werfen Sie sie auf die Schnittstelle. Ich weiß, dass die Assembly und die voll qualifizierten Namen korrekt sind, aber ich bekomme die folgende Ausnahme.

  

Ausnahme =   System.InvalidCastException: Kann nicht ausgeführt werden   Gussobjekt vom Typ   'System.Runtime.Remoting.ObjectHandle'   tippen   'MyNamespace.Components.Integration.IPlugin'.   beim   MyNamespace.Components.Integration.PluginProxy..ctor (Int32   instanceId)

Irgendwelche Ideen, was könnte das verursachen?

    
Mitchel Sellers 13.04.2010, 21:14
quelle

2 Antworten

12

Die Ausnahme zeigt an, dass Sie ObjectHandle erhalten, was darauf hinweist, dass Ihr Objekt gemarshallt wird und ausgepackt werden muss.

Versuchen Sie Folgendes

%Vor%     
Jay 13.04.2010, 21:20
quelle
7

Wie Sie in der Dokumentation sehen können, gibt diese Überladung ein ObjectHandle Objekt , das die neue Instanz umschließt.

Der ObjectHandle kann nicht direkt an Ihre Schnittstelle übergeben werden.
Stattdessen müssen Sie die Methode Unwrap aufrufen, so:

%Vor%     
SLaks 13.04.2010 21:17
quelle

Tags und Links