Bonjour,

Je tente de charger une dll si elle est déposé dans un dossier. Pour ce faire je fait ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
 
 
        FileSystemWatcher filesw = new FileSystemWatcher();
        string pathDossier = @"C:\Users\gfauconnier\Documents\Visual Studio 2013\Projects\PluginAppSolution\PluginApp\bin\Debug\Plugin";
        DirectoryCatalog directoryCatalog;
 
        public PluginLoader(string path)
        {
            directoryCatalog = new DirectoryCatalog(path);
 
            filesw.Path = pathDossier;
            filesw.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite | NotifyFilters.FileName | NotifyFilters.DirectoryName;
            filesw.Filter = "*.*";
            filesw.EnableRaisingEvents = true;
            filesw.Changed += new FileSystemEventHandler(OnChanged);
 
            var catalog = new AggregateCatalog(directoryCatalog);
 
            _Container = new CompositionContainer(catalog);
 
            _Container.ComposeParts(this);
        }
 
        private void OnChanged(object sender, FileSystemEventArgs e)
        {
            try
            {
                directoryCatalog.Refresh();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
 
            MessageBox.Show("refresh ok");
        }
Le problème c'est que je me retrouve avec l'erreur suivante que je ne comprends pas :

La composition reste inchangée. Les modifications ont été rejetées en raison des erreurs suivantes : La composition a produit une seule erreur de composition. La cause initiale est fournie ci-après. Pour plus d'informations, passez en revue la propriété CompositionException.Errors.

1) Modification des exportations empêchée par l'importation non recomposable 'MyApp.PluginLoader.Plugins (ContractName="PluginContract.IPlugin")' sur le composant 'MyApp.PluginLoader'.

Je charge mes plugin de la façon suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
 
PluginLoader loader = new PluginLoader("Plugin");
            _Plugins = new Dictionary<string, IPlugin>();
            IEnumerable<IPlugin> plugins = loader.Plugins;
Merci d'avance pour votre aide !