[VS2010][.NET4][C#4][WPF4]

Bonjour,

j'utilise les MEF pour mon nouveau projet à base de plugin.
ce projet est composé de :
HOST : l'application (exe) qui va accueillir (afficher) le plugin (view) donc qui fait la composition egalement!!
PLUGIN_VIEW1 : plugin (dll) avec une view qui sera afficher dans HOST
PLUGIN_LOGGER : plugin (dll) sans vue , uniquement des fonctions uqui permettent de faire du log

plugin_logger : possède des fonctions de log, je souhaiterai exporter par exemple la fonction Log(string txt); à tous les autres plugins mais également à l'host
exemple

code du logger (logger.dll)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
namespace Module.Tools.Logger
{
    [Export(typeof(ILogger))]
    public class ConsoleLogger : ILogger
    {
        public void Log(string message)
        {
            Console.WriteLine(message);
        }
    }
}
code du contrat (contract.dll)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
namespace Contract
{
        public interface ILogger
        {
            void Log(string message);
        }
}
code l'host (host.exe)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
        CompositionContainer container ;
        public bool CheckLicences()
        {
            AggregateCatalog objCatalog = new AggregateCatalog();
            AssemblyCatalog objAssembly = new AssemblyCatalog(System.Reflection.Assembly.GetExecutingAssembly());
            objCatalog.Catalogs.Add(objAssembly);
            objCatalog.Catalogs.Add(new DirectoryCatalog("Modules"));
            container = new CompositionContainer(objCatalog);
            container.ComposeParts(this);
            // ICI LOGGER EST OK il n'est pas NULL 
            Logger.Log("click check box");
        }
code du plugin view (plugin_view.dll)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
    public partial class PluginView : UserControl
    {
        [Import(typeof(ILogger))]
        public ILogger Logger { get; set; }
 
        public PluginView()
        {
            InitializeComponent();
            // ici logger est null après la composition
            Logger.Log("message test");
        }
    }
comme vous le voyez précédemment lors de la composition Logger n'est pas null dans l'host mais il et null dans le plugin view.
apparemment l'import ne fonctionne que à l'endroit ou se trouve la composition c'est à dire dans l'host...
comment faire pour que la fonction Log soit propagé egalement au autres plugins qui sont composé..

Merci d'avance de votre aide
Aram