public DefaultPropertyValueAccessor(T instance, IPropertyValueGetter getter, IPropertyValueSetter setter)
 {
     _getter   = getter is not null ? getter.Invoke : DefaultPropertyValueGetter.DefaultFunc;
     _setter   = setter is not null ? setter.Invoke : DefaultPropertyValueSetter.DefaultFunc;
     _type     = typeof(T);
     _instance = instance;
 }
Ejemplo n.º 2
0
 public static IPropertyValueAccessor GetValueAccessor <T>(this T that, IPropertyValueGetter getter, IPropertyValueSetter setter)
 => A.GetValueAccessor(that, getter, setter);
Ejemplo n.º 3
0
 public static IPropertyValueAccessor GetValueAccessor <T>(T that, IPropertyValueGetter getter, IPropertyValueSetter setter)
 {
     return(new DefaultPropertyValueAccessor <T>(that, getter, setter));
 }
Ejemplo n.º 4
0
 public static IPropertyValueAccessor GetValueAccessor(this object that, Type type, IPropertyValueGetter getter, IPropertyValueSetter setter)
 => A.GetValueAccessor(that, type, getter, setter);
Ejemplo n.º 5
0
 public static IPropertyValueAccessor GetValueAccessor(object that, Type type, IPropertyValueGetter getter, IPropertyValueSetter setter)
 {
     return(new DefaultPropertyValueAccessor(type, that, getter, setter));
 }
Ejemplo n.º 6
0
 /// <summary>
 /// Try to set a value to the specified property name in the that.<br />
 /// 尝试向对象中的指定属性名称设置值。
 /// </summary>
 /// <param name="that"></param>
 /// <param name="propertyName"></param>
 /// <param name="bindingAttr"></param>
 /// <param name="value"></param>
 /// <param name="propertyValueSetter"></param>
 public static bool TrySetPropertyValue <T, TVal>(T that, string propertyName, BindingFlags bindingAttr, TVal value, IPropertyValueSetter propertyValueSetter)
 {
     return(Try.Invoke(() => propertyValueSetter
                       .SafeRefValue(DefaultPropertyValueSetter.Instance)
                       .Invoke(typeof(T), that, propertyName, bindingAttr, value))
            .IsSuccess);
 }
Ejemplo n.º 7
0
 /// <summary>
 /// Try to set a value to the specified property name in the that.<br />
 /// 尝试向对象中的指定属性名称设置值。
 /// </summary>
 /// <param name="that"></param>
 /// <param name="propertyName"></param>
 /// <param name="bindingAttr"></param>
 /// <param name="value"></param>
 /// <param name="propertyValueSetter"></param>
 public static bool TrySetPropertyValue(object that, string propertyName, BindingFlags bindingAttr, object value, IPropertyValueSetter propertyValueSetter)
 {
     return(Try.Invoke(() => propertyValueSetter
                       .SafeRefValue(DefaultPropertyValueSetter.Instance)
                       .Invoke(that.GetType(), that, propertyName, bindingAttr, value))
            .IsSuccess);
 }
Ejemplo n.º 8
0
 /// <summary>
 /// Set a value to the specified property name in the that.<br />
 /// 向对象中的指定属性名称设置值。
 /// </summary>
 /// <param name="that"></param>
 /// <param name="propertyName"></param>
 /// <param name="bindingAttr"></param>
 /// <param name="value"></param>
 /// <param name="propertyValueSetter"></param>
 public static void SetPropertyValue <T, TVal>(T that, string propertyName, BindingFlags bindingAttr, TVal value, IPropertyValueSetter propertyValueSetter)
 => propertyValueSetter.SafeRefValue(DefaultPropertyValueSetter.Instance).Invoke(typeof(T), that, propertyName, bindingAttr, value);
Ejemplo n.º 9
0
 /// <summary>
 /// Set a value to the specified property name in the that.<br />
 /// 向对象中的指定属性名称设置值。
 /// </summary>
 /// <param name="that"></param>
 /// <param name="propertyName"></param>
 /// <param name="bindingAttr"></param>
 /// <param name="value"></param>
 /// <param name="propertyValueSetter"></param>
 public static void SetPropertyValue(object that, string propertyName, BindingFlags bindingAttr, object value, IPropertyValueSetter propertyValueSetter)
 => propertyValueSetter.SafeRefValue(DefaultPropertyValueSetter.Instance).Invoke(that.GetType(), that, propertyName, bindingAttr, value);