2014-01-16 22 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应用程序)公开该插件组件。

相关问题