创建相同OCX的多个实例

时间:2011-01-28 13:53:19

标签: .net instance ocx

我必须加载几个OCX库来访问遗留代码。 我正在使用Activator.CreateInstance创建实例:

var type = Type.GetTypeFromProgID(ProgId);
var comObject = Activator.CreateInstance(type);

不幸的是, Activator.CreateInstance 似乎每个ProgId只创建一个实例,但我需要多个具有不同配置的实例。

示例:假设我正在使用OCX,它允许设置值:

var instance1 = Create(progId);
Set(instance1, "key", "1");
var value1 = Get(instance1, "key"); // returns 1

var instance2 = Create(progId);
Set(instance2, "key", "2"); 
var value2 = Get(instance2, "key"); // returns 2

var value3 = Get(instance1, "key"); // returns 2

我需要一种方法来多次实例化一个OCX(相同的ProgId)控件,而不需要只对一个实例进行手动引用。

1 个答案:

答案 0 :(得分:0)

通过将OCX更改为不使用全局变量来解决问题。谢谢Hans Passant。