Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Directory 使用目录目录自动更新MEF容器_Directory_Containers_Mef_Catalog_Auto Update - Fatal编程技术网

Directory 使用目录目录自动更新MEF容器

Directory 使用目录目录自动更新MEF容器,directory,containers,mef,catalog,auto-update,Directory,Containers,Mef,Catalog,Auto Update,如果我们手动创建一个FileSystemWatcher并查看“parts”目录(这里是文件夹中的一些DLL)并跟踪任何更改,然后将更改反映到允许重新编译的容器中,这是可能的 当容器使用目录目录时,MEF是否支持自动更新,并为我们自动更新?您需要调用目录目录的刷新方法,以便使用新内容进行更新。这将触发连接到目录的任何容器中的重新编译。您可以创建一个FileSystemWatcher,并在发生任何更改时调用刷新方法。我按照您所说的做了,使用新部件一切正常,但我无法替换现有部件。似乎MEF锁定了我的D

如果我们手动创建一个
FileSystemWatcher
并查看“parts”目录(这里是文件夹中的一些DLL)并跟踪任何更改,然后将更改反映到允许重新编译的容器中,这是可能的


容器使用
目录目录时,
MEF
是否支持自动更新,并为我们自动更新?

您需要调用目录目录的
刷新
方法,以便使用新内容进行更新。这将触发连接到目录的任何容器中的重新编译。您可以创建一个FileSystemWatcher,并在发生任何更改时调用刷新方法。

我按照您所说的做了,使用新部件一切正常,但我无法替换现有部件。似乎MEF锁定了我的DLL。如何动态替换部件(每个部件位于插件文件夹中的单个dll中)?thanks@Xaqron是.NET锁定了您的DLL。无法从AppDomain卸载程序集,在加载程序集时,通常会有一个锁。您可以为AppDomain启用卷影复制以删除DLL。它们仍将被加载,但当您调用Refresh并将其从目录中删除时,DirectoryCatalog会看到它们已消失。