Domanda

Esiste un modo manuale per chiamare un oggetto COM nel GAC in .NET, senza aggiungerlo come riferimento?

Il motivo per cui lo chiedo è che so solo come programmare in C # e voglio chiamare un oggetto COM .NET e verifica che le sue chiamate CMO siano visibili, ma ovviamente non puoi aggiungere un oggetto COM .NET a un .NET di montaggio! Come devi fare riferimento, quindi mi chiedevo come puoi chiamarlo se è registrato nel GAC manualmente tramite il codice c #?

È stato utile?

Soluzione

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);

In .Net 4 qualcosa del genere

Type myType = Type.GetTypeFromProgID("IMyLib.MyClass");
dynamic obj = Activator.CreateInstance(myType);
obj.MyMethod("Hello", 3);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top