我想仅为 ASP.NET Web API 应用程序中的某些类型设置合同序列化程序。我可以在 App_Start/FormatterConfig.cs 中全局设置设置,如下所示:
public static void RegisterGlobalFormatters(MediaTypeFormatterCollection formatters)
{
jsonSerializerSettings.ContractResolver = new CriteriaContractResolver(new List<string>(new string[]{"mdData", "name", "label"}));
...
但我怎样才能将其应用于一种或多种特定的类类型呢?
我想要这样做的原因是因为我需要能够根据类似于以下示例的 Web 服务的配置或参数来设置在运行时应序列化哪些字段:
使用 JSON.net,在基类上下文中使用时,如何防止序列化派生类的属性? https://stackoverflow.com/questions/5872855/using-json-net-how-do-i-prevent-serializing-properties-of-a-derived-class-when
http://json.codeplex.com/discussions/347610 http://json.codeplex.com/discussions/347610
您有几个选择:
- 创建由自定义格式化程序处理的自定义类型。此自定义类型可以(以某种方式)指定哪些字段需要序列化(然后将该信息输入 Json 序列化程序)
- 查看每个控制器的配置(参见here http://blogs.msdn.com/b/jmstall/archive/2012/05/11/per-controller-configuration-in-webapi.aspx) 尝试根据需要设置格式
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)