Вопрос

Существует ли ручной способ вызова COM-объекта в GAC в .NET без добавления его в качестве ссылки?

Причина, по которой я спрашиваю, состоит в том, что я знаю только, как кодировать на C # и хочу вызывать COM-объект .NET и проверяет, видимы ли его вызовы CMO, но, очевидно, вы не можете добавить COM-объект .NET в .NET сборка! Как вы должны сослаться на это, так что мне было интересно, можете ли вы назвать его, если он зарегистрирован в GAC вручную через код C #?

Это было полезно?

Решение

Type myType = Type.GetTypeFromProgID("IMyLib.MyClass");
object obj = Activator.CreateInstance(myType);
object[] args = new object[2];
args[0] = "Hello";
args[1] = 3;
myType.InvokeMember("MyMethod", BindingFlags.InvokeMethod, obj, args);

В .Net 4 что-то вроде этого

Type myType = Type.GetTypeFromProgID("IMyLib.MyClass");
dynamic obj = Activator.CreateInstance(myType);
obj.MyMethod("Hello", 3);
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top