public IEnumerable <T> MapTo <T>(Document tabularData, MappingDefinition map) { var convertedData = new List <T>(); foreach (var row in tabularData.Rows) { var type = typeof(T); var data = Activator.CreateInstance <T>(); foreach (var fieldMap in map.Fields) { var memberInfo = type.GetMember(fieldMap.TargetMemberName, fieldMap.MemberType, BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public).First(); type.InvokeMember(fieldMap.TargetMemberName, GetBindingFlags(fieldMap), Type.DefaultBinder, data, new[] { GetValueFromRow <T>(tabularData, row, fieldMap, memberInfo) }); } convertedData.Add(data); } return(convertedData); }
public static IEnumerable <T> ConvertTo <T>(this Document doc, MappingDefinition map) { return(Resolver.Activate <ITabularMapper>().MapTo <T>(doc, map)); }