Ich erstelle eine Anwendung, die mehrere Plugins importiert. Ich brauche die Fähigkeit, Funktionen auszuführen, die in jedem der Plugins implementiert sind. Zum Beispiel muss ich so etwas tun.Wie exportiert und importiert man Funktionen und führt sie mit MEF aus?
/////////////////////////////////////////////////////////////////////////////////
MainApp:
[ImportMany(?)]
public IEnumerable<Lazy<?>> PluginFunctions1 { get; set; }
[ImportMany(?)]
public IEnumerable<Lazy<?>> PluginFunctions2 { get; set; }
foreach (f1 in PluginFunctions1)
{
f1(); // execute Function1 from each plugin
}
foreach (f2 in PluginFunctions2)
{
string result = f2(val); // execute Function2 from each plugin
}
/////////////////////////////////////////////////////////////////////////////////
Plugin:
[export(?)]
public void Function1()
{
}
[export(?)]
public string Function2(string value)
{
return result;
}
/////////////////////////////////////////////////////////////////////////////////
Problem ist, dass ich nicht sicher bin, wie der Import & Export und wie definiert die Funktion genau auszuführen.
Sollten Sie nicht ImportMany verwenden? '[ImportMany (" FunctionType ")]' – mnn
@mnn Danke, ich habe den Code aktualisiert –