IDynamicMetaObjectProvider

IDynamicMetaObjectProvider

System.Dynamic.ExpandoObjectSystem.Dynamic.DynamicObjectdynamic有什么区别?

您在哪种情况下使用这些类型?

最佳答案

dynamic关键字用于声明应晚绑定(bind)的变量。
如果要对任何实类型或想象中的类型使用后期绑定(bind),请使用dynamic关键字,然后由编译器执行其余操作。

当您使用dynamic关键字与普通实例进行交互时,DLR对实例的普通方法执行后期绑定(bind)调用。

IDynamicMetaObjectProvider interface允许类控制其后期绑定(bind)行为。
当您使用dynamic关键字与IDynamicMetaObjectProvider实现进行交互时,DLR会调用IDynamicMetaObjectProvider方法,并且对象本身将决定要执行的操作。
ExpandoObjectDynamicObject类是IDynamicMetaObjectProvider的实现。
ExpandoObject是一个简单的类,它允许您将成员添加到实例并使用dynamic盟友。DynamicObject是一个更高级的实现,可以继承它以轻松提供自定义行为。

10-04 18:51