【发布时间】:2013-07-15 03:05:25
【问题描述】:
我正在使用 ApiController,它使用全局 HttpConfiguration 类来指定 JsonFormatter 设置。我可以很容易地全局设置序列化设置如下:
config.Formatters.JsonFormatter.SerializerSettings.PreserveReferencesHandling = PreserveReferencesHandling.Objects;
问题是并非所有设置都适用于我项目中的所有类型。我想为执行多态序列化的特定类型指定自定义 TypeNameHandling 和 Binder 选项。
如何按类型或至少按 ApiController 指定 JsonFormatter.SerializationSettings?
【问题讨论】:
-
对于基于 apicontroller 的配置,您可以查看 per-controller 配置功能:blogs.msdn.com/b/jmstall/archive/2012/05/11/…。这篇文章很旧,但大部分内容也应该与最新的相关。
-
我尝试按照您的建议使用 IControllerConfiguration 属性来使用每个控制器的配置。我在 Initialize 函数中为 JsonFormatter 指定的设置实际上被请求重用,并被应用于其他控制器。我只将该属性应用于一个特定的控制器。这似乎是一个错误。
标签: c# asp.net-mvc asp.net-web-api json.net