CsvHelper更新,派生DefaultTypeConverter
CsvHelper update, deriving DefaultTypeConverter
最近我将 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);
}
我该如何克服这个问题?
您的覆盖签名与您正在扩展的 class 中的方法签名不匹配。这在 csvhelper
的版本之间有变化
您需要将当前的实现替换为:
public override string ConvertToString(object value, IWriterRow row, MemberMapData memberMapData)
{
return ((DateTime)value).ToString("dd'/'MM'/'yyyy");
}
有关更多更改,您可以查看 CsV Helper on GitHub
最近我将 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);
}
我该如何克服这个问题?
您的覆盖签名与您正在扩展的 class 中的方法签名不匹配。这在 csvhelper
的版本之间有变化您需要将当前的实现替换为:
public override string ConvertToString(object value, IWriterRow row, MemberMapData memberMapData)
{
return ((DateTime)value).ToString("dd'/'MM'/'yyyy");
}
有关更多更改,您可以查看 CsV Helper on GitHub