While trying to extend the MemberMap of CsvHelper
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);
});
}
i get the error
'MemberMap' does not contain a definition for 'ConvertUsing' and no accessible extension method 'ConvertUsing' accepting a first argument of type 'MemberMap' could be found
What am i doing wrong here?
Changing to <TClass, T>
made it magic.
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);
});
}
Special thanks to Steve.