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