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?