Je veux définir un sérialiseur de contrat uniquement pour certains types de mon application ASP.NET Web API. Je peux définir les paramètres globalement dans l'app_start / formatterconfig.cs comme ceci: ... p> mais comment puis-je simplement appliquer ceci à une ou plusieurs catégories spécifiques les types? P> La raison pour laquelle je veux faire ceci est parce que je dois pouvoir définir les champs serialisés à l'exécution en fonction de la configuration ou des paramètres du service Web similaire à ces exemples: P>
3 Réponses :
Vous avez quelques options: p>
Votre première option m'a amené à créer un JSON personnalisé qui est plus bas niveau qu'un formateur, mais je n'ai pas pu comprendre comment spécifier un formateur pour un type particulier.
J'essaierais de créer quelque chose comme celui-ci puis insérez-le dans le début de la collection Formatters p> p>
Il semble seulement choisir le formateur une fois par demande sur la base du type de l'objet racine qui est sérialisé. Cela ne fonctionnera pas dans mon cas car j'ai un objet wrapper que je ne veux pas appliquer les paramètres.
J'ai fini par utiliser un Jsonconverter qui écrit uniquement les paramètres spécifiés dans la liste "Propriétés". C'est plus bas niveau qu'un contractrésolver ou un formateur, mais je ne pense pas qu'il soit possible de configurer l'un ou l'autre de configurer un pour un type spécifique.
[JsonConverter(typeof(ResourceConverter))]