Arbeiten mit dynamischen Objekten (Visual Basic)

Dynamische Objekte bieten neben dem Object-Typ eine andere Möglichkeit für die späte Bindung an ein Objekt zur Laufzeit. Ein dynamisches Objekt macht zur Laufzeit Member, z. B. Eigenschaften und Methoden, mithilfe dynamischer Schnittstellen verfügbar, die im System.Dynamic-Namespace definiert sind. Sie können die Klassen im System.Dynamic-Namespace verwenden, um Objekte zu erstellen, die Datenstrukturen unterstützen, die keinem statischen Typ oder Format entsprechen. Sie können auch die dynamischen Objekte verwenden, die in dynamischen Sprachen, z. B. IronPython und IronRuby, definiert sind. Beispiele, die veranschaulichen, wie dynamische Objekte erstellt werden oder wie ein dynamisches in einer dynamischen Sprache definiertes Objekt verwendet wird, finden Sie unter Exemplarische Vorgehensweise: Erstellen und Verwenden von dynamischen Objekten (C# und Visual Basic), DynamicObject oder ExpandoObject.

In Visual Basic werden Bindungen an Objekte aus der dynamischen Sprachlaufzeit und dynamischen Sprachen wie IronPython und IronRuby mithilfe der IDynamicMetaObjectProvider-Schnittstelle erstellt. Beispiele für Klassen, die die Schnittstelle IDynamicMetaObjectProvider implementieren, sind DynamicObject und ExpandoObject.

Bei einem spät gebundenen Aufruf eines Objekts, das die IDynamicMetaObjectProvider-Schnittstelle implementiert, erstellt Visual Basic unter Verwendung dieser Schnittstelle eine Bindung an das dynamische Objekt. Bei einem spät gebundenen Aufruf eines Objekts, das die IDynamicMetaObjectProvider-Schnittstelle nicht implementiert, oder bei einem fehlgeschlagenen Aufruf der IDynamicMetaObjectProvider-Schnittstelle erstellt Visual Basic die Bindung an das Objekt unter Verwendung der Funktionen für späte Bindung der Visual Basic-Laufzeit.

Siehe auch

Referenz

DynamicObject

ExpandoObject

Konzepte

Frühes und spätes Binden (Visual Basic)

Weitere Ressourcen

Exemplarische Vorgehensweise: Erstellen und Verwenden von dynamischen Objekten (C# und Visual Basic)