2009-10-28 11 views
10

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

Il motivo che mi chiedo è so solo come codice in C# e vuole chiamare un oggetto .NET COM e le prove che le sue chiamate OCM sono visibili, ma ovviamente non è possibile aggiungere un oggetto .NET COM a una. Assemblaggio NET! Come devi fare riferimento, quindi mi chiedevo si può chiamare se è registrato nel GAC manualmente attraverso il codice C#?

risposta

19
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 di simile

Type myType = Type.GetTypeFromProgID("IMyLib.MyClass"); 
dynamic obj = Activator.CreateInstance(myType); 
obj.MyMethod("Hello", 3); 
+0

thank u così tanto! – David

+0

La sintassi di C# 4.0 è basata su prototipi di versioni precedenti (non rilasciati?); tuttavia, non ho installato VS2010B2 per dare la sintassi corretta ... sono sicuro che lo faccia qualcun altro. –

+0

Ho modificato il post, non ho installato anche il vs 2010, ma come so questo è un modo corretto per farlo –

Problemi correlati