如何在Web Api堆栈中替换DataContractResolver?

时间:2014-01-15 12:59:53

标签: wcf asp.net-web-api datacontracts

如果您使用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();

1 个答案:

答案 0 :(得分:0)

如果你想使用XmlSerializer那么

GlobalConfiguration.Configuration.Formatters.XmlFormatter.UseXmlSerializer = true

如果这不符合您的需求,那么

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

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