Interception ChangeRejected Exception
Bonjour,
Je tente de charger une dll si elle est déposé dans un dossier. Pour ce faire je fait ceci :
Code:
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:
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 !