/// <summary> /// 获取数据data的字段值 /// <para>如果数据data实现接口IDataRowReader,则返回Item[name]</para> /// </summary> /// <param name="field"></param> /// <param name="data">要获取字段值的数据</param> /// <returns></returns> public static object GetModelFieldValue(this IDataFieldModel field, object data) { if (data is IDataRowReader) { IDataRowReader r = data as IDataRowReader; return(r[field.Name]); } PropertyDescriptor pd = DataModelHelper.GetExtendProerty_PropertyDescription(field.InnerExtend); if (pd != null) { return(pd.GetValue(data)); } throw new ObjectIsNullException(LocalResource.FieldPropertyDescriptor); }
/// <summary> /// 设置数据data的字段值为fieldvalue /// <para>如果data实现接口IDataRowSetter,则调用IDataRowSetter.SetFieldValue</para> /// </summary> /// <param name="field"></param> /// <param name="data">要设置值的数据</param> /// <param name="fieldvalue">要设置为的字段值</param> public static void SetModelFieldValue(this IDataFieldModel field, object data, object fieldvalue) { if (data is IDataRowSetter) { IDataRowSetter s = data as IDataRowSetter; s.SetFieldValue(field.Name, fieldvalue); return; } PropertyDescriptor pd = DataModelHelper.GetExtendProerty_PropertyDescription(field.InnerExtend); if (pd != null) { pd.SetValue(data, fieldvalue); } else { throw new ObjectIsNullException(LocalResource.FieldPropertyDescriptor); } }