扩展Interop Word基础对象的最佳方法

时间:2014-10-21 11:31:52

标签: ms-word vsto word-vba

我正在开发 Microsoft Word Addin ,我需要扩展某些Word Base对象的属性和/或行为,如Word.Comment

例如,从 C#

中的此代码开始
  

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

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

1 个答案:

答案 0 :(得分:1)

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

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

class MyComment{
   private Word.Comment comment;

   // some additional logic  
}

然后你只需使用这个类而不是Word的评论类。您可以为该方法执行类似的操作。

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

您还可以使用extension methods实现类似的行为。