【发布时间】:2013-11-26 02:59:56
【问题描述】:
我正在尝试编写一个程序,将 CSV 文件加载到我创建的自定义类中。为此,我使用以下库:http://joshclose.github.io/CsvHelper/#mapping
我写了我的实体类,如下:
public class BreakthroughCampaignEntity
{
public string ConstituentId { get; set; }
public string F2F { get; set; }
public string GiftStatus { get; set; }
public string Title1 { get; set; }
public string FirstName { get; set; }
public string Surname { get; set; }
public string PreferredAddress { get; set; }
public string PreferredSuburb { get; set; }
public string PreferredEmailNumber { get; set; }
public string PreferrredHomeNumber { get; set; }
public string PreferredWorkNumber { get; set; }
public string PreferrredMobileNumber { get; set; }
public string GiftAmount { get; set; }
public DateTime GiftNextTransactionDueDate { get; set; }
public DateTime GiftSpecificAttributesPledgeGiftSignUpDate { get; set; }
}
还有我的索引映射:
public class BreakthroughCampaignIndexMap : CsvClassMap<BreakthroughCampaignEntity>
{
/// <summary>
/// Creates a map by matching the CSV indexes to our entity class
/// </summary>
public override void CreateMap()
{
Map(m => m.ConstituentId).Index(0).Default("Unknown");
Map(m => m.F2F).Index(1).Default("Unknown");
Map(m => m.GiftStatus).Index(2).Default("Unknown");
Map(m => m.Title1).Index(3).Default("Unknown");
Map(m => m.FirstName).Index(4).Default("Unknown");
Map(m => m.Surname).Index(5).Default("Unknown");
Map(m => m.PreferredAddress).Index(6).Default("Unknown");
Map(m => m.PreferredSuburb).Index(7).Default("Unknown");
Map(m => m.PreferredEmailNumber).Index(8).Default("Unknown");
Map(m => m.PreferrredHomeNumber).Index(9).Default("Unknown");
Map(m => m.PreferredWorkNumber).Index(10).Default("Unknown");
Map(m => m.PreferrredMobileNumber).Index(11).Default("Unknown");
Map(m => m.GiftAmount).Index(12).Default("Unknown");
Map(m => m.GiftNextTransactionDueDate).Index(13);
Map(m => m.GiftSpecificAttributesPledgeGiftSignUpDate).Index(14);
}
}
我还通过包管理器控制台安装了 CSV 帮助程序库,以确保我拥有最新版本。
不幸的是,当我去加载我的 CSV 时,使用以下内容:
var csv = new CsvReader(TextFileToProcess.Text.ToString());
var processedFile = csv.GetRecords<BreakthroughCampaignEntity>();
正如this StackExchange 帖子(Josh Close 的回答)中所引用的,我在TextFileToProcess.Text.ToString() 下方收到以下错误:
无法解析构造函数'CsvReader(string)',候选者是: CsvReader(CsvHelper.ICsvParser)(在 CsvReader 类中) CsvReader(System.IO.TextReader)(在 CsvReader 类中)
我也尝试过使用:
var csv = new CsvReader(File.OpenRead(TextFileToProcess.Text.ToString()));
这提供了相同的错误。
我很想了解这意味着什么,而不仅仅是如何解决它!我的知识有一些空白,这意味着虽然这个错误似乎表明了如何解决问题,但我不明白它告诉我什么。
【问题讨论】: