Динамически создавать экземпляр класса COM в .NET - PullRequest
2 голосов
/ 26 июня 2009

Я могу загрузить библиотеки DLL COM, зарегистрированные на моем компьютере, следующим образом:

Type type = Type.GetTypeFromProgID("MYCOMDLL.ClassName");
object boxed = Activator.CreateInstance(type);

Затем я могу поэкспериментировать с методами вызова и т. Д.

Как я могу добиться этого с помощью DLL-файла, который не зарегистрирован на моем компьютере?

Что-то вроде этого волшебного кода:

Type type = Type.GetTypeFromFile("MyFile.dll", "MYCOMDLL.ClassName");
object boxed = Activator.CreateInstance(type);

Возможно ли это?

Ответы [ 3 ]

1 голос
/ 26 июня 2009

Вы должны либо (а) сначала зарегистрировать DLL традиционным способом, либо (б) покопаться в файлах манифеста COM без регистрации.

Это может помочь с (b) - http://msdn.microsoft.com/en-us/library/ms973913.aspx

0 голосов
/ 26 июня 2009

Прочитайте аналогичный вопрос здесь и посмотрите мои комментарии и комментарии автора.

0 голосов
/ 26 июня 2009

Я нашел эту ссылку, которая может иметь то, что вы хотите:

Динамический вызов неуправляемой dll из .NET (C #)

Похоже, вы можете обернуть вокруг него вспомогательный класс.

...