Создайте несколько экземпляров одного и того же OCX - PullRequest
1 голос
/ 28 января 2011

Мне нужно загрузить пару библиотек 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 голосов
/ 18 марта 2011

Проблема была решена путем изменения OCX, чтобы не использовать глобальные переменные. Спасибо Ганс Пассант.

...