BTDB.EventStoreLayer.ObjectTypeDescriptor.DynamicObject.DynamicDictionaryMetaObject.BindSetMember C# (CSharp) Метод

BindSetMember() публичный Метод

public BindSetMember ( SetMemberBinder binder, DynamicMetaObject value ) : DynamicMetaObject
binder System.Dynamic.SetMemberBinder
value System.Dynamic.DynamicMetaObject
Результат System.Dynamic.DynamicMetaObject
                public override DynamicMetaObject BindSetMember(SetMemberBinder binder, DynamicMetaObject value)
                {
                    var descriptor = (Value as DynamicObject)._ownerDescriptor;
                    var idx = descriptor._fields.FindIndex(p => p.Key == binder.Name);
                    return new DynamicMetaObject(Expression.Call(Expression.Convert(Expression, LimitType),
                        typeof(DynamicObject).GetMethod("SetFieldByIdx"),
                        Expression.Constant(idx),
                        Expression.Constant(binder.Name),
                        Expression.Constant(descriptor),
                        Expression.Convert(value.Expression, typeof(object))),
                        BindingRestrictions.GetTypeRestriction(Expression, LimitType));
                }
ObjectTypeDescriptor.DynamicObject.DynamicDictionaryMetaObject