Standaardwaarde data annotatie voor lege array

stemmen
0

Ik maak een .NET Core Web API aan en wil een eindpunt bellen om een bestelling van een klant te plaatsen. De klant id komt als een route parameter. In de request body is het mogelijk om een reeks van objecten te versturen. Elk object bevat de product id en de hoeveelheid ervan. Maar dit veld is optioneel, ook lege orders zijn mogelijk (producten kunnen later worden toegevoegd).

Dus ik begon met deze 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; }
}

Dit verzoek DTO moet het OrderPositionsveld optioneel maken, maar bij het toevoegen van een item zijn beide eigenschappen vereist voor dat item. Ik wil een standaardwaarde instellen voor OrderPositionsals er iets ontbreekt, dus ik dacht dat deze data-annotatie het zou doen

[DefaultValue(new OrderPosition[0])]

Helaas krijg ik deze foutmelding

Een attribuutargument moet een constante uitdrukking zijn, 'typef(()' expressie of array-aanmaak expressie van een attribuutparametertype

Hoe markeert u dat veld als optioneel en stelt u een standaardwaarde in?

De vraag is gesteld op 04/06/2020 om 23:02
bron van user
In andere talen...                            

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