基于COM组件版本从C#代码调用正确的COM组件方法

时间:2011-03-14 09:47:23

标签: .net com-interop

使用.NET 2.0的My C#程序是针对第三方COM组件的早期版本编码的,并使用以下签名调用组件方法:

return_type COM_METHOD(type1 param1,type2 param2)。

已发布较新版本的COM组件,其界面略有变化,因此上述方法的签名现已成为:

return_type COM_METHOD(type1 param1,type2 param2,type3 param3)

有一种简单的方法可以以编程方式确定安装了哪个版本的组件(比如通过阅读注册表)。我需要支持这两个版本,需要根据已安装的版本调用正确的方法。如果我根据安装的版本执行一个条件调用,如下面的代码,程序(显然)无法编译 -

if(version == 1) {
    COM_METHOD(param1, param2);
} else if(version == 2) {
    COM_METHOD(param1, param2, param3);
}

如何在运行时做出此决定并调用正确的方法?

0 个答案:

没有答案