NewLifeX / X

Core basic components: log (file / network), configuration (XML / JSON / HTTP), cache (memory / redis), network (TCP / UDP / HTTP), RPC framework, serialization (binary / XML / JSON), APM performance tracking. 核心基础组件,日志(文件/网络)、配置(XML/Json/Http)、缓存(内存/Redis)、网络(Tcp/Udp/Http)、RPC框架、序列化(Binary/XML/Json)、APM性能追踪。
https://newlifex.com
MIT License
1.76k stars 524 forks source link

CsvDb存储第一行表头错误 #125

Closed enumer closed 1 year ago

enumer commented 1 year ago

net2.0版本下的CsvDb存储,第一行无法正确输出实体类属性名称,输出结果为:"System.Linq.Enumerable+WhereSelectArrayIterator`2[System.Reflection.PropertyInfo,System.String]" 非net2.0版本无此问题。

enumer commented 1 year ago

改一行代码可以解决这个问题 CsvDb.cs public void Write(IEnumerable models, Boolean append) 函数 第56行 if (fs.Position == 0) csv.WriteLine(pis.Select(e => e.Name));改成下面这样 if (fs.Position == 0) csv.WriteLine(pis.Select(e => e.Name as object)); net2.0无法把IEnumerable^String类型数据自动转换WriteLine函数需要的IEnumerable^Object类型的参数 这个情况会引出net2.0下很多无法预期的问题,我引用2.0版本newlife.core.dll编写测试代码,无法编译通过类似上面原始的问题代码。 直接用net2.0newlife.core源码编写测试代码,能够通过编译,但出现CsvDb文件首行错误问题。