使用动态对象 (Visual Basic)
动态对象提供不同于 Object 类型的另一种方法,在运行时后期绑定到对象。 动态对象通过使用 System.Dynamic 命名空间中定义的动态接口在运行时公开成员,例如属性和方法。 可以使用 System.Dynamic 命名空间中的类来创建对象,用于处理与静态类型或格式不匹配的数据结构。 还可以使用采用动态语言(如 IronPython 和 IronRuby)定义的动态对象。 有关演示如何创建动态对象或使用采用动态语言定义的动态对象的示例,请参见演练:创建和使用动态对象(C# 和 Visual Basic)、DynamicObject 或 ExpandoObject。
Visual Basic 通过使用 IDynamicMetaObjectProvider 接口绑定到动态语言运行时和动态语言(如 IronPython 和 IronRuby)中的对象。 实现 IDynamicMetaObjectProvider 接口的类的示例有 DynamicObject 和 ExpandoObject 类。
如果对实现了 IDynamicMetaObjectProvider 接口的对象执行后期绑定调用,则 Visual Basic 会使用该接口绑定到该动态对象。 如果对未实现 IDynamicMetaObjectProvider 接口的对象进行后期绑定调用,或者对 IDynamicMetaObjectProvider 接口的调用失败,则 Visual Basic 会使用 Visual Basic 运行时的后期绑定功能绑定到该对象。