使用具有相同方法/事件/所有但位于.NET中不同命名空间的多个COM对象

时间:2015-03-19 11:33:30

标签: c# .net com com-interop

我在两个不同的地方有一对COM对象,它们遵循完全相同的界面(命名空间除外),因此nsA.ICOMObject看起来与nsB.ICOMObject相同,但nsA除外在整个地方被nsB取代。

我将使用哪些对象是在应用程序启动时决定的,并且可以轻松保存。我遇到的问题是如何在不重复的情况下完成所有这些工作。我知道对于方法调用,我可以使用dynamic对象来完成,但这仍然让我遇到事件处理问题。

目前我会这样做:

if (useObjectA)
{
    theCOMObject.eventToHandle += new nsA.eventHandler(method);
}
else
{
    theCOMObject.eventToHandle += new nsB.eventHandler(method);
}

遍布整个地方,只是改变名称空间,这看起来有点傻。

我是对的,有一种更简单的方法可以做到这一点,它是什么?这些对象上有数百个方法/属性/事件,因此创建一个可以消除所有痛苦的对象将是非常困难的工作。

非常感谢

加雷

0 个答案:

没有答案