Аннотация данных значений по умолчанию для пустого массива

голоса
25

Я создаю .NET Core Web API и хочу вызвать конечную точку, отправляющую заказ клиента. Идентификатор клиента приходит в качестве параметра маршрута. В теле запроса можно отправить массив объектов. Каждый объект содержит идентификатор продукта и его количество. Но это поле является необязательным, возможны и пустые счета (продукты могут быть добавлены позже).

Поэтому я начал с этого 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; }
}

Этот запрос DTO должен сделать OrderPositionsполе необязательным, но при добавлении элемента для него требуются оба свойства. Я хочу установить значение по умолчанию, OrderPositionsесли оно отсутствует, поэтому я подумал, что эта аннотация данных сделает это

[DefaultValue(new OrderPosition[0])]

К сожалению, я получаю это сообщение об ошибке

Аргументом атрибута должно быть константное выражение 'typeof()' выражение или создание массива выражение типа параметра атрибута

Так как же отметить это поле как необязательное и установить значение по умолчанию?

Задан 04/06/2020 в 23:02
источник пользователем
На других языках...                            

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