Обновление CsvHelper, производное DefaultTypeConverter - PullRequest
0 голосов
/ 19 марта 2020

Недавно я обновил CsvHelper с v2 до v15, и следующий код больше не работает:

public class DateConverter : DefaultTypeConverter
    {
        public override string ConvertToString(TypeConverterOptions options, object value)
        {
            return ((DateTime)value).ToString("dd'/'MM'/'yyyy");
        }
    }

Ошибка: no suitable method found to override, но DefaultTypeConverter из сборки:

public class DefaultTypeConverter : ITypeConverter
{
    public DefaultTypeConverter();

    //
    // Summary:
    //     Converts the string to an object.
    //
    // Parameters:
    //   text:
    //     The string to convert to an object.
    //
    //   row:
    //     The CsvHelper.IReaderRow for the current record.
    //
    //   memberMapData:
    //     The CsvHelper.Configuration.MemberMapData for the member being created.
    //
    // Returns:
    //     The object created from the string.
    public virtual object ConvertFromString(string text, IReaderRow row, MemberMapData memberMapData);
    //
    // Summary:
    //     Converts the object to a string.
    //
    // Parameters:
    //   value:
    //     The object to convert to a string.
    //
    //   row:
    //     The CsvHelper.IWriterRow for the current record.
    //
    //   memberMapData:
    //     The CsvHelper.Configuration.MemberMapData for the member being written.
    //
    // Returns:
    //     The string representation of the object.
    public virtual string ConvertToString(object value, IWriterRow row, MemberMapData memberMapData);
}

Как мне это преодолеть?

1 Ответ

1 голос
/ 19 марта 2020

Подпись вашего переопределения не соответствует сигнатуре метода в классе, который вы расширяете. Это имеет изменения между версиями csvhelper

. Вам нужно заменить текущую реализацию следующим:

public override string ConvertToString(object value, IWriterRow row, MemberMapData memberMapData)
{
    return ((DateTime)value).ToString("dd'/'MM'/'yyyy");
}

Чтобы узнать больше изменений, вы можете посмотреть CsV Helper на GitHub

...