Ручной способ вызова COM-объекта через.NET

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

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

1 ответ

Решение
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);
Другие вопросы по тегам