Usando CsvHelper posso traduzir espaço em branco para um anulável?

Eu tenho alguns arquivos Csv realmente coxos que eu preciso analisar. Eu estou usando CsvHelper e está funcionando incrível. Exceto eu tenho algumas linhas que têm espaço em branco onde normalmente eu tenho um duplo.

Arquivo:

Texto, SomeDouble, MoreText

"Bom", 1,23, "bom"

"Ruim", "Ruim"

se eu tentar mapear isso

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; }
}

então eu recebo um erro como este:

CsvHelper.CsvReaderException: Ocorreu um erro ao tentar ler um registro do tipo

Linha: '2' (baseado em 1)

Índice de campo: '1' (baseado em 0)

Nome do campo: 'SomeDouble'

Valor do campo: ''

System.Exception: não é um valor válido para Double. ---> System.FormatException: string de entrada não estava em um formato correto.
em System.Number.ParseDouble (valor String, NumberStyles options, NumberFormatInfo numfmt) em System.ComponentModel.DoubleConverter.FromString (valor String, NumberFormatInfo formatInfo) em System.ComponentModel.BaseNumberConverter.ConvertFrom (contexto ITypeDescriptorContext, cultura CultureInfo, valor Object) - - Fim do rastreamento de pilha de exceção interna --- em System.ComponentModel.BaseNumberConverter.ConvertFrom (contexto ITypeDescriptorContext, cultura CultureInfo, valor do objeto) em System.ComponentModel.NullableConverter.ConvertFrom (contexto ITypeDescriptorContext, cultura CultureInfo, valor do objeto) em lambda_method ( Encerramento, ICsvReader) no CsvHelper.CsvReader.d__0`1.MoveNext ()

Do meu ponto de vista, minhas opções são criar um analisador personalizado ou mapear meu valor em uma propriedade de string e fazer a análise lá.

Existem outras opções?

Seria bom se eu pudesse configurar que eu quero tratar o espaço em branco como nulo.

Conforme solicitado, aqui está um exemplo de código que reproduz o 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'...
            }
    }

Obrigado.

questionAnswers(2)

yourAnswerToTheQuestion