Sto pianificando di utilizzare vari oggetti esposti come oggetti COM. Per renderli più facili da usare, mi piacerebbe racchiuderli come oggetti C #. Qual è l’approccio migliore per questo?
Se la libreria è già registrata, è ansible eseguire le seguenti operazioni per fare in modo che Visual Studio generi un assembly di interoperabilità:
Questa sarà una class o un set di classi C # che racchiudono tutta la roba dell’interfaccia COM con una normale class C #. Quindi lo usi come qualsiasi altra libreria C #. Se l’importazione del riferimento ha funzionato bene, puoi esplorarla come qualsiasi altro riferimento e i metodi / structs / classs / constants dovrebbero apparire in quel namespace e intellisense.
Questo ti farà iniziare, almeno. Se questo è distribuito in un ambiente aziendale o in un ambiente che puoi controllare, questo potrebbe essere tutto ciò di cui hai bisogno.
C’è un buon articolo da MSDN su questo, che spiega il codice gestito e non gestito, e ti guida passo dopo passo come farlo. http://msdn.microsoft.com/en-us/library/ms973800.aspx#
Divertiti!
È ansible (inizialmente) solo importare il riferimento. Se hai bisogno di più controllo (o ottieni errori dall’importazione di VS) puoi usare tlbimp nel windows sdk. Questo creerà gli assembly di interoperabilità. Puoi ottenere le definizioni di class dai metadati.
EDIT: Questo è in realtà molto più complicato se si vuole lavorare con 64 bit