2014-01-16 23 views
1

在netoffice中使用IDTExtensibility2 vs ComAddin在netoffice中有技術優勢嗎?還是他們都完成同樣的事情(儘管通過不同的途徑)?NetOffice - IDTExtensibility2 vs ComAddin

我知道ComAddin從IDTExtensibility2接口繼承 - 我想我的問題很簡單 - 爲什麼我會直接從接口繼承,而不是從ComAddin類繼承?更多控制權?

回答

2

NetOffice不使用或使用PIA或VSTO(不需要)。這是NetOffice的優勢之一。

IDTExtensibility2接口是MS-Office中基於COM的插件的通用接口。辦公應用程序根據插件信息創建一個實例(基於註冊表信息),並通過此接口與插件交流。您可以創建一個辦公室插件,只需實現這些界面。 (所有的解決方案,addin express,vsto,netoffice都是在幕後進行的)

NetOffice中的COMAddin基類是通過IDTExtensibility2接口處理Office的頂層包裝,併爲您處理典型的基礎架構任務/取消註冊等)。 VSTO的基本相同,但你永遠不會在這裏看到基類(在codeprovider魔術期間,但你可以在IL Spy或反射器中看到這個)

COMAddin基類使創建辦公室插件和減少基礎設施代碼與VSTO更加相似 - 這就是整個想法。您選擇使用它。如果你沒有特殊的要求,那麼我發現它是一個好主意。

1

ComAddin要求您安裝Office,但NetOffice僅適用於PIA(主互操作程序集)。

從這個link

一個Office COM加載提取是受通過COM運行時層Office應用程序激活的進程內COM服務器。因此,在.NET中開發COM加載項需要使用.NET實現插件組件,然後通過COM互操作層向COM客戶端(即Office應用程序)公開該插件組件。

相關問題