我正在开发 Microsoft Word Addin ,我需要扩展某些Word Base对象的属性和/或行为,如Word.Comment
。
例如,从 C#:
中的此代码开始Word.Comment comment = ActiveDocument.Comments.Add(myRange,myString);
如何扩展Word.Comment
类并使此工厂方法Comments.Add()
返回我的扩展类Word.Comment
的实例?
可能吗 ?如果不是,还有其他方法可以向基础对象添加属性吗?
答案 0 :(得分:1)
您不能简单地扩展实际的单词对象。有几种方法可以做到这一点。
可能最好的方法是将Word.Comment对象包装在一个对象中。例如:
class MyComment{
private Word.Comment comment;
// some additional logic
}
然后你只需使用这个类而不是Word的评论类。您可以为该方法执行类似的操作。
有一些众所周知的模式描述了这种逻辑:Decorator,Adapter。它经常在处理第三方API时使用。
您还可以使用extension methods实现类似的行为。