我也是醉了,System.Exception居然不能序列化!

巴拉巴拉一堆英文,意思是说TargetSite.DeclaringType是System.Type类型,无法序列化,真真的扯淡。非要我写个转换器

       public class MethodBaseConverter : JsonConverter<MethodBase>
        {
            public override MethodBase Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
           => null;

            public override void Write(Utf8JsonWriter writer, MethodBase value, JsonSerializerOptions options)
             => writer.WriteStringValue(value.ToString());
        }

然后:

            try
            {
                throw new Exception("test");
            }
            catch (Exception ex)
            {
                var jso = new JsonSerializerOptions();
                jso.Converters.Add(new MethodBaseConverter());

                var jsonStr = JsonSerializer.Serialize(ex,jso);
                Console.WriteLine(jsonStr);
            }

没道理!!!