Domyślna anotacja danych wartości dla pustej tablicy

głosy
25

Tworzę .NET Core Web API i chcę zadzwonić do punktu końcowego składającego zamówienie klienta. Identyfikator klienta pojawia się jako parametr trasy. W treści zgłoszenia można wysłać tablicę obiektów. Każdy obiekt zawiera identyfikator produktu oraz jego ilość. Ale to pole jest opcjonalne, możliwe są również puste zamówienia (produkty mogą być dodawane później).

Zacząłem więc od tego 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; }
}

To żądanie DTO powinno uczynić OrderPositionspole opcjonalnym, ale przy dodawaniu elementu obie właściwości są wymagane dla tego elementu. Chcę ustawić domyślną wartość, OrderPositionsjeśli jej brakuje, więc pomyślałem, że ta adnotacja danych to zrobi

[DefaultValue(new OrderPosition[0])]

Niestety otrzymuję ten komunikat o błędzie

Argument atrybutu musi być stałym wyrażeniem, typeof() wyrażenie lub tworzenie tablicy wyrażenie typu parametru atrybutu

Jak więc zaznaczyć to pole jako opcjonalne i ustawić wartość domyślną?

Utwórz 04/06/2020 o 23:02
źródło użytkownik
W innych językach...                            

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