public static void ValuesFromDictionary(this Object me, Dictionary <string, object> input) { if (me == null) { throw new NullReferenceException("Figlotech FromDictionary Extension method called on a null value, this is a natural NullReferenceException"); } var refl = me.AsReflectable(); foreach (var a in ReflectionTool.FieldsAndPropertiesOf(me.GetType())) { if (ReflectionTool.GetTypeOf(a).IsPublic&& input.ContainsKey(a.Name)) { refl[a.Name] = input[a.Name]; } } }
public static Dictionary <string, object> ValuesToDictionary(this Object me) { if (me == null) { throw new NullReferenceException("Figlotech ToDictionary Extension method called on a null value, this is a natural NullReferenceException"); } var retv = new Dictionary <string, object>(); var refl = me.AsReflectable(); foreach (var a in ReflectionTool.FieldsAndPropertiesOf(me.GetType())) { if (ReflectionTool.GetTypeOf(a).IsPublic) { retv[a.Name] = ReflectionTool.GetMemberValue(a, me); } } return(retv); }
public static void ValuesToDataRow(this Object me, DataRow dr, Tuple <List <MemberInfo>, List <DataColumn> > meta = null) { var type = me.GetType(); if (meta == null) { meta = Fi.Tech.Invoke <Tuple <List <MemberInfo>, List <DataColumn> > >( typeof(FiTechCoreExtensions), nameof(FiTechCoreExtensions.MapMeta), type, dr); } var refl = me.AsReflectable(); foreach (var data in meta.Item2) { dr[data.ColumnName] = refl[data.ColumnName]; } }