我在两个不同的地方有一对COM对象,它们遵循完全相同的界面(命名空间除外),因此nsA.ICOMObject
看起来与nsB.ICOMObject
相同,但nsA
除外在整个地方被nsB
取代。
我将使用哪些对象是在应用程序启动时决定的,并且可以轻松保存。我遇到的问题是如何在不重复的情况下完成所有这些工作。我知道对于方法调用,我可以使用dynamic
对象来完成,但这仍然让我遇到事件处理问题。
目前我会这样做:
if (useObjectA)
{
theCOMObject.eventToHandle += new nsA.eventHandler(method);
}
else
{
theCOMObject.eventToHandle += new nsB.eventHandler(method);
}
遍布整个地方,只是改变名称空间,这看起来有点傻。
我是对的,有一种更简单的方法可以做到这一点,它是什么?这些对象上有数百个方法/属性/事件,因此创建一个可以消除所有痛苦的对象将是非常困难的工作。
非常感谢
加雷