Wie erhält man den Typ des COM-Objekts?
Bin ich verweisen auf eine COM-Bibliothek, die in Visual Studio, so dass es erzeugt automatisch die zugehörigen Interop-assembly für mich. Ich würde gerne eine GetType()
auf diese com-Objekte, aber Sie kehren immer wieder zurück System.__ComObject
. Abfragen für die Schnittstelle funktioniert aber:
bool isOfType = someComeObject is ISomeComObject; //this works
Aber was ich wirklich wollen, ist dies wieder der tatsächliche Typ des com-Objekts:
Type type = someComeObject.GetType(); //returns System.__ComObject :-(
Weiß jemand, wie das zu tun, was ich tun will?
InformationsquelleAutor der Frage | 2009-09-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verweis hinzufügen, um
Microsoft.VisualBasic.dll
und dann:MSDN-Referenz hier.
InformationsquelleAutor der Antwort Darin Dimitrov
Haben Sie im Grunde herausgefunden. GetType() auf ein COM-Objekt wird Ihnen System.__ComObject, und Sie haben, um zu versuchen, um ihn zu wirken, um etwas anderes zu sehen, was das Objekt wirklich ist.
InformationsquelleAutor der Antwort catfood
Die akzeptierte Antwort von Darin verlangt eine Abhängigkeit zu
Microsoft.VisualBasic.dll
. Wenn Sie nicht wollen, zu haben, Sie können mit diesem einfachen Helfer-Klasse:InformationsquelleAutor der Antwort Dirk Vollmar
Stolperte ich über diese Frage vor ein paar Tagen, während ich war auf der Suche nach den vollständigen Typnamen des
System.__ComObject
Objekt. Ich landete immer der name des Typs mit Darin die Lösung und dann die Schleife durch alle Klassen in allen Baugruppen, test match:Nicht die Schnellste und eleganteste Lösung, aber es funktionierte.
InformationsquelleAutor der Antwort pwhty