動的オブジェクトの使用 (Visual Basic)

動的オブジェクトを使用すると、Object 型とは別に、実行時にオブジェクトへの遅延バインディングを行うことができます。 動的オブジェクトは、System.Dynamic 名前空間で定義されている動的インターフェイスを使用して、プロパティやメソッドなどのメンバーを実行時に公開します。 System.Dynamic 名前空間のクラスを使用することで、静的な型や書式に一致しないデータ構造を操作するオブジェクトオブジェクトを作成できます。 また、IronPython や IronRuby などの動的言語で定義された動的オブジェクトを使用することもできます。 動的言語の作成方法の例、および動的言語で定義された動的オブジェクトの使用例については、動的オブジェクトの作成と使用のチュートリアルDynamicObject、または ExpandoObject に関するページを参照してください。

Visual Basic では、動的言語ランタイムおよび動的言語 (IronPython や IronRuby など) からオブジェクトへのバインドは、IDynamicMetaObjectProvider インターフェイスを使用して行われます。 IDynamicMetaObjectProvider インターフェイスを実装したクラスの例としては、DynamicObjectExpandoObject があります。

IDynamicMetaObjectProvider インターフェイスを実装したオブジェクトに対して遅延バインディングによる呼び出しが行われると、Visual Basic はそのインターフェイスを使用して動的オブジェクトにバインドします。 IDynamicMetaObjectProvider インターフェイスを実装していないオブジェクトに対して遅延バインディングによる呼び出しが行われた場合、または IDynamicMetaObjectProvider インターフェイスに対する呼び出しが失敗した場合は、Visual Basic は Visual Basic ランタイムの遅延バインディング機能を使用してオブジェクトにバインドします。

関連項目