diff --git a/src/CsvHelper/TypeConversion/TypeConverter.cs b/src/CsvHelper/TypeConversion/NotSupportedTypeConverter.cs similarity index 83% rename from src/CsvHelper/TypeConversion/TypeConverter.cs rename to src/CsvHelper/TypeConversion/NotSupportedTypeConverter.cs index 06ed4c1c5..d8b5bfede 100644 --- a/src/CsvHelper/TypeConversion/TypeConverter.cs +++ b/src/CsvHelper/TypeConversion/NotSupportedTypeConverter.cs @@ -17,7 +17,7 @@ namespace CsvHelper.TypeConversion /// converter will need to be created to have a field convert to and /// from . /// - public class TypeConverter : DefaultTypeConverter + public class NotSupportedTypeConverter : TypeConverterGeneric { /// /// Throws an exception. @@ -26,9 +26,9 @@ public class TypeConverter : DefaultTypeConverter /// The for the current record. /// The for the member being created. /// The object created from the string. - public override object ConvertFromString(string text, IReaderRow row, MemberMapData memberMapData) + public override T ConvertFromString(string text, IReaderRow row, MemberMapData memberMapData) { - var message = "Converting System.Type is not supported. " + + var message = $"Converting " + typeof(T).FullName + " is not supported. " + "If you want to do this, create your own ITypeConverter and register " + "it in the TypeConverterFactory by calling AddConverter."; throw new TypeConverterException(this, memberMapData, text ?? string.Empty, row.Context, message); @@ -41,9 +41,9 @@ public override object ConvertFromString(string text, IReaderRow row, MemberMapD /// The for the current record. /// The for the member being written. /// The string representation of the object. - public override string ConvertToString(object value, IWriterRow row, MemberMapData memberMapData) + public override string ConvertToString(T value, IWriterRow row, MemberMapData memberMapData) { - var message = "Converting System.Type is not supported. " + + var message = "Converting " + typeof(T).FullName + " is not supported. " + "If you want to do this, create your own ITypeConverter and register " + "it in the TypeConverterFactory by calling AddConverter."; throw new TypeConverterException(this, memberMapData, value, row.Context, message); diff --git a/src/CsvHelper/TypeConversion/TypeConverterCache.cs b/src/CsvHelper/TypeConversion/TypeConverterCache.cs index 0bf3e5315..7dedaba09 100644 --- a/src/CsvHelper/TypeConversion/TypeConverterCache.cs +++ b/src/CsvHelper/TypeConversion/TypeConverterCache.cs @@ -234,7 +234,7 @@ private void CreateDefaultConverters() AddConverter(typeof(sbyte), new SByteConverter()); AddConverter(typeof(string), new StringConverter()); AddConverter(typeof(TimeSpan), new TimeSpanConverter()); - AddConverter(typeof(Type), new TypeConverter()); + AddConverter(new NotSupportedTypeConverter()); AddConverter(typeof(ushort), new UInt16Converter()); AddConverter(typeof(uint), new UInt32Converter()); AddConverter(typeof(ulong), new UInt64Converter());