Con CsvHelper, ¿puedo traducir espacios en blanco a un nullable?

Tengo algunos archivos CSV realmente débiles que necesito analizar. Estoy usando CsvHelper y está funcionando de maravilla. Excepto que tengo algunas líneas que tienen espacios en blanco donde normalmente tengo un doble.

Expediente:

Texto, SomeDouble, MoreText

"Bien", 1.23, "Bueno"

"Malo malo"

si intento y mapeo esto en

public class Test
{
  [CsvField(Name = "Text")]
  public string Text { get; set; }

  [CsvField(Name = "SomeDouble")]
  public double? SomeDouble{ get; set; }

  [CsvField(Name = "MoreText")]
  public string MoreText{ get; set; }
}

Entonces me sale un error como este:

CsvHelper.CsvReaderException: se produjo un error al intentar leer un registro de tipo

Fila: '2' (basado en 1)

Índice de campo: '1' (basado en 0)

Nombre del campo: 'SomeDouble'

Valor de campo: ''

System.Exception: no es un valor válido para Double. ---> System.FormatException: la cadena de entrada no tenía el formato correcto.
at System.Number.ParseDouble (valor de String, opciones de NumberStyles, NumberFormatInfo numfmt) en System.ComponentModel.DoubleConverter.FromString (String value, NumberFormatInfo formatInfoContactoCrosstationContactual.textsContact.Contact.Contact.Contador.ConvertFrom (ITypeDescripción). - Fin del rastreo de la pila de excepciones internas --- en System.ComponentModel.BaseNumberConverter.ConvertFrom (contexto de ITypeDescriptorContext, cultura CultureInfo, valor del objeto) en System.ComponentModel.NullableConverter.ConvertFrom (contexto de ITypeDescriptorContext, cultura CultureInfo, valor del objeto) en lambda_method ( Cierre, ICsvReader) en CsvHelper.CsvReader.d__0`1.MoveNext ()

Como lo veo, mis opciones son crear un analizador personalizado, o asignar mi valor a una propiedad de cadena y hacer el análisis allí.

¿Hay más opciones?

Sería bueno si pudiera configurar que quiero tratar el espacio en blanco como nulo.

Según lo solicitado, aquí hay un ejemplo de código que reproduce el problema

 static class Program
    {
        public class Test
        {
            [CsvField(Name = "Text")]
            public string Text { get; set; }

            [CsvField(Name = "SomeDouble")]
            public double? SomeDouble { get; set; }

            [CsvField(Name = "MoreText")]
            public string MoreText { get; set; }
        }

        static void Main(string[] args)
        {
            // create fake in memory file
            var memoryStream = new MemoryStream();
            var streamWriter = new StreamWriter(memoryStream);
            streamWriter.WriteLine("Text,SomeDouble,MoreText");
            streamWriter.WriteLine("Good, 1.23, Good");
            streamWriter.WriteLine("Bad, ,Bad");

            streamWriter.Flush();

            //reset the file to the begining
            memoryStream.Position = 0;

            using (
                var csv =
                    new CsvReader(
                        new StreamReader(memoryStream)))
            {
                // this call will blow up with the exception.
                var records = csv.GetRecords<Test>().ToList();

                //carry on and do stuff with 'records'...
            }
    }

Gracias.

Respuestas a la pregunta(2)

Su respuesta a la pregunta