【发布时间】:2014-04-30 18:21:00
【问题描述】:
我一直遇到这个错误:
在 CsvHelper.dll 中发生“CsvHelper.CsvReaderException”类型的未处理异常
附加信息:没有为类型“RPS_String_Parse.Program+FormattedRow”映射任何属性。
但我相信我正确地关注了the documentation。参考“入门”部分后,我实现了这个:
using (var sr = new StreamReader(filePath))
{
var csv = new CsvReader(sr);
var records = csv.GetRecords<FormattedRow>();
foreach (var record in records)
{
Console.WriteLine(record.Address1);
}
Console.ReadLine();
}
和我的班级:
public class FormattedRow
{
public string IDOrderAlpha;
public string IDOrder;
public string AddressCompany;
public string Address1;
public string Address2;
public string AddressCity;
public string AddressState;
public string AddressZip;
public string AddressCountry;
public string ShipMethod;
public string ContactEmail;
public string ContactName;
public string ServiceRep;
public string CustomerPuchaseOrder;
}
我觉得这应该可行,因为文档指出:
自动映射
如果您不提供映射文件,则自动映射将是 用过的。自动映射将按顺序映射您的类中的属性 它们出现在其中。如果属性是自定义类,它会递归映射 该类中的属性按它们出现的顺序排列。如果 自动映射器命中循环引用,它将停止下降 参考分支
我错过了什么?
【问题讨论】:
-
我遇到了同样的错误,但我有 {get;放;)。您是否需要采取其他措施来解决问题?
-
只是将其设为对我有用的财产,但它必须是公共财产。如果所有属性都标记为内部或私有,则会导致相同的错误消息。
-
根据我的经验,AutoMapper 似乎要求 CSV 标头匹配字段名称,而不是按索引映射。