[トピック内 5 記事 (1 - 5 表示)] << 0 >>
visualStudio2019 C# CsvHelper29.0 いつもお世話になってます。 CsvHelperを使って、格納クラスのIndex[]の値をConfigファイルから変更できるようしたく class Csv { Index[0] public string Id {get;set;} Index[1] public string Name {get;set;} Index[2] public string Age {get;set;} } []内の値をConfigurationManager.AppSettingsで設定したいのですが //出来たらここをint型にしたい private static readonly string idClm = ConfigurationManager.AppSettings["ID"]; [Index(int.Parse(idClm))] //idClm = 0 このように指定したいのですが波線で怒られてしまします。 格納クラスでの設定の仕方等ありましたら助言お願い致します。
■No101342 (WebSurfer さん) に返信 > その「破線」とやらは何といって怒っておるのですか? 属性引数は、定数式、typeof式、または属性パラメータ型の配列の生成式でなければなりません と出ています。 Form.cs と class.csがあり、Form.csで private static readonly string idClm = ConfigurationManager.AppSettings["ID"]; を指定してForm.cs上でこの変数を使うのはできるのですが、class.csでの使い方がわかりません。
■No101344 (Hongliang さん) に返信 > .Index(x)に与えるxをSettingsから読み取った値にすればいいでしょう。 > > なおCsvHelperのバージョンが古い場合、ClassMapの前身であるCsvClassMapを使うことになるらしいです。 ありがとうございます! CsvConfigurationにRegisterClassMap<>を書いていましたが、URLのように using (var csv = new CsvHelper.CsvReader(streamReader, csvConfig)) { csv.Context.RegisterClassMap<CsvStructMapper>(); と書いたら、Mappingを反映させることが出来ました!
管理者用
- Child Tree -