Wie exportiere und importiere ich Funktionen und führe sie mit MEF aus?

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.

/////////////////////////////////////////////////////////////////////////////////
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 ich den Import & Export definiere und wie ich die Funktion genau ausführen soll.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage