`` `` c#
パブリックシールクラスMyClassMapWithParametrizationNeeded:CsvClassMap
// CsvHelperがクラスマップの構築インジェクションをサポートしているかどうかわかりません
//クラスマップをパラメータ化可能にする最良の方法は何ですか?
MyClassMapWithParametrizationNeeded(ClassMapDependencyParamter param){
}
}
`` ``
あなたはそれをすることができるはずです。 問題は何ですか?
こんにちはジョシュ、
このメッセージがあなたをうまく見つけてくれることを願っています、あなたはたまたまこの質問の例を持っていますか?
パラメータを定義してマップクラスのコンストラクタを使用するようにcsvヘルパーに指示する方法を知りたいです。
ありがとう
ロケシュバル
void Main()
{
using (var stream = new MemoryStream())
using (var writer = new StreamWriter(stream))
using (var reader = new StreamReader(stream))
using (var csv = new CsvReader(reader))
{
writer.WriteLine("Id,Name");
writer.WriteLine("1,one");
writer.WriteLine(",");
writer.WriteLine("2,two");
writer.Flush();
stream.Position = 0;
var map = new TestMap(-1, "n/a");
csv.Configuration.RegisterClassMap(map);
csv.GetRecords<Test>().ToList().Dump();
}
}
public class Test
{
public int Id { get; set; }
public string Name { get; set; }
}
public sealed class TestMap : ClassMap<Test>
{
public TestMap(int id, string name)
{
Map(m => m.Id).Default(id);
Map(m => m.Name).Default(name);
}
}
こんにちはジョシュ、
迅速な返信をありがとうございます。コンストラクターパラメーターを行に書き込み、どのプロパティにもマップせず、CSVファイルの読み取り中に無視する方法はありますか。
よろしくお願いします
ロケシュバル
いいえ、でも手動でできると思います。 パラメータのプロパティを追加し、書き込むときに、コメント行などにそれらのプロパティを書き出します。
@JoshClose testmap
存在する参照マッピングのコンストラクターパラメーターを渡す方法
最も参考になるコメント