【发布时间】:2019-04-21 21:19:09
【问题描述】:
我正在尝试使用 CsvHelper 改进从对象到 csv 记录/行的手动转换过程。我创建了一个复杂的ClassMap,我想用它来将对象列表写入文件。如何将ClassMap 添加到 CsvHelper 实例的配置中进行写入?
我现在收到以下异常和消息:
public class SpecimenMap : ClassMap<Specimen>
{
public SpecimenMap()
{
Map(s =>
DataFunctions.GetSiteByName(s.SiteName).RecordNo.ToString() + "-" +
s.SpecimenNumber.ToString()).
Index(0).Name("recordNumber");
Map(s =>
s.RecordNo.ToString()).
Index(1).Name("specimenNumber");
/* 更多,但我在第一个“地图”上设置了一个断点,它会引发异常。我还尝试注释掉第一个“地图”并运行第二个(因为第一个包括对外部函数的调用),它具有相同的结果。 */ ....
using (var writer = new StreamWriter(localFileLocation))
using (var csv = new CsvWriter(writer))
{
csv.Configuration.RegisterClassMap<SpecimenMap>(); // this line throws exception
csv.WriteRecords(specimen);
}
抛出异常:
System.InvalidOperationException:在表达式中找不到成员 '{表达式}'。
在我的研究中,我发现了这段代码,但我不知道如何解释异常。进行某种反射后的堆栈大小(第 34 行)。 https://github.com/JoshClose/CsvHelper/blob/master/src/CsvHelper/Configuration/ClassMap%601.cs
【问题讨论】:
标签: csvhelper