WebApi 使用System.Xml.Serialization.XmlSerializer序列化,
webapi2中,通过
config.Formatters.XmlFormatter.UseXmlSerializer = true;//如果使用System.Xml.Serialization.XmlSerializer,则会出现接收XML信息时无效的问题。
config.Formatters.XmlFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("text/xml"));
config.Formatters.XmlFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("application/xml"));
设置了使用System.Xml.Serialization.XmlSerializer去序列化对象,一直以来都是用户取的时候要求XML,所以,一直没有出问题。今天需要推送的时候推送XML格式,发现一直报
没有可用的 MediaTypeFormatter,无法从媒体类型为“application/xml”的内容中读取类型为“IEnumerable`1”的对象。
如果将config.Formatters.XmlFormatter.UseXmlSerializer = false;就可以接收。因为业务需要,XML序列化的时候不能用默认进行序列,所以,config.Formatters.XmlFormatter.UseXmlSerializer必须设置为true。
真不知道怎么处理了……