Создание экземпляра класса взаимодействия COM

Я пытаюсь открыть CorelDRAW из моей программы, используя C #. До сих пор я мог сделать это, ссылаясь на соответствующую библиотеку com и вызывая

CorelDRAW.Application draw = new CorelDRAW.Application();
draw.Visible = true; 

Однако я бы хотел, чтобы моя программа работала с любой версией CorelDRAW, которая поддерживает взаимодействие. Я пытаюсь использовать отражение для загрузки библиотеки взаимодействия во время выполнения, где конкретная DLL может быть выбрана для правильной версии. Посмотрев вокруг, я попробовал следующее.

string path = "Interop.CorelDRAW.dll";
Assembly u = Assembly.LoadFile(path);
Type testType = u.GetType("CorelDRAW.Application");

if (testType != null)
{
    object draw = u.CreateInstance("CorelDRAW.Application");

    FieldInfo fi = testType.GetField("Visible");
    fi.SetValue(draw, true);
}

Программа не работает вu.CreateInstance... не удается, потому чтоCorelDRAW.Application это интерфейс, а не класс. Я также пытался заменитьCorelDRAW.Application сCorelDRAW.ApplicationClass как это доступно, когда я просматриваю Interop.CorelDRAW как ресурс, но потомu.getType... выходит из строя.

Как я могу заставить это работать? Спасибо'

Ответы на вопрос(2)

Ваш ответ на вопрос