In Python, quando voglio usare questo oggetto COM, tutto ciò che faccio è win32com.client.Dispatch("Myapp.Thing.1")
e mi dà un oggetto che posso chiamare metodi e così via .Istanziare un oggetto COM legacy in C# in modo dinamico (usando il suo ID in una stringa)
Voglio farlo in C# e, sconvolgente, non riesco a capire come. Io faccio non voglio usare uno di quei wrapper COM generati automaticamente, per ragioni per cui non riesco a entrare. Ho bisogno di fare il binding in ritardo, la COM dinamica di un tempo.
Ho provato a farlo, ma ottengo un'eccezione Null Ref per la chiamata di richiamo.
Type t = Type.GetTypeFromProgID("Myapp.Thing.1")
o = Activator.CreateInstance(t)
t.GetMethod("xyz").Invoke(o, args)
Qualsiasi codice di esempio che è in grado di caricare un oggetto COM suo nome e utilizzarlo in qualche modo di base sarebbe ideale.
Jason prima di tutto è possibile aggiungere alcuni controlli nel codice e identificare se t o o come null? se è così e se ci dici, allora possiamo iniziare a guardarlo. –
Ho appena effettuato questi controlli, né t né o sta tornando a zero. Grazie mille per il vostro aiuto! – William
e sei sicuro che il metodo xyz esiste su quell'oggetto? –