Annotation des données de la valeur par défaut pour un tableau vide

voix
25

Je suis en train de créer une API Web .NET Core et je veux appeler un terminal qui soumet une commande à un client. L'identifiant du client est un paramètre d'itinéraire. Dans le corps de la requête, il est possible d'envoyer un ensemble d'objets. Chaque objet contient l'identifiant du produit et sa quantité. Mais ce champ est facultatif, les commandes vides sont également possibles (les produits peuvent être ajoutés ultérieurement).

J'ai donc commencé avec ce 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; }
}

Cette demande DTO devrait rendre le OrderPositionschamp facultatif mais lors de l'ajout d'un élément, les deux propriétés sont requises pour cet élément. Je souhaite définir une valeur par défaut pour le champ OrderPositionsif missing, j'ai donc pensé que cette annotation de données pourrait le faire

[DefaultValue(new OrderPosition[0])]

Malheureusement, je reçois ce message d'erreur

Un argument d'attribut doit être une expression constante, typeof() expression ou création de tableau expression d'un paramètre de type attribut

Alors comment marquer ce champ comme facultatif et fixer une valeur par défaut ?

Créé 04/06/2020 à 23:02
source utilisateur
Dans d'autres langues...                            

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