Catel.Data.DynamicModelBaseMetaObject.BindGetMember C# (CSharp) Метод

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

Performs the binding of the dynamic get member operation.
public BindGetMember ( GetMemberBinder binder ) : DynamicMetaObject
binder System.Dynamic.GetMemberBinder An instance of the that represents the details of the dynamic operation.
Результат System.Dynamic.DynamicMetaObject
        public override DynamicMetaObject BindGetMember(GetMemberBinder binder)
        {
            var propertyName = binder.Name;
            var propertyType = binder.ReturnType;

            RegisterPropertyIfNotYetRegistered(propertyName, propertyType);

            var parameters = new Expression[]
            {
                Expression.Constant(propertyName)
            };

            var self = Expression.Convert(Expression, LimitType);
            var methodCall = Expression.Call(self, _getValueFastMethodInfo, parameters);
            var restrictions = BindingRestrictions.GetTypeRestriction(Expression, LimitType);

            var getValue = new DynamicMetaObject(methodCall, restrictions);
            return getValue;
        }