我正在處理一組基本上是插件的COM服務器。每個插件都有一組由另一個組件管理的配置數據,配置數據的主鍵是插件的ProgID。當插件需要訪問一個配置項時,它會發起一個調用並傳遞其ProgID和所需屬性的名稱。這是一個傳統設計,我必須保持向後兼容性。多個ProgID可以指向相同的ClsID嗎?
我現在需要加載每個插件的多個實例,每個實例都有一組不同的配置數據。我正在考慮的解決方案是爲每個插件創建多個獨特的ProgID,每個ProgID將指向插件的單個ClsId。因此,插件的每個實例都將通過其ProgID進行識別,ProgID仍然用作配置數據的主鍵,並且所有內容都100%向後兼容。
所以,問題:
- 這是一個可以接受的技術? (多個ProgID都指向一個ClsID)。
- 當我的插件加載時,它能夠告訴哪個ProgID被用來創建它嗎?
+1對於一個偉大的迴應,這可能最終會成爲公認的答案,除非有人想在未來幾天添加任何東西。 – 2009-11-17 15:16:57