Я пытаюсь получить выходные данные XML или JSON на основе ввода. Я использовал приведенный ниже код API WEB, но не смог точно выполнить вывод.Как заставить ASP.NET Web API возвращать данные JSON или XML на основе ввода?
public string Get(int id)
{
if (GlobalConfiguration.Configuration.Formatters.XmlFormatter == null)
{
GlobalConfiguration.Configuration.Formatters.Add(GlobalConfiguration.Configuration.Formatters.XmlFormatter);
}
if (GlobalConfiguration.Configuration.Formatters.JsonFormatter == null)
{
GlobalConfiguration.Configuration.Formatters.Add(GlobalConfiguration.Configuration.Formatters.JsonFormatter);
}
if (id == 1)
{
GlobalConfiguration.Configuration.Formatters.Remove(GlobalConfiguration.Configuration.Formatters.JsonFormatter);
GlobalConfiguration.Configuration.Formatters.XmlFormatter.UseXmlSerializer = true;
}
else
{
GlobalConfiguration.Configuration.Formatters.Remove(GlobalConfiguration.Configuration.Formatters.XmlFormatter);
GlobalConfiguration.Configuration.Formatters.JsonFormatter.UseDataContractJsonSerializer = true;
}
return "value";
}
вот подсказка, если вам нужно использовать маршрут вместо QueryString, я создал пользовательский картограф наследования из «MediaTypeMapping» и переопределения «TryMatchMediaType» –
Он не работает для маршрута 'http: // localhost: 49533/api/entity/1? type = xml ' – Marusyk
Работает ли он с HTTP-маршрутизацией, например '[Route (" api/{type}/entity ")]'? – Lucas