2

在 netoffice 中使用 IDTExtensibility2 与 ComAddin 在 netoffice 中是否有技术优势?还是他们都完成了同样的事情(尽管通过不同的路径)?

我知道 ComAddin 从 IDTExtensibility2 接口继承 - 我想我的问题很简单 - 为什么我会直接从接口而不是从 ComAddin 类继承?更多控制?

4

2 回答 2

3

NetOffice 不使用或与 PIA 或 VSTO 一起使用(不需要)。这是 NetOffice 的优势之一。

IDTExtensibility2 接口是 MS-Office 中基于 COM 的插件的通用接口。办公应用程序从插件创建一个实例(基于注册表信息)并通过此接口与插件通信。你可以通过实现这些接口来创建一个办公室插件。(所有解决方案,addin express、vsto、netoffice 都是在幕后完成的)

NetOffice 中的 COMAddin 基类是一个顶级包装器,用于通过 IDTExtensibility2 接口处理 Office 并为您处理典型的基础结构任务(注册/注销等)。VSTO 的作用基本相同,但您从未在这里看到基类(在 codeprovider 魔术期间,但您可以在 IL Spy oder Reflector 中看到这一点)

COMAddin 基类使创建办公室插件和减少基础架构代码变得更容易,以便更熟悉 VSTO - 这就是整个想法。您选择使用它。如果您没有特殊要求,那么我发现它是个好主意。

于 2015-02-13T02:37:31.040 回答
1

ComAddin 要求您安装 Office,但 NetOffice 仅适用于 PIA(主要互操作程序集)。

摘自此链接

Office COM 加载项是由 Office 应用程序通过 COM 运行时层激活的进程内 COM 服务器。因此,在 .NET 中开发 COM 插件需要在 .NET 中实现插件组件,然后通过 COM 互操作层向 COM 客户端(即 Office 应用程序)公开。

于 2014-02-07T13:32:08.563 回答