CsvHelper. Как я могу вызвать ConvertUsing из MemberMap в методе расширения? - PullRequest
0 голосов
/ 25 мая 2020

При попытке расширить MemberMap 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);
            });
        }

я получаю сообщение об ошибке

'MemberMap' не содержит определения для 'ConvertUsing 'и нет доступного метода расширения' ConvertUsing ', принимающего первый аргумент типа' MemberMap '

Что я здесь делаю не так?

1 Ответ

0 голосов
/ 25 мая 2020

Изменение на <TClass, T> сделало его магом c.

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);
            });
        }

Особая благодарность Стиву.

...