1

我一直在查看 VSTO 库,主要是为了好玩,我注意到有一些东西叫做Inspectoras well as InspectorClass.

有什么区别,为什么会在那里,我该如何使用它?(注意,我不是在寻找关于如何使用这些类进行编码的答案,而是在寻找某种架构模式背后的基本原理。纯粹是学术好奇心。)

4

1 回答 1

1

InspectorClass是COM 接口的一个coclass具体实现) (例如,它是一个带有元数据 + 代码的 COM 对象)。An可以直接实例化,即使它纯粹作为接口定义存在(它实际上是在幕后实例化)。InspectorInspectorInspectorClass

InspectorClass可以实例化,因为它表示一个具体的类实例,尽管随着VSTO 添加了对在 .NET 4 中嵌入互操作类型的支持-不再使用*Class使用的支持,并且或多或少地存在向后兼容性

所有这一切都是说你现在应该使用Inspector而不是InspectorClass可以包含可执行代码的。来自MSDN 博客

...嵌入元数据是安全的,但不是任何可能包含可执行代码的东西(类类型包含元数据和代码,而接口只包含元数据

从这个语句中,您可以推断出InspectorClass包含可执行代码,而Inspector没有 - 它纯粹是一个接口(元数据)。这意味着嵌入互操作类型不允许支持*Class实现。

于 2012-10-17T15:38:41.520 回答