HI,
ich hab eine kleine Anwendung die ich nun mit plugins erweitern möchte.
Dafür hab ich folgendes interface implementiert:
ist natürlich nur das Grundgerüst, aber fürs prinzipielle Testen sollte es reichen.
Das interface ist der Hauptanwendung auch bekannt.
Jetzt hab ich ein neus C# Klassenbibliothek Projekt gemacht, in der nur eine Klasse ist, die eben jenes Interface implementiert.
Wenn ich jetzt die Hauptanwendung starte, lade ich so die dll:
Mein Problem ist nun, dass der Cast schief geht mit der exception:
Das Objekt des Typs PluginTest.Plugin kann nicht in Typ Mainapp.ISolManPlugin umgewandelt werden.
Das iFaces Array hab ich zu Debugging zwecken eingeführt, dort wird auch das Interface gelistet, aber es geht halt trotzdem nicht
Die dll ist NICHT als Verweis aufgeführt und jedes Projekt enthält die komplett selbe Interface definition.
Vielleicht kann mir einer helfen
ich hab eine kleine Anwendung die ich nun mit plugins erweitern möchte.
Dafür hab ich folgendes interface implementiert:
PHP:
namespace SolMander
{
public interface ISolManPlugin
{
String GetName();
String GetVersion();
};
}
Das interface ist der Hauptanwendung auch bekannt.
Jetzt hab ich ein neus C# Klassenbibliothek Projekt gemacht, in der nur eine Klasse ist, die eben jenes Interface implementiert.
Wenn ich jetzt die Hauptanwendung starte, lade ich so die dll:
PHP:
Assembly pluginDll = Assembly.LoadFile(fileName);
Type[] pluginTypes = pluginDll.GetTypes();
foreach (Type pluginType in pluginTypes)
{
Type[] iFaces = pluginType.GetInterfaces();
try
{
object obj = pluginDll.CreateInstance(pluginType.FullName);
ISolManPlugin plugin = (ISolManPlugin)obj;
MessageBox.Show("Loaded : " + pluginType.Name);
}
catch (Exception)
{
}
}
Das Objekt des Typs PluginTest.Plugin kann nicht in Typ Mainapp.ISolManPlugin umgewandelt werden.
Das iFaces Array hab ich zu Debugging zwecken eingeführt, dort wird auch das Interface gelistet, aber es geht halt trotzdem nicht

Die dll ist NICHT als Verweis aufgeführt und jedes Projekt enthält die komplett selbe Interface definition.
Vielleicht kann mir einer helfen
