[英]WPF: how to reload AggregateCatalog in Prism + MEF?
如何正确地重新加载Prism的AggregateCatalog? 当文件更改时,我需要Prism重新加载其目录,但它一直给我这个错误:
System.ComponentModel.Composition.dll中发生了类型为'System.ComponentModel.Composition.ChangeRejectedException'的未处理异常
这是自举程序片段。 当我清除AggregateCatalog时,它将失败。
class Bootstrapper : MefBootstrapper
{
private readonly FileSystemWatcher _fileWatcher;
public Bootstrapper()
{
_fileWatcher = new FileSystemWatcher(Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory, "Modules"));
_fileWatcher.Created += fileWatcher_Changed;
_fileWatcher.Changed += fileWatcher_Changed;
_fileWatcher.Deleted += fileWatcher_Changed;
_fileWatcher.Renamed += fileWatcher_Changed;
_fileWatcher.EnableRaisingEvents = true;
}
private void fileWatcher_Changed(object sender, FileSystemEventArgs e)
{
this.AggregateCatalog.Catalogs.Clear(); //It fails here!
ConfigureAggregateCatalog();
ConfigureContainer();
}
这是不可能的。 当应用程序启动时,将在初始化期间构建模块目录,此后将不再使用它,甚至将其销毁。 如此动态地在不重新启动应用程序的情况下,使用棱镜无法添加模块。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.