/// <summary> /// 根据属性名字设定目标实例对应的值 /// </summary> /// <param name="memberName"></param> /// <param name="value"></param> /// <param name="index"></param> public void TrySetValue(string memberName, object value, params object[] index) { if (FieldTable.TryGetValue(memberName, out FieldInfo fieldInfo)) { fieldInfo.SetValue(_instance, value); } else if (PropertyTable.TryGetValue(memberName, out PropertyInfo propertyInfo)) { propertyInfo.SetValue(_instance, value, index); } }
/// <summary> /// 根据属性名字获取目标实例对应的值 /// </summary> /// <param name="memberName"></param> /// <param name="value"></param> /// <param name="index"></param> /// <returns></returns> public bool TryGetValue(string memberName, out object value, params object[] index) { if (FieldTable.TryGetValue(memberName, out FieldInfo fieldInfo)) { value = fieldInfo.GetValue(_instance); return(true); } else if (PropertyTable.TryGetValue(memberName, out PropertyInfo propertyInfo)) { value = propertyInfo.GetValue(_instance, index); return(true); } value = null; return(false); }