2010-08-30 58 views
4

我想在我的Silverlight客戶端中實現註銷操作。MEF。如何清理默認容器?

在登錄操作期間,MEF使用包含用戶特定信息(如密碼)的[導出]單例類的實例初始化DefaultContainer。

有沒有辦法,重新初始化/重置/下降MEF基礎設施/ DefaultContainer像它從未初始化?

我想導航到用戶成功執行退出操作後,再次登錄頁面...

回答

1

這是不可能重新初始化CompositionHost容器。一旦它被初始化或默認創建,它就不能被改變。

然而,您可以創建一個AggregateCatalog,並使用TypeCatalog和singleton作爲唯一類型,並在不再需要時將其從聚合中移除。

這並不改變這樣一個事實:一旦MEF創建'part',它就可以滿足任何需要它的[Import]。

MSDN

默認容器創建的用於填充導入的部分將由託管擴展性框架(MEF)保留,直到應用程序關閉。長時間運行的應用程序應該使用ExportFactory管理其部件的生命週期。