Modo manuale per chiamare l'oggetto COM tramite .NET
-
06-07-2019 - |
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 #?
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