.NET C # WebAPI XmlSerialization - PullRequest
0 голосов
/ 26 июня 2018

Я новичок в C # WebAPI и пытаюсь сериализовать XML при возврате данных из API.Ниже приведена модель, которая у меня есть, и XML не сериализуется.Модель сериализуется, однако только имена свойств, а не атрибуты XmlElement в свойствах.Сериализация JSON работает просто отлично, но не XML.

Для возврата данных в действии контроллера я использую Request.CreateResponse<Type>(code, data);

using System;
using System.Collections.Generic;
using System.Xml.Serialization;
using Newtonsoft.Json;

[XmlType("Chapter")]
public class Chapter
{
    [XmlElement("ChapterNumber"), JsonProperty("ChapterNumber")]
    public Int32 number { get; set; }
    [XmlArray("Verses"), XmlArrayItem("Verse"), JsonProperty("Verses")]
    public List<Verse> verses { get; set; }
}

Есть идеи?

1 Ответ

0 голосов
/ 26 июня 2018

Вам необходимо изменить форматер

Возможность 1: изменить формат ввода и вывода

public void ConfigureServices(IServiceCollection services)  
{
    services.AddMvc()
        .AddXmlSerializerFormatters();
}

Возможность 2:Изменить только формат вывода

public void ConfigureServices(IServiceCollection services)  
{
    services.AddMvc(options =>
    {
        options.OutputFormatters.Add(new XmlSerializerOutputFormatter());
    });
}

Примечание:

Вам необходим пакет Microsoft.AspNetCore.Mvc.Formatters.Xml, который должен быть включен в состав Microsoft.AspNetCore.All metapackage

Может быть, эта ссылка поможет вам по дополнительным вопросам: https://andrewlock.net/formatting-response-data-as-xml-or-json-based-on-the-url-in-asp-net-core/

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