Mit dem folgenden TestklasseSet Default für Farbe mit JSON.Net
public class Test {
[DefaultValue("Black")]
public Color ForeColor = Color.Black;
}
und die folgenden Serialisierungscode:
var test = new Test();
var json = JsonConvert.SerializeObject(test, Newtonsoft.Json.Formatting.None,
new JsonSerializerSettings {
NullValueHandling = NullValueHandling.Ignore,
DefaultValueHandling = DefaultValueHandling.Ignore
});
ich
{"ForeColor":"Black"}
Gibt es eine (einfache) Möglichkeit, dass eine Color-Eigenschaft nicht serialisiert wird, wenn sie mit einem angegebenen Standardwert übereinstimmt.
ich genau diesen Code lief und bekam { "ForeColor": "0, 0, 0, 255"} als Ausgang, irgendwelche Ideen, was könnte falsch sein? edit: Oh, ich habe die XNA Color Klasse nicht System.Drawing benutzt. –
@JavidPack Funktioniert es jetzt für Sie? Oder fragen Sie, wie man das mit XNA Color macht? – poke
Ja, tut mir leid, ich habe es herausgefunden. Der TypeConverter ist für die XNA Color unterschiedlich, er akzeptiert nur eine Folge von 4 durch Komma getrennten Zahlen: Das ist, was ich am Ende mit: [DefaultValue (typeof (Color), "165,42,42,255"]] –