Ich verwende einen ApiController, der die globale HttpConfiguration-Klasse verwendet, um die JsonFormatter-Einstellungen anzugeben. Ich kann global Serialisierung Einstellungen wie folgt sehr leicht:Benutzerdefinierte Json.NET-Serializer-Einstellungen pro Typ
config.Formatters.JsonFormatter.SerializerSettings.PreserveReferencesHandling = PreserveReferencesHandling.Objects;
Das Problem ist, dass nicht alle Einstellungen für alle Arten in meinem Projekt anwenden. Ich möchte benutzerdefinierte TypeNameHandling- und Binder-Optionen für bestimmte Typen angeben, die eine polymorphe Serialisierung durchführen.
Wie kann ich JsonFormatter.SerializationSettings pro Typ oder mindestens auf Pro-ApiController-Basis angeben?
Für apicontroller basierte config Sie einen Blick auf pro-Controller-Konfiguration Funktion übernehmen kann: http : //blogs.msdn.com/b/jmstall/archive/2012/05/11/per-controller-configuration-in-webapi.aspx. Dieser Post ist ein alter, aber die meisten Sachen sollten auch für die neuesten Bits relevant sein. –
Ich habe versucht, pro-Controller-Konfiguration mit dem IControllerConfiguration-Attribut, wie Sie vorgeschlagen haben. Die Einstellungen, die ich in der Initialize-Funktion für den JsonFormatter angeben, werden tatsächlich von Anforderungen wiederverwendet und auf andere Controller angewendet. Ich habe das Attribut nur auf einen bestimmten Controller angewendet. Das scheint ein Fehler zu sein. –