【问题标题】:MEF. How to clean up the default container?MEF。如何清理默认容器?
【发布时间】:2010-08-30 10:48:46
【问题描述】:

我正在尝试在我的 Silverlight 客户端中实现注销操作。

在登录操作期间,MEF 使用 [Export]-ed 单例类的实例初始化 DefaultContainer,其中包含特定于用户的信息(如密码)。

有没有办法像从未初始化一样重新初始化/重置/删除 MEF 基础设施/DefaultContainer?

我想在用户成功执行注销操作后再次导航到登录页面...

【问题讨论】:

    标签: c# silverlight-4.0 mef


    【解决方案1】:

    无法重新初始化 CompositionHost 容器。一旦它被初始化或默认创建,它就无法更改。

    但是,您可以创建一个 AggregateCatalog 并将 TypeCatalog 与单例作为唯一类型,并在不再需要时将其从聚合中删除。

    这并没有改变这样一个事实,即一旦 MEF 创建了一个“部件”,它就可以满足任何其他需要它的 [Import]。

    来自MSDN

    由默认容器创建的用于填充导入的部件将由托管可扩展性框架 (MEF) 保留,直到应用程序关闭。长时间运行的应用程序应使用 ExportFactory 来管理其部件的生命周期。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-08-22
      • 1970-01-01
      • 1970-01-01
      • 2018-05-20
      • 1970-01-01
      • 2011-05-29
      • 2022-12-17
      • 1970-01-01
      相关资源
      最近更新 更多