public void AddField(string name, int col) { if (parsers.ContainsKey(name)) { throw new FieldException("allready constains a field with that name"); } if (!Array.Exists(fi, f => f.Name == name)) { throw new FieldException($"No such field found in {type.Name}"); } CsvBasicInfo bInfo = new CsvBasicInfo(type, name, col, separator); FieldInfo fInfo = type.GetField(name); Type fieldType = fInfo.FieldType; // prop Type FieldWrapper fw; IReflection reflect; if (ReflectorsCache.cache.TryGetValue(fieldType, out reflect)) { fw = new FieldWrapper((FieldReflect)reflect, bInfo); parsers.Add(name, fw); } else { FieldReflect fr = new FieldReflect(fieldType); ReflectorsCache.cache.Add(fieldType, fr); fw = new FieldWrapper(fr, bInfo); parsers.Add(name, fw); } }
public FieldWrapper(FieldReflect fReflect, CsvBasicInfo csvInfo) { this.fReflect = fReflect; this.csvInfo = csvInfo; }