Warum gibt mein ASP.Net Core Web API Controller kein XML zurück?

Ich habe den folgenden einfachen Web-API-Controller:

    // GET: api/customers
    [HttpGet]
    public async Task<IActionResult> Get()
        {
        var customers = await uow.Users.GetAllAsync();
        var dto = customers.Select(p => new CustomerDto {Id = p.Id, Email = p.Email, UserName = p.UserName});
        return Ok(dto); // IEnumerable<CustomerDto>
        }

ei Postman setze ich den Accept-Header aufapplication/xml, aber egal was ich versuche, ich kann nur JSON-Daten zurückholen.

Ich habe irgendwo gelesen, dass ich @ hinzufügen muss, um XML zu erhalte[DataContract] und[DataMember] Attribute zu meinem DTO, das jetzt so aussieht:

[DataContract]
public class CustomerDto
    {
    [DataMember]
    public string Id { get; set; }

    [Required]
    [EmailAddress]
    [Display(Name = "Email")]
    [DataMember]
    public string Email { get; set; }

    [Required]
    [Display(Name = "Login Name")]
    [DataMember]
    public string UserName { get; set; }
    }

Ich bin jetzt schon einige Stunden dabei und verstehe einfach nicht, warum es nicht funktioniert. Ich habe es versucht

Aktionsmethode synchron und asynchron machenDie Daten direkt zurückgeben und den Rückgabetyp auf @ setzIEnumerable<CustomerDto>Umwandeln der Sammlung in ein Array anstelle einer ListeReturning anIActionResultEin einzelnes Element anstelle einer Sammlung zurückgeben Ich habe überprüft, ob der Accept-Header in der Anfrage angezeigt wird, indem ich ihn im Debugger untersuchte. Viele "Googeln mit Bing" und Lesen verschiedener Blogs

Erstellen eines neuen WebAPI-Projekts aus der Vorlage und Prüfen, ob dort Inspiration vorhanden ist (nicht wirklich).

Ich erwarte, dass es einfach ist, aber ich kann es nicht sehen ...

Antworten auf die Frage(10)

Ihre Antwort auf die Frage