Конфигурирование Web API

Некоторые важные аспекты настройки Web API.

UseDataContractJsonSerializer

config.Formatters.JsonFormatter.UseDataContractJsonSerializer = true;

Эта настройка устанавливает использование класса DataContractJsonSerializer для сериализации выходных данных и десериализации входных.

Проблема в том, что не все классы корректно обрабатываются этим сериализатором. Например, все ошибки и исключения, при использовании этой настройки, будет возвращатся в виде строки XML.

Результат без использования UseDataContractJsonSerializer:

public class MyCustomController : ApiController
{
    public IHttpActionResult Get()
    {
        return BadRequest("Что-то пошло не так!");
    }
}

// Результат:
// {"Message": "Что-то пошло не так!"}

Результат с использованием UseDataContractJsonSerializer:

public static class WebApiConfig
{
    public static void Register(HttpConfiguration config)
    {
        ...
        config.Formatters.JsonFormatter.UseDataContractJsonSerializer = true;
        ...
    }
}

public class MyCustomController : ApiController
{
    public IHttpActionResult Get()
    {
        return BadRequest("Что-то пошло не так!");
    }
}

// Результат:
// "<Error><Message>Что-то пошло не так!<\/Message><\/Error>"

About the author

Добавить комментарий

Сказать спасибо

Способ платежа:

Подписаться на обновления

Укажите свой e-mail чтобы получать уведомления о новых статьях.

Присоединиться к еще 2 подписчикам