Ich verwende die Net20-Bibliothek von Json.NET (v90r1) in Unity3D und ich versuche, Json.NET zu verwenden, um ein Feld vom Typ Typ zu serialisieren.Serialize-Feld vom Typ Typ mit FormatterAssemblyStyle.Simple in Json.NET
Ich habe festgestellt, dass FormatterAssemblyStyle
kann die automatisch generierten Typ Informationen auswirken, aber es scheint nicht Auswirkungen auf Felder, die vom Typ Typ sind. Zum Beispiel:
using Newtonsoft.Json;
using System.Runtime.Serialization.Formatters;
using UnityEngine;
public class Example : MonoBehaviour
{
void Start()
{
var settings = new JsonSerializerSettings() {
Formatting = Formatting.Indented,
TypeNameHandling = TypeNameHandling.All,
TypeNameAssemblyFormat = FormatterAssemblyStyle.Simple,
};
Debug.Log(JsonConvert.SerializeObject(new Foo(), settings));
}
}
public class Foo
{
public System.Type type = typeof(void);
}
Diese im folgenden JSON-String führen wird:
{
"$type": "Foo, Assembly-CSharp",
"type": "System.Void, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
}
Wie Sie sehen können, hat FormatterAssemblyStyle.Simple
für $type
verwendet worden, aber FormatterAssemblyStyle.Full
wurde für type
verwendet.
Dies ist meine gewünschte Ausgabe:
{
"$type": "Foo, Assembly-CSharp",
"type": "System.Void, mscorlib"
}
Wie kann ich beide Arten die gleiche Art und Weise drucken? Ich konnte keine Antwort finden, da sich die meisten Suchergebnisse auf das Serialisieren von privaten Mitgliedern oder das Serialisieren von Klassen mit Typinformationen beziehen, anstatt Klassen zu serialisieren, die Typen enthalten.