Beispiel #1
0
            public override bool TryGetMember(GetMemberBinder binder, out object result)
            {
                var accessor = new ReflectAccessor <T>(target, binder.Name);

                result = accessor.GetValue();
                return(true);
            }
Beispiel #2
0
            public override bool TrySetMember(SetMemberBinder binder, object value)
            {
                var accessor = new ReflectAccessor <T>(target, binder.Name);

                accessor.SetValue(value);
                return(true);
            }
Beispiel #3
0
            protected override System.Linq.Expressions.Expression VisitMember(MemberExpression node)
            {
                if (node.Expression == param && !Members.ContainsKey(node.Member.Name))
                {
                    var accessor = new ReflectAccessor <T>(target, node.Member.Name);
                    Members.Add(node.Member.Name, accessor.GetValue());
                }

                return(base.VisitMember(node));
            }