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

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

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

Ответ 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);