using System.Collections.Generic;
using Newtonsoft.Json.Linq;
using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Serialization;
using System.Diagnostics;
namespace Question34576078
public object BidAutoObject { get; set; }
public bool IsApplied { get; set; }
public bool IsSun { get; set; }
public bool IsMon { get; set; }
public bool IsTue { get; set; }
public bool AM { get; set; }
public bool PM { get; set; }
public bool MIX { get; set; }
public class DefaultAssemblyBinder : DefaultSerializationBinder
public string DefaultAssemblyName { get; private set; }
public DefaultAssemblyBinder(string defaultAssemblyName)
this.DefaultAssemblyName = defaultAssemblyName;
public override Type BindToType(string assemblyName, string typeName)
if (string.IsNullOrEmpty(assemblyName))
assemblyName = DefaultAssemblyName;
return base.BindToType(assemblyName, typeName);
public override void BindToName(Type serializedType, out string assemblyName, out string typeName)
base.BindToName(serializedType, out assemblyName, out typeName);
if (assemblyName == DefaultAssemblyName)
public static void Test()
ConsoleAndDebug.WriteLine("Json.NET version: " + typeof(JsonSerializer).Assembly.FullName);
ConsoleAndDebug.WriteLine("MyClass full name: " + typeof(MyClass).FullName);
ConsoleAndDebug.WriteLine("");
var test = new MyClass { IsApplied = true, BidAutoObject = new CxDays { IsMon = false, IsSun = true, IsTue = false } };
var settings = new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.Auto, Binder = new DefaultAssemblyBinder(typeof(MyClass).Assembly.FullName) };
var json = JsonConvert.SerializeObject(test, Formatting.Indented, settings);
var test2 = JsonConvert.DeserializeObject<MyClass>(json);
ConsoleAndDebug.WriteLine(json);
var json2 = JsonConvert.SerializeObject(test, Formatting.Indented, settings);
ConsoleAndDebug.WriteLine(json2);
public static class ConsoleAndDebug
public static void WriteLine(object s)
public static void Main()
Question34576078.TestClass.Test();