Assembly.CreateInstance und casting

16/01/2009 - 15:08 von Frank Weichert | Report spam
Hallo NG,
ich versuche eine Plugin Schnittstelle in mein Programm einzubauen.
Dafür habe ich mir ein Interface angelegt, und eine Klasse, die dieses
Interface implementiert.
Nun kann die Assembly laden, instanzieren, aber ich bekomme von der
Klasse keinen Cast auf das interface. Wenn ich versuche das Object
zu casten, dann kommt eine Invalid Cast Exception. Ich kanns mir
gerade nicht erklàren wieso...


Assembly assembly = Assembly.LoadFrom (nameOfDLL);

Type ty = assembly.GetType(nameOfClass ,false) ;
Object o = assembly.CreateInstance(nameOfClass);

if(o != null) {
(IPlugin) o.write();
}

Was mache ich da falsch?
Danke für eure Hilfe,
und schon mal schönes Wochenende,
Frank
 

Lesen sie die antworten

#1 Frank Weichert
16/01/2009 - 15:29 | Warnen spam
Hat sich nun erledigt...
das ganzer geht wohl nur, wenn das eigene Projekt keine
Referenz zur neugeladenen DLL hat...
Danke und schönen Wochenende,
Frank

Frank Weichert schrieb:
Hallo NG,
ich versuche eine Plugin Schnittstelle in mein Programm einzubauen.
Dafür habe ich mir ein Interface angelegt, und eine Klasse, die dieses
Interface implementiert.
Nun kann die Assembly laden, instanzieren, aber ich bekomme von der
Klasse keinen Cast auf das interface. Wenn ich versuche das Object
zu casten, dann kommt eine Invalid Cast Exception. Ich kanns mir
gerade nicht erklàren wieso...


Assembly assembly = Assembly.LoadFrom (nameOfDLL);

Type ty = assembly.GetType(nameOfClass ,false) ;
Object o = assembly.CreateInstance(nameOfClass);

if(o != null) {
(IPlugin) o.write();
}

Was mache ich da falsch?
Danke für eure Hilfe,
und schon mal schönes Wochenende,
Frank

Ähnliche fragen