【问题标题】:MEF container auto-update using a directory-catalog使用目录目录自动更新 MEF 容器
【发布时间】:2010-12-07 16:11:49
【问题描述】:

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

MEF 是否支持在 Container 使用 DirectoryCatalog 并且自动为我们更新时自动更新?

【问题讨论】:

    标签: directory containers mef catalog auto-update


    【解决方案1】:

    您需要调用 DirectoryCatalog 的 Refresh 方法以更新新内容。这将触发连接到目录的任何容器中的重组。您可以创建一个 FileSystemWatcher 并在发生任何变化时调用 Refresh 方法。

    【讨论】:

    • 我按照你说的做了,新零件一切正常,但我无法更换现有零件。似乎 MEF 锁定了我的 dll。如何动态替换部件(插件文件夹中单个 dll 中的每个部件)?谢谢
    • @Xaqron .NET 锁定了您的 DLL。您不能从 AppDomain 中卸载程序集,并且在加载它们时通常会有一个锁。您可以为 AppDomain 启用卷影复制以删除 DLL。它们仍会被加载,但当您调用 Refresh 并将它们从目录中删除时,DirectoryCatalog 会看到它们已消失。
    猜你喜欢
    • 1970-01-01
    • 2011-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-08
    • 1970-01-01
    相关资源
    最近更新 更多