Annotering av standardverdidata for tom matrise

stemmer
25

Jeg oppretter et .NET Core Web API og vil ringe et sluttpunkt som sender inn en kundeordre. Kunde-ID kommer som en ruteparameter. I forespørselsorganet er det mulig å sende en rekke objekter. Hvert objekt inneholder produkt-ID og mengde. Men dette feltet er valgfritt, tomme ordrer er også mulig (produkter kan legges til senere).

Så jeg startet med denne DTO

public class CreateCustomerOrderByIdDto
{
    [FromRoute]
    public uint Id { get; set; }

    [FromBody]
    public OrderPosition[] OrderPositions { get; set; }
}

public class OrderPosition
{
    [Range(1, uint.MaxValue)]
    public uint ProductId { get; set; }

    [Range(1, uint.MaxValue)]
    public uint Amount { get; set; }
}

Denne forespørselen DTO bør gjøre OrderPositions felt valgfritt, men når du legger til et element, kreves begge egenskapene for det elementet. Jeg vil angi en standardverdi for OrderPositions hvis jeg mangler så trodde jeg at denne annotasjonen ville gjøre det

[DefaultValue(new OrderPosition[0])]

Dessverre får jeg denne feilmeldingen

Et attributtargument må være et konstant uttrykk, 'typeof ()' -uttrykk eller array-opprettelsesuttrykk for en attributtparametertype

Så hvordan markerer du det feltet som valgfritt og angir en standardverdi?

Publisert på 04/06/2020 klokken 23:02
kilden bruker
På andre språk...                            

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more