我正在尝试使用 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");
Run Code Online (Sandbox Code Playgroud)
/* 更多,但我在第一个“地图”上设置了一个断点,它抛出了异常。我还尝试注释掉第一个“Map”并运行第二个(因为第一个包含对外部函数的调用),它具有相同的结果。*/ ....
using (var writer = new StreamWriter(localFileLocation))
using (var csv = new CsvWriter(writer))
{
csv.Configuration.RegisterClassMap<SpecimenMap>(); // this line throws exception
csv.WriteRecords(specimen);
}
Run Code Online (Sandbox Code Playgroud)
抛出异常:
System.InvalidOperationException:在表达式“{expression}”中找不到成员。
在我的研究中,我发现了这段代码,但我不知道如何解释异常。进行某种反射后的堆栈大小(第 34 行)。 https://github.com/JoshClose/CsvHelper/blob/master/src/CsvHelper/Configuration/ClassMap%601.cs