Friday, 15 April 2011

c# - csvhelper IsHeaderCaseSensitive Work around -



c# - csvhelper IsHeaderCaseSensitive Work around -

i'm trying read in csv file header 'email', however, maintain getting csvmissingfieldexception thrown "fields 'email' not exist in csv file".

i set csvreader handle-

csvreader.configuration.isheadercasesensitive = false;

but i'm still getting same issue. know work around? or why configuration isn't working?

in utilities class:

public static ienumerable<t> csvreader<t>(string filename) { using (var filereader = file.opentext(filename)) using (var csvreader = new csvhelper.csvreader(filereader)) { csvreader.configuration.isheadercasesensitive = false; csvreader.configuration.registerclassmap<optoutclassmap>(); while (csvreader.read()) { var record = csvreader.getrecord<t>(); yield homecoming record; } } }

in class map class:

public string email { get; set; } public class customclassmap : csvhelper.configuration.csvclassmap<custommap> { public override void createmap() { map(m => m.email); } }

it looks not using right classmap. code above, line:

csvreader.configuration.registerclassmap<optoutclassmap>();

should be:

csvreader.configuration.registerclassmap<customclassmap>();

your code when modified works expected.

static void main(string[] args) { var records = csvreader<record>("textfile1.csv"); } public class record { public string email { get; set; } } public class customclassmap : csvhelper.configuration.csvclassmap<record> { public override void createmap() { map(m => m.email); } } public static ienumerable<t> csvreader<t>(string filename) { using (var filereader = file.opentext(filename)) using (var csvreader = new csvhelper.csvreader(filereader)) { csvreader.configuration.isheadercasesensitive = false; csvreader.configuration.registerclassmap<customclassmap>(); while (csvreader.read()) { var record = csvreader.getrecord<t>(); yield homecoming record; } } }

c# csvhelper

No comments:

Post a Comment