我的團隊已經決定,爲了添加新提供了一個可擴展的模型使用微軟的託管擴展性框架(MEF) 「提供者」加入我們的系統。
這使我們能夠相對容易地插入新的第三方提供商。
注意:MEF的簡單使用和啓動方式給我留下了深刻的印象。
我的問題:
由於這些提供商通常具有不同的性質與它們相關的,在運行時加載這些供應商到系統中,當我們需要訪問提供商的數據流和屬性。
由於不同的屬性,應該採取什麼方法來與所述提供者插件一起工作?注意到他們都做了類似的工作。
我的解決方案:
創建該供應商必須符合的接口,導致「包裝」周圍的每個產生一個一致的界面/ 編程模型一起工作的第三方供應商的創建每個供應商。
插件=第三方數據源(提供程序)+通用接口實現。
+ ve: 不需要針對所述插件的更復雜的基於反射的動態「插件」。
-ve: 必須爲每個提供者編寫包裝。 (我們需要添加不管MEF導出代碼)
進一步注:
對我來說,接口/包裝的方法是最簡單的,但我已被告知,調查反映爲基礎的方法,其可能利用反射來發現運行時可能暴露給系統的屬性。
我不贊成任何一種解決方案,但我會有興趣聽到社區的想法(其中大部分比我更有經驗)。
謝謝。
次要此外,RuleAttribute類也應標有: [AttributeUsage(的AllowMultiple =假)] – 2009-08-14 19:44:07