public static TType GetObject <TType>(string row)
        {
            var rowData = RowParser.Parse(row);



            var resObj = Activator.CreateInstance <TType>();

            foreach (var prop in typeof(TType).GetProperties())
            {
                var mkField = MemberNameHelper.PascalToTrain(prop.Name);
                if (!rowData.ContainsKey(mkField))
                {
                    continue;
                }

                var fieldVal = rowData[mkField];

                var propType = prop.PropertyType;

                var propVal = Convert.ChangeType(fieldVal, propType);
                prop.SetValue(resObj, propVal);
            }
            return(resObj);
        }
        public static IEnumerable <string> GetMkPropList <TType>()
        {
            var lst = new List <string>();

            foreach (var prop in typeof(TType).GetProperties())
            {
                lst.Add(MemberNameHelper.PascalToTrain(prop.Name));
            }
            ;
            return(lst);
        }
        private static dynamic createDynamicObject(Dictionary <string, string> rowData)
        {
            var res = new ExpandoObject() as IDictionary <string, Object>;


            foreach (var field in rowData.Keys)
            {
                res.Add(MemberNameHelper.TrainToPascal(field), rowData[field]);
            }

            return(res);
        }