Je crée une application qui importe plusieurs plugins. J'ai besoin de la capacité d'exécuter des fonctions qui sont implémentées dans chacun des plugins. Par exemple, j'ai besoin de faire quelque chose comme ça.Comment exporter et importer des fonctions et les exécuter avec MEF?
/////////////////////////////////////////////////////////////////////////////////
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;
}
/////////////////////////////////////////////////////////////////////////////////
Le problème est que je ne suis pas sûr de savoir comment définir l'importation et l'exportation & comment exécuter exactement la fonction.
vous pas utiliser Si ImportMany? '[ImportMany (" FunctionType ")]' – mnn
@mnn Merci, j'ai mis à jour le code –