title: How can I get a null value instead of a serialization error when deserializing an enum by string conversion?
body: <p>A few of my API endpoints have models that include enums. FluentValidation is being used to verify that the values sent across meet their respective requirements. </p>
  
  <p>To aid in usability and document generation, enums are allowed to be sent as strings rather than integers. Validation that the value sent across is in the correct range works fine if an invalid integer is sent, but serialization will fail if an invalid string is sent across.</p>
  
  <pre><code>public enum Foo 
  {
      A = 1,
      B = 2
  }
  
  public class Bar 
  {
      public Foo? Foo {get;set;}
  }
  
  void Main()
  {
      var options = new JsonSerializerOptions();
      options.Converters.Add(new JsonStringEnumConverter());
      options.PropertyNamingPolicy = JsonNamingPolicy.CamelCase;
  
      var jsonString = "{\"foo\": \"C\"}";
      var jsonSpan = (ReadOnlySpan&lt;byte&gt;)Encoding.UTF8.GetBytes(jsonString);
  
      try
      {
          var result = JsonSerializer.Deserialize&lt;Bar&gt;(jsonSpan, options);
          Console.WriteLine(result.Foo == null);
      }
      catch(Exception ex) 
      {
          Console.WriteLine("Serialization Failed");
      }
  }
  </code></pre>
  
  <p>My desired outcome would be to simply deserialize the enum property to null when the string does not match any of the enum's fields so that the model can be passed through to the validator to create a friendly message.</p>
  
  <p>How can I achieve this? This is using net-core 3 preview 8 with the System.Text.Json API.</p>