Kann ich bestimmte Felder nur für CSVReader (csvhelper) zuordnen und für den Rest Auto-Mapping arbeiten lassen?C#

Ein Treffpunkt für C#-Programmierer
Anonymous
 Kann ich bestimmte Felder nur für CSVReader (csvhelper) zuordnen und für den Rest Auto-Mapping arbeiten lassen?

Post by Anonymous »

Ich verwende csvReader aus csvhelper und ich möchte ein paar Felder aus dem CSV-Header und standardmäßig den Rest abbilden. /> Im folgenden Code sind nur 2 Felder zugeordnet und diese kommen gut heraus, aber sonst kommt nichts durch. Ich beobachte nur diese, die auch durchkommen, wo die Namen zwischen der Klasse und dem Header gleich sind. < /P>

Code: Select all

public static class CsvHelperUtil
{
public static CsvConfiguration GetConfiguration()
{
return new CsvConfiguration(CultureInfo.InvariantCulture)
{
MissingFieldFound = null,
HeaderValidated = null,
TrimOptions = TrimOptions.Trim,
PrepareHeaderForMatch =  header => Regex.Replace(header.Header, @"\s", string.Empty)
};
}

public static void ConfigureCsvReader(CsvReader csv) where TV : ClassMap
{
csv.Context.TypeConverterCache.AddConverter(new AsciiOnlyConverter());
csv.Context.RegisterClassMap();
}
}

internal sealed class BlockTradeUploadMap :  ClassMap
{
public BlockTradeUploadMap()
{
AutoMap(CultureInfo.InvariantCulture); // code that fixes the issue
Map(m => m.SecurityIdentifier).Name("Sid");
Map(m => m.SourceId).Name("GlobalBlockId");
}
}

using var reader = new StreamReader(stream);
using var csv = new CsvReader(reader, CsvHelperUtil.GetConfiguration());
CsvHelperUtil.ConfigureCsvReader(csv);

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post