CsvHelper:如何访问内联类型转换 (ConvertUsing) 中已映射的 class 属性
CsvHelper: How to access already mapped class properties within Inline Type Conversion (ConvertUsing)
我想知道是否可以在 CsvReader
的映射过程中从映射的 class 访问 属性。请看下面的例子。
public class FooCsvMap : ClassMap<FooModel>
{
public FooCsvMap(BarService barService)
{
Map(m => m.BarObject).ConvertUsing(row => barService.Lookup(row.GetField(0)));
Map(m => m.Bar2).ConvertUsing(row =>
{
// ?? Is it possible to access m.BarObject? If yes how?
var barObject = row.model.BarObject;
});
}
}
如果您使用的是 CsvWriter
,则可以直接访问 BarObject
。
var barObject = row.BarObject;
不幸的是,如果您正在使用 CsvReader
,我相信您只能访问原始行数据,因为此时尚未创建 FooModel
对象。所以你必须做这样的事情。
var barObject = barService.Lookup(row.GetField(0));
我想知道是否可以在 CsvReader
的映射过程中从映射的 class 访问 属性。请看下面的例子。
public class FooCsvMap : ClassMap<FooModel>
{
public FooCsvMap(BarService barService)
{
Map(m => m.BarObject).ConvertUsing(row => barService.Lookup(row.GetField(0)));
Map(m => m.Bar2).ConvertUsing(row =>
{
// ?? Is it possible to access m.BarObject? If yes how?
var barObject = row.model.BarObject;
});
}
}
如果您使用的是 CsvWriter
,则可以直接访问 BarObject
。
var barObject = row.BarObject;
不幸的是,如果您正在使用 CsvReader
,我相信您只能访问原始行数据,因为此时尚未创建 FooModel
对象。所以你必须做这样的事情。
var barObject = barService.Lookup(row.GetField(0));