如何替换 Web API 堆栈中的 DataContractResolver



如果您使用的是WCF,则有多种不同的方法可以替换DataContractResolver,我想对Web Api做同样的事情。我找到的唯一扩展点是这样的:

GlobalConfiguration.Configuration.Formatters.XmlFormatter.SetSerializer<Person>(new DataContractSerializer(typeof(Person), null, Int32.MaxValue, false, false, null, new TypeNameVersioning()));

我正在寻找(伪代码)行中的东西:

GlobalConfiguration.Configuration.Formatters.XmlFormatter.SetDataContractResolver = new TypeNameVersioning();

如果要使用 XmlSerializer,则

GlobalConfiguration.Configuration.Formatters.XmlFormatter.UseXmlSerializer = true

如果这不能满足您的需求,请执行

GlobalConfinguration.Configuration.Formatters.Clear();
GlobalConfinguration.Configuration.Formatters.Add(new YourOwnFormatterCanGoHere());

还有一点。 我一直使用 Web API,现在已经有好几年了,我很少使用格式化程序。 我返回 HttpResponseMessage 和 HttpContent 的派生版本。 并不是说你应该做同样的事情,只是说在 Web API 中有很多方法可以做事。 格式化程序不是必需的。

相关内容

  • 没有找到相关文章

最新更新