CsvHelper。如何在扩展方法中调用 MemberMap 的 ConvertUsing?
CsvHelper. How can i invoke ConvertUsing of MemberMap in an extension method?
在尝试扩展 CsvHelper MemberMap 时
public static MemberMap Required<T>(this MemberMap map, string columnName)
{
return map.Name(columnName).ConvertUsing(row =>
{
if (string.IsNullOrEmpty(row.GetField(columnName)))
throw new CsvParserException($"{columnName} is required");
return row.GetField<T>(columnName);
});
}
我收到错误
'MemberMap' does not contain a definition for 'ConvertUsing' and no accessible extension method
'ConvertUsing' accepting a first argument of type 'MemberMap' could be found
我做错了什么?
更改为 <TClass, T>
变得神奇。
public static MemberMap Required<TClass, T>(this MemberMap<TClass, T> map, string columnName)
{
return map.ConvertUsing(row =>
{
if (string.IsNullOrEmpty(row.GetField(columnName)))
throw new ArgumentNullException($"{columnName} is required, but missing from row {row.Context.Row}");
return row.GetField<T>(columnName);
});
}
特别感谢史蒂夫。
在尝试扩展 CsvHelper MemberMap 时
public static MemberMap Required<T>(this MemberMap map, string columnName)
{
return map.Name(columnName).ConvertUsing(row =>
{
if (string.IsNullOrEmpty(row.GetField(columnName)))
throw new CsvParserException($"{columnName} is required");
return row.GetField<T>(columnName);
});
}
我收到错误
'MemberMap' does not contain a definition for 'ConvertUsing' and no accessible extension method 'ConvertUsing' accepting a first argument of type 'MemberMap' could be found
我做错了什么?
更改为 <TClass, T>
变得神奇。
public static MemberMap Required<TClass, T>(this MemberMap<TClass, T> map, string columnName)
{
return map.ConvertUsing(row =>
{
if (string.IsNullOrEmpty(row.GetField(columnName)))
throw new ArgumentNullException($"{columnName} is required, but missing from row {row.Context.Row}");
return row.GetField<T>(columnName);
});
}
特别感谢史蒂夫。