Verwende ich DataContractJsonSerializer oder das Json.net in meiner Web-API 2?

nachdem ich das gefragt habeFrage Ich habe versucht, all dieses Serialisierungsmaterial in Web API 2 in den Griff zu bekommen, und ich habe dies gelesenhttp://www.asp.net/web-api/overview/formats-and-model-binding/json-and-xml-serialization

Aber jetzt bin ich verwirrt

1 In meiner webapiconfig habe ich diese Zeilen nicht

var json = GlobalConfiguration.Configuration.Formatters.JsonFormatter;
json.UseDataContractJsonSerializer = true;

Ich gehe also davon aus, dass ich den Json.net-Serializer verwende, der der Standard ist. Trotzdem kann ich den DataContract weiterhin in einer Klasse verwenden und daher werden nur die mit dem DataMember-Attribut dekorierten Eigenschaften serialisiert. Sind diese beiden Annahmen richtig?

2 Wenn ich eine Klasse nicht mit DataContract dekoriere, werden alle Eigenschaften serialisiert. Dies ist sowohl beim Json.net als auch beim DataContractJsonSerializer der Fall

3 Wenn ich (wie in der Frage, die ich verlinkt habe) den Resolver ändere, den der Serializer immer noch verwendet, liegt es daran, dass es sich um das Json.net handelt, oder dass eine Sache nicht mit einer anderen zusammenhängt? denn wenn ich das im Global nutze

var json = GlobalConfiguration.Configuration.Formatters.JsonFormatter;
json.UseDataContractJsonSerializer = true;
json.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();

Auch wenn es kein Problem aufwirft, scheint es es nicht aufzuheben (oder einen benutzerdefinierten ContractResolver zu verwenden).

3 Wenn ich eine Klasse habe, die von einer anderen abgeleitet ist, und die übergeordnete Klasse mit DataContract dekoriere, muss ich die Eigenschaften der untergeordneten Klasse mit DataMember dekorieren, um sie zu serialisieren. Oder mache ich etwas falsch?

Vielen Dank

Antworten auf die Frage(1)

Ihre Antwort auf die Frage