public override bool TryGetMember(GetMemberBinder binder, out object result) { var accessor = new ReflectAccessor <T>(target, binder.Name); result = accessor.GetValue(); return(true); }
public override bool TrySetMember(SetMemberBinder binder, object value) { var accessor = new ReflectAccessor <T>(target, binder.Name); accessor.SetValue(value); return(true); }
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)); }