У меня есть класс с несколькими разными классами, и я отправляю информацию в этих классах клиентам, но я не хочу отправлять их всем, поэтому некоторые из них являются частными, некоторые имеют флаг [JsonObject(MemberSerialization.OptIn)]
и т.д.
Однако теперь я хочу сделать резервную копию всех этих объектов, когда мне нужно выключить сервер и каждые 12 часов (я не хочу использовать базу данных), поэтому то, что я хочу сделать (если это возможно), - это заставит JSON.Net Serializer преобразовать объект и весь объект, принадлежащий этому объекту.
Например:
class Foo
{
public int Number;
private string name;
private PrivateObject po = new PrivateObject();
public string ToJSON()
{ /* Serialize my public field, my property and the object PrivateObject */ }
}
Я пробовал этот код (даже если он устарел), но он не сериализует объекты, связанные с моим объектом:
Newtonsoft.Json.JsonSerializerSettings jss = new Newtonsoft.Json.JsonSerializerSettings();
Newtonsoft.Json.Serialization.DefaultContractResolver dcr = new Newtonsoft.Json.Serialization.DefaultContractResolver();
dcr.DefaultMembersSearchFlags |= System.Reflection.BindingFlags.NonPublic;
jss.ContractResolver = dcr;
return Newtonsoft.Json.JsonConvert.SerializeObject(this, jss);