public TypeConverterProvider Add <TTargetType>(IArrayTypeConverter <TTargetType> typeConverter) { if (typeConverters.ContainsKey(typeConverter.TargetType)) { throw new CsvTypeConverterAlreadyRegisteredException($"Duplicate TypeConverter registration for Type {typeConverter.TargetType}"); } typeConverters[typeConverter.TargetType] = typeConverter; return(this); }
protected CsvCollectionPropertyMapping <TEntity, TProperty> MapProperty <TProperty>(RangeDefinition range, Expression <Func <TEntity, TProperty> > property, IArrayTypeConverter <TProperty> typeConverter) { var propertyMapping = new CsvCollectionPropertyMapping <TEntity, TProperty>(property, typeConverter); AddPropertyMapping(range, propertyMapping); return(propertyMapping); }
public CsvCollectionPropertyMapping(Expression <Func <TEntity, TProperty> > property, IArrayTypeConverter <TProperty> typeConverter) { propertyConverter = typeConverter; propertyName = ReflectionUtils.GetPropertyNameFromExpression(property); propertySetter = ReflectionUtils.CreateSetter <TEntity, TProperty>(property); }