我正在研究MEF作爲現有.NET應用程序中插件解決方案的解決方案。現有應用程序中的MEF全局組合容器
在我能找到的所有例子中,主應用程序創建一個CompositionContainer的實例並調用container.ComposeParts(this)。
問題是,我的應用程序並不完全建立在MEF上,所以在沒有MEF組件的對象圖中有一個洞。 所以我的對象層次結構可能是這樣的:
應用程序(MEF容器) - >對象B (無MEF) - >對象A(需要MEF 進口)
在這種對象層次,它是我不可能在應用程序中調用container.ComposeParts(this),並希望應用程序創建ObjectB並滿足ObjectA的Imports。
在全局公開CompositionContainer是否是一種很好的做法,這樣我就可以在晚於應用程序啓動時編寫ObjectA,還是必須重構我的整個應用程序以支持線性MEF對象圖?