public object GetValue(object instance, PropertyInfo info) { var identity = new PropertyIdentity(instance.GetType(), info.Name); var getter = CompiledPropertyInfo.GetGetter(identity); return(getter(instance)); }
public void SetValue(object instance, object value, PropertyInfo info) { var identity = new PropertyIdentity(instance.GetType(), info.Name); var setter = CompiledPropertyInfo.GetSetter(identity); setter(instance, value); }
private TypeCreator Create(Type item) { if (item.IsValueType) { var body = Expression.Convert(Expression.New(item), objectType); return(Expression.Lambda <TypeCreator>(body).CompileSys()); } return(CompiledPropertyInfo.GetCreator(item)); }