CsvHelper Configurationの設定

CsvHelperって、C#でCSVの読み書きをするには非常に便利なんですが、イマイチ情報が足りない気がしています。

ConfigurationのPropertiesの設定情報はいつも調べるんですが、毎回google翻訳するのも面倒なので、翻訳したものを載せておきます。

 

コピペで使えるサンプルコードという近道

現場レベルのCsvHelperの実装サンプルを作りました。
CSVデータの取得から、入力チェック、モデル変換まで網羅しています。

5つのシステムで実証したコピペで使い回せる実装法
» 【CsvHelper マスター講座】を見る

目次

Properties

AllowComments
コメントが許可されるかどうかを示す値を取得または設定します。コメントアウトされた行を許可する場合はtrue、そうでない場合はfalse。
BadDataFound
不正なフィールドデータが見つかったときに呼び出される関数を取得または設定します。フィールドに引用符が含まれていて、フィールドが引用符で囲まれていない(エスケープされている)場合、フィールドに不正なデータが含まれます。例外をスローする代わりに、問題をログに記録するなどの他のことを行う独自の関数を提供できます。引数:context
BadDataFoundCsvHelper.BadDataExceptionについて知りたい方は「CsvHelper BadDataFoundとは?」をどうぞ。
BufferSize
CSVファイルの読み取りに使用されるバッファーのサイズを取得または設定します。デフォルトは2048です。
Comment
コメントアウトされている行を示すために使用される文字を取得または設定します。デフォルトは「#」です。
CountBytes
解析中にバイト数をカウントするかどうかを示す値を取得または設定します。デフォルトはfalseです。指定されたエンコーディングのすべての文字のバイトカウントを取得する必要があるため、解析が遅くなります。これを正確にするには、CsvHelper.Configuration.Configuration.Encodingを正しく設定する必要があります。
CultureInfo
CSVファイルの書き込みに使用されるカルチャ情報を取得または設定します。デフォルトはSystem.Globalization.CultureInfo.CurrentCultureです。
Delimiter
フィールドを区切るために使用される区切り文字を取得または設定します。デフォルトはCultureInfo.TextInfo.ListSeparatorです。
DetectColumnCountChanges
列数の変化を検出する必要があるかどうかを示す値を取得または設定します。 trueの場合、異なる列数が検出されるとCsvHelper.BadDataExceptionがスローされます。
DetectColumnCountChangesCsvHelper.BadDataExceptionについて知りたい方は「CsvHelper BadDataExceptionとは?」をどうぞ。
DoubleQuoteString
現在構成されている2つのQuote文字の文字列表現を取得します。
DynamicPropertySort
書き込み時に動的オブジェクトのプロパティの順序付けに使用される比較子を取得または設定します。デフォルトはnullで、オブジェクトプロパティが作成された順序が保持されます。
Encoding
バイトをカウントするときに使用されるエンコーディングを取得または設定します。
Escape
フィールド内の引用符をエスケープするために使用されるエスケープ文字を取得または設定します。デフォルトは「”」です。
GetConstructor
コンストラクターマッピングに使用するコンストラクターを選択します。
HasHeaderRecord
CSVファイルにヘッダーレコードがあるかどうかを示す値を取得または設定します。デフォルトはtrueです。
HeaderValidated
ヘッダー検証チェックの実行時に呼び出される関数を取得または設定します。既定の関数は、特定のメンバーマッピングのヘッダーがない場合、CsvHelper.ValidationExceptionをスローします。例外をスローする代わりに、問題をログに記録するなどの他のことを行う独自の関数を提供できます。引数:isValid、headerNames、headerNameIndex、context
IgnoreBlankLines
読み取り時に空白行を無視するかどうかを示す値を取得または設定します。無視する場合はtrue、それ以外の場合はfalse。デフォルトはtrueです。
IgnoreQuotes
解析時に引用符を無視し、他の文字と同様に扱うかどうかを示す値を取得または設定します。
IgnoreReferences
自動マッピング時に参照を無視するかどうかを示す値を取得または設定します。参照を無視する場合はtrue、それ以外の場合はfalse。デフォルトはfalseです。
IncludePrivateMembers
プライベートメンバーを読み書きするかどうかを示す値を取得または設定します。プライベートメンバーを含める場合はtrue、それ以外の場合はfalse。デフォルトはfalseです。
InjectionCharacters
インジェクション攻撃に使用される文字を取得または設定します。
InjectionEscapeCharacter
検出された注入をエスケープするために使用される文字を取得または設定します。
LineBreakInQuotedFieldIsBadData
引用フィールドで見つかった改行を不良データと見なすべきかどうかを示す値を取得または設定します。改行の不良データを考慮する場合はtrue、そうでない場合はfalse。デフォルトはfalseです。
Maps
設定されたCsvHelper.Configuration.ClassMap
MemberTypes
自動マッピング時に使用されるメンバータイプを取得または設定します。 MemberTypesはフラグであるため、複数選択できます。デフォルトはプロパティです。
MissingFieldFound
不足しているフィールドが見つかったときに呼び出される関数を取得または設定します。デフォルトの関数はCsvHelper.MissingFieldExceptionをスローします。例外をスローする代わりに、問題をログに記録するなどの他のことを行う独自の関数を提供できます。引数:headerNames、index、context
MissingFieldFoundCsvHelper.MissingFieldExceptionについて知りたい方は「CsvHelper MissingFieldExceptionとは?」をどうぞ。
PrepareHeaderForMatch
メンバー名と照合するヘッダーフィールドを準備します。ヘッダーフィールドとメンバー名は、両方ともこの関数を介して実行されます。トリミング、空白の削除、アンダースコアの削除、大文字と小文字を無視するための大文字と小文字の変更などを行う必要があります。
Quote
フィールドを引用するために使用される文字を取得または設定します。デフォルトは「”」です。
QuoteString
現在構成されている引用文字の文字列表現を取得します。
ReadingExceptionOccurred
読み取り例外が発生したときに呼び出される関数を取得または設定します。デフォルトの関数は、指定された例外を再スローします。読み取り例外を無視する場合は、独自の関数を提供して、問題の記録などの他のことを行うことができます。引数:exception
ReferenceHeaderPrefix
参照ヘッダーのプレフィックスを返すコールバックを取得または設定します。引数:memberType、memberName
SanitizeForInjection
悪意のあるインジェクションを防ぐためにフィールドをサニタイズする必要があるかどうかを示す値を取得または設定します。これには、MS Excel、Googleスプレッドシート、およびOpen Office Calcが含まれます。
ShouldQuote
書き込み時にフィールドを引用符で囲む必要があるかどうかを決定するために使用される関数を取得または設定します。引数:field、context
ShouldSkipRecord
指定されたレコードをスキップするかどうかを決定するために呼び出されるコールバックを取得または設定します。
ShouldUseConstructorParameters
デフォルトのコンストラクターとメンバーの代わりに、コンストラクターパラメーターを使用してクラスを作成するかどうかを決定します。
TrimOptions
フィールドのトリミングオプションを取得または設定します。
TypeConverterCache
CsvHelper.Configuration.Configuration.TypeConverterOptionsCacheを取得または設定します。
TypeConverterOptionsCache
CsvHelper.Configuration.Configuration.TypeConverterOptionsCacheを取得または設定します。
UseNewObjectForNullReferenceMembers
参照メンバーがnullのときに新しいオブジェクトを作成する必要があるかどうかを書き込み中に示す値を取得または設定します。新しいオブジェクトを作成してフィールドのデフォルトを使用する場合はtrue、すべての参照メンバーのメンバーのフィールドを空のままにする場合はfalse

編集後記

時間があるときに、使い方もどんどんアップしてきたいと思います。

こちらの記事も読まれています!


よかったらシェアしてね!
目次
閉じる