Używam apiController, który używa globalnej klasy HttpConfiguration do określenia ustawień JsonFormatter. Mogę bardzo łatwo skonfigurować ustawienia serializacji w następujący sposób:Niestandardowe ustawienia serializatora Json.NET na typ
config.Formatters.JsonFormatter.SerializerSettings.PreserveReferencesHandling = PreserveReferencesHandling.Objects;
Problem polega na tym, że nie wszystkie ustawienia dotyczą wszystkich typów w moim projekcie. Chcę określić niestandardowe opcje TypeNameHandling i Binder dla określonych typów wykonujących serializację polimorficzną.
Jak mogę określić JsonFormatter.SerializationSettings na jeden typ lub co najmniej na podstawie ApiController?
Dla konfiguracji opartej apicontroller, można spojrzeć na funkcję konfiguracji per-kontrolera: http : //blogs.msdn.com/b/jmstall/archive/2012/05/11/per-controller-configuration-in-webapi.aspx. ten post jest stary, ale większość rzeczy powinna być odpowiednia także dla najnowszych bitów. –
Próbowałem odwoływać się do konfiguracji kontrolera za pomocą atrybutu IControllerConfiguration, tak jak zasugerowałeś. Ustawienia, które określam w funkcji Initialize dla JsonFormatter, są w rzeczywistości ponownie wykorzystywane przez żądania i są stosowane do innych kontrolerów. Zastosowałem tylko atrybut do jednego konkretnego kontrolera. To wygląda na błąd. –