Ms word 扩展互操作词库对象的最佳方法
我正在开发一个Microsoft 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对象。不过,有几种方法可
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对象模型操作会反复出现问题。(请阅读此示例)