标签: c# api ms-office
我想扩展API(Visio API - Microsoft.Office.Interop.Visio)。课程没有密封。他们内部有一些奇怪的COM内容。
我有什么选择?
具体来说,从我的应用程序的商业逻辑中分离纯(外部)api访问的最佳方法是什么?
答案 0 :(得分:0)
我会写一个接口类。
您的接口类将在C#中,它将负责调用所有COM内容。
然后在代码的其他区域(即业务层)中,调用接口类来获取文档。
我不会直接公开这些函数,即使例如你的接口中的Save()和COM有相同的签名。这将为您提供未来可扩展性的自由。
答案 1 :(得分:0)
您可以使用Proxy或(可能更合适)Adapter模式。
基本思想是创建一个包装类,其中包含要包装的类的实例。包装器类具有适合您的用法的方法,该方法委托给包装类来执行实际工作。这允许您将包装类的依赖性仅隔离到包装类中的代码。