public void AutoMapProps(int cmd_bit) { foreach (var pair in _dynaRecord.FieldDict) { IDynaField field = pair.Value; if ((field.GetOutMask() & cmd_bit) > 0) { MapToCurrent(pair.Key, pair.Key); } } }
public override bool TryGetMember(GetMemberBinder binder, out object result) { result = null; try { IDynaField field = _record.FieldDict[binder.Name]; result = field.GetData(_reader); } catch (Exception) { } return(true); }
public void CreateField(FldDef fldDef) { IDynaField field = null; switch (fldDef.fld_type) { case 167: //varchar field = new StringField(fldDef.fld_name, DbType.String, fldDef.fld_size, fldDef.inp_mask, fldDef.out_mask); break; case 175: //char[]->varchar field = new StringField(fldDef.fld_name, DbType.StringFixedLength, fldDef.fld_size, fldDef.inp_mask, fldDef.out_mask); break; case 35: //text field = new TextField(fldDef.fld_name, DbType.AnsiString, fldDef.fld_size, fldDef.inp_mask, fldDef.out_mask); break; case 48: //byte field = new ByteField(fldDef.fld_name, DbType.Byte, fldDef.fld_size, fldDef.inp_mask, fldDef.out_mask); break; case 52: //int16 field = new Int16Field(fldDef.fld_name, DbType.Int16, fldDef.fld_size, fldDef.inp_mask, fldDef.out_mask); break; case 56: //int32 field = new Int32Field(fldDef.fld_name, DbType.Int32, fldDef.fld_size, fldDef.inp_mask, fldDef.out_mask); break; case 40: //date field = new DateField(fldDef.fld_name, DbType.Date, fldDef.fld_size, fldDef.inp_mask, fldDef.out_mask); break; case 61: //datetime field = new DateField(fldDef.fld_name, DbType.DateTime, fldDef.fld_size, fldDef.inp_mask, fldDef.out_mask); break; case 62: //double field = new DoubleField(fldDef.fld_name, DbType.Double, fldDef.fld_size, fldDef.inp_mask, fldDef.out_mask); break; } if (field != null) { field.Value = fldDef.def_val; FieldDict.Add(fldDef.fld_name, field); } }
public void MapToCurrent(string fieldName, string propName) { PropertyInfo info = _type.GetProperty(propName); if (info == null || !_dynaRecord.FieldDict.ContainsKey(fieldName)) { return; } IDynaField field = _dynaRecord.FieldDict[fieldName]; if (field.GetPropType() != info.PropertyType) { return; } propMaps.Add(new PropMap(field) { GetMethod = info.GetGetMethod(), SetMethod = info.GetSetMethod() }); }
public PropMap(IDynaField field) { dynaField = field; parameters = new object[1]; }