<PackageReference Include="NETStandard.Library" Version="2.0.3" />

System.Dynamic.DynamicMetaObject

public class DynamicMetaObject
namespace System.Dynamic { public class DynamicMetaObject { public static readonly DynamicMetaObject[] EmptyMetaObjects; public Expression Expression { get; } public bool HasValue { get; } public Type LimitType { get; } public BindingRestrictions Restrictions { get; } public Type RuntimeType { get; } public object Value { get; } public DynamicMetaObject(Expression expression, BindingRestrictions restrictions); public DynamicMetaObject(Expression expression, BindingRestrictions restrictions, object value); public virtual DynamicMetaObject BindBinaryOperation(BinaryOperationBinder binder, DynamicMetaObject arg); public virtual DynamicMetaObject BindConvert(ConvertBinder binder); public virtual DynamicMetaObject BindCreateInstance(CreateInstanceBinder binder, DynamicMetaObject[] args); public virtual DynamicMetaObject BindDeleteIndex(DeleteIndexBinder binder, DynamicMetaObject[] indexes); public virtual DynamicMetaObject BindDeleteMember(DeleteMemberBinder binder); public virtual DynamicMetaObject BindGetIndex(GetIndexBinder binder, DynamicMetaObject[] indexes); public virtual DynamicMetaObject BindGetMember(GetMemberBinder binder); public virtual DynamicMetaObject BindInvoke(InvokeBinder binder, DynamicMetaObject[] args); public virtual DynamicMetaObject BindInvokeMember(InvokeMemberBinder binder, DynamicMetaObject[] args); public virtual DynamicMetaObject BindSetIndex(SetIndexBinder binder, DynamicMetaObject[] indexes, DynamicMetaObject value); public virtual DynamicMetaObject BindSetMember(SetMemberBinder binder, DynamicMetaObject value); public virtual DynamicMetaObject BindUnaryOperation(UnaryOperationBinder binder); public static DynamicMetaObject Create(object value, Expression expression); public virtual IEnumerable<string> GetDynamicMemberNames(); } }