C# Word与多个版本的互操作
我希望使用Office互操作在一个应用程序中支持所有Office套件 通过使用C# Word与多个版本的互操作,c#,.net,ms-word,interop,C#,.net,Ms Word,Interop,我希望使用Office互操作在一个应用程序中支持所有Office套件 通过使用CreateObject(),我可以在Visual Basic中实现这一点? 问题是我无法看到前面的函数,必须在文档之间来回切换才能完成(由于使用了Object) 如果我使用工厂模式,并为每个版本的Office都有一个实现,它会工作吗 例如: Factory->ABaseOffice GetImplementation(string office_version) 返回由Office2000和OfficeXP实
CreateObject()
,我可以在Visual Basic中实现这一点?
问题是我无法看到前面的函数,必须在文档之间来回切换才能完成(由于使用了Object
)
如果我使用工厂模式,并为每个版本的Office都有一个实现,它会工作吗
例如:
Factory->ABaseOffice GetImplementation(string office_version)
返回由Office2000
和OfficeXP
实现的ABaseOffice
的实例
这样,如果一个新的Office版本出现,我只需要为它编写特定的代码,而不必担心以前的版本或依赖第三方软件
我不想走这条路。是的-理论上这是可行的。。。问题是您肯定不能在同一个项目中引用互操作DLL的不同版本。。。因此,对于
ABaseOffice
接口的实现,您仍然必须使用后期绑定方法
更新-根据评论:
理论上,所描述的选项(请参阅)将允许添加这些引用。。。不这样做的几个原因:
- 这是两个以上版本的互操作DLL
- DLL名称与IIRC相同(这造成了一个本文中未解决的问题!)
- 结果真的很难理解/维护/调试