2014-01-29 71 views
1

我寫模塊化的棱鏡的應用,巫從目錄(dll文件)加載模塊文件。作爲開發者,我不知道有多少該模塊將在該目錄中,什麼樣的是等傳遞元數據與棱鏡模塊

在我的應用程序需要從導入模塊的一些元數據 - 即狀態(如果這將是窗口/面板/窗口元素/實用程序模塊),圖標,本地化標題等。

我知道我可以通過在每個模塊中創建類似Module.config文件的內容,然後在主應用程序中通過ModuleInfo.Ref路徑 - >然後獲取Module.config文件路徑) - 但我不想這樣做。

我不知道Prism是否有通過代碼傳遞元數據的可能性(Interface for metadata mode?XML string?Dynamic object?) 如果不是 - 我該如何實現它以及應該覆蓋哪些類?

謝謝你的任何建議!

+2

不確定PRISM是否支持類似的東西?但是,在'Bootstrap'期間,你可以不用像'MetadataStore'('IMetadataStore')那樣創建並註冊'Container',並將'IMetadataStore'注入每個模塊,然後每個模塊在'Initialize )'? – sthotakura

回答

1

如果你想從模塊到主應用程序暴露後的元數據模塊已經被加載和初始化,然後一個簡單的方法來做到這一點是添加的模塊的元數據在初始化方法。例如,您可以有一個共享服務負責存儲模塊的元數據,每個模塊可以訪問它並在初始化時添加它們的元數據。

如果您想在加載之前訪問模塊的元數據(例如,要決定要加載或不加載哪些模塊),那麼Prism不會提供任何可以幫助您完成此功能的功能的盒子。您可以替換與棱鏡的交互API的幾個類的默認實現添加自定義功能(你可以閱讀更多關於這個here,),但這種情況下,我認爲這將是更好地實施單獨的服務來獲得元數據那麼這些模塊就可以將模塊的初始化委託給Prism。

+0

實際上,我已經更改了實現od模塊目錄並向模塊添加了屬性,因此模塊目錄正在讀取我的額外屬性並創建了元數據結構。謝謝你的幫助! – Zozo