Ejemplo n.º 1
0
        public static JObject SerializeObjectAsJObject(
            object obj,
            bool includePrivate            = true,
            SerializeDebugLevel debugTrace = SerializeDebugLevel.None)
        {
            var settings = GetJsonSerializerSettings(includePrivate, debugTrace, out var serializer);

            JObject jObject;

            try
            {
                jObject = JObject.FromObject(obj, serializer);
            }
            catch (Exception)
            {
                if (settings.TraceWriter != null)
                {
                    Console.WriteLine(settings.TraceWriter);
                }
                throw;
            }

            if (debugTrace == SerializeDebugLevel.Always)
            {
                Console.WriteLine(settings.TraceWriter);
            }

            return(jObject);
        }
Ejemplo n.º 2
0
        private static JsonSerializerSettings GetJsonSerializerSettings(bool includePrivate,
                                                                        SerializeDebugLevel debugTrace,
                                                                        out JsonSerializer serializer)
        {
            var settings = new JsonSerializerSettings
            {
                ReferenceLoopHandling = ReferenceLoopHandling.Ignore
            };

            if (includePrivate)
            {
                settings.ContractResolver = new PrivateMemberContractResolver();
            }

            if (debugTrace != SerializeDebugLevel.None)
            {
                settings.TraceWriter = new MemoryTraceWriter();
            }

            serializer = JsonSerializer.CreateDefault(settings);
            serializer.Converters.Add(new StringEnumConverter());
            serializer.Converters.Add(new BoardSquareConverter());
            serializer.Converters.Add(new Vector3Converter());
            serializer.Converters.Add(new GridPosConverter());
            return(settings);
        }
Ejemplo n.º 3
0
        public static string SerializeObject(
            object obj,
            bool includePrivate            = true,
            SerializeDebugLevel debugTrace = SerializeDebugLevel.None)
        {
            var settings = GetJsonSerializerSettings(includePrivate, debugTrace, out var serializer);

            var stringWriter = new StringWriter(new StringBuilder(256), CultureInfo.InvariantCulture);

            using var jsonTextWriter = new JsonTextWriter(stringWriter)
                  {
                      Formatting = serializer.Formatting
                  };
            try
            {
                serializer.Serialize(jsonTextWriter, obj, null);
            }
            catch (Exception)
            {
                if (settings.TraceWriter != null)
                {
                    Console.WriteLine(settings.TraceWriter);
                }
                throw;
            }

            if (debugTrace == SerializeDebugLevel.Always)
            {
                Console.WriteLine(settings.TraceWriter);
            }

            return(stringWriter.ToString());
        }
Ejemplo n.º 4
0
        public static string SerializeObject(
            object obj,
            bool includePrivate            = true,
            SerializeDebugLevel debugTrace = SerializeDebugLevel.None)
        {
            var settings = new JsonSerializerSettings
            {
                ReferenceLoopHandling = ReferenceLoopHandling.Ignore
            };

            if (includePrivate)
            {
                settings.ContractResolver = new PrivateMemberContractResolver();
            }

            if (debugTrace != SerializeDebugLevel.None)
            {
                settings.TraceWriter = new MemoryTraceWriter();
            }

            var serializer = JsonSerializer.CreateDefault(settings);

            serializer.Converters.Add(new StringEnumConverter());
            serializer.Converters.Add(new BoardSquareConverter());

            var stringWriter = new StringWriter(new StringBuilder(256), CultureInfo.InvariantCulture);

            using var jsonTextWriter = new JsonTextWriter(stringWriter)
                  {
                      Formatting = serializer.Formatting
                  };
            try
            {
                serializer.Serialize(jsonTextWriter, obj, null);
            }
            catch (Exception)
            {
                if (settings.TraceWriter != null)
                {
                    Console.WriteLine(settings.TraceWriter);
                }
                throw;
            }

            if (debugTrace == SerializeDebugLevel.Always)
            {
                Console.WriteLine(settings.TraceWriter);
            }

            return(stringWriter.ToString());
        }