Ms word 扩展互操作词库对象的最佳方法

Ms word 扩展互操作词库对象的最佳方法,ms-word,vsto,Ms Word,Vsto,我正在开发一个Microsoft Word插件,我需要扩展一些词库对象的属性和/或行为,如Word.Comment 例如,从C#中的代码: Word.Comment Comment=ActiveDocument.Comments.Add(myRange,myString) 如何扩展Word.Comment类并使此工厂方法Comments.Add()返回扩展类Word.Comment的实例? 可能吗?如果没有,是否有其他方法向基本对象添加属性?您不能简单地扩展实际的word对象。不过,有几种方法可

我正在开发一个Microsoft Word插件,我需要扩展一些词库对象的属性和/或行为,如
Word.Comment

例如,从C#中的代码:

Word.Comment Comment=ActiveDocument.Comments.Add(myRange,myString)

如何扩展
Word.Comment
类并使此工厂方法
Comments.Add()
返回扩展类
Word.Comment
的实例?
可能吗?如果没有,是否有其他方法向基本对象添加属性?

您不能简单地扩展实际的word对象。不过,有几种方法可以做到这一点

最好的方法可能是将Word.Comment对象包装在一个对象中。例如:

class MyComment{
   private Word.Comment comment;

   // some additional logic  
}
然后您只需使用这个类而不是Word的注释类。您可以对该方法执行类似的操作

有一些众所周知的模式描述了这种逻辑:。它通常用于处理第三方API


您还可以使用扩展方法实现类似的行为。

扩展方法可以作为一个很好的选择。带有指定模式的Word.Comment封装提醒我,在没有正确释放COM对象的情况下,Word对象模型操作会反复出现问题。(请阅读此示例)