C#学习教程:每种类型自定义Json.NET序列化程序设置分享


每种类型自定义Json.NET序列化程序设置

我正在使用ApiController,它使用全局HttpConfiguration类来指定JsonFormatter设置。 我可以非常容易地全局设置序列化设置:

config.Formatters.JsonFormatter.SerializerSettings.PreserveReferencesHandling = PreserveReferencesHandling.Objects; 

问题是并非所有设置都适用于我的项目中的所有类型。 我想为执行多态序列化的特定类型指定自定义TypeNameHandling和Binder选项。

如何在per-type上指定JsonFormatter.SerializationSettings,或者至少在per-ApiController上指定?

根据您上面的评论,以下是每个控制器配置的示例:

上述就是C#学习教程:每种类型自定义Json.NET序列化程序设置分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—猴子技术宅(www.ssfiction.com)

 [MyControllerConfig] public class ValuesController : ApiController 

 [AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = true)] public class MyControllerConfigAttribute : Attribute, IControllerConfiguration { public void Initialize(HttpControllerSettings controllerSettings, HttpControllerDescriptor controllerDescriptor) { //remove the existing Json formatter as this is the global formatter and changing any setting on it //would effect other controllers too. controllerSettings.Formatters.Remove(controllerSettings.Formatters.JsonFormatter); JsonMediaTypeFormatter formatter = new JsonMediaTypeFormatter(); formatter.SerializerSettings.PreserveReferencesHandling = PreserveReferencesHandling.All; controllerSettings.Formatters.Insert(0, formatter); } } 

本文来自网络收集,不代表猴子技术宅立场,如涉及侵权请点击右边联系管理员删除。

如若转载,请注明出处:https://www.ssfiction.com/ckf/1031854.html

发表评论

邮箱地址不会被公开。 必填项已用*标注