Не удается получить XML в аргументе контроллера - PullRequest
0 голосов
/ 14 апреля 2019

Я хочу получить в контроллере объект XML, но я всегда получаю нулевой объект.

Похоже, что
XmlDataContractSerializer Вывод Formatter () работает , потому что я могу вывести XML в другом случае, но XmlDataContractSerializer Ввод Formatter ()) не работает ;

Я пытался использовать setupAction.AddXmlDataContractSerializerFormatters ()
или передать аргумент
setupAction.InputFormatters.Add (новый XmlDataContractSerializerInputFormatter ( setupAction )

но ничего не работает

services.AddMvc(setupAction =>
            {
                setupAction.ReturnHttpNotAcceptable = true;
                setupAction.OutputFormatters.Add(new XmlDataContractSerializerOutputFormatter());
                setupAction.InputFormatters.Add(new XmlDataContractSerializerInputFormatter());
            });
 [HttpPost]
        public ActionResult CreateAuthor([FromBody] AuthorForCreationDto author)
        {
            if (author is null)
            {
                return BadRequest();
            }
...
}
public class AuthorForCreationDto
    {
        public string FirstName { get; set; }
        public string LastName { get; set; }
        public DateTimeOffset DateOfBirth { get; set; }
        public string Genre { get; set; }
        public ICollection<BookForCreationDto> Books { get; set; }
        = new List<BookForCreationDto>();
    }

XML

<AuthorForCreationDto xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Library.API.Models">
        <DateOfBirth xmlns:d3p1="http://schemas.datacontract.org/2004/07/System">
            <d3p1:DateTime>1948-03-03T00:00:00Z</d3p1:DateTime>
            <d3p1:OffsetMinutes>0</d3p1:OffsetMinutes>
        </DateOfBirth>
        <FirstName>James</FirstName>
        <Genre>Thriller</Genre>
        <LastName>Ellroy</LastName>
</AuthorForCreationDto>

В почтальоне я устанавливаю приложение Content-Type / xml и приложение Accept / json

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...