web-dev-qa-db-fra.com

Type de référence nullable en C # 8 lors de l'utilisation de classes DTO avec un ORM

J'ai activé cette fonctionnalité dans un projet ayant des classes d'objets de transfert de données (DTO), comme indiqué ci-dessous:

public class Connection
    {
        public string ServiceUrl { get; set; }
        public string? UserName { get; set; }
        public string? Password { get; set; }
        //... others 
    }

Mais je reçois l'erreur:

CS8618: La propriété non nullable 'ServiceUrl' n'est pas initialisée. Envisagez de déclarer la propriété comme nullable.

Ceci est une classe DTO, donc je n'initialise pas les propriétés. Ce sera la responsabilité du code initialisant la classe pour s'assurer que les propriétés ne sont pas nulles.

Par exemple, l'appelant peut faire:

var connection = new Connection
{
  ServiceUrl=some_value,
  //...
}

Ma question: comment gérer ces erreurs dans les classes DTO lorsque le contexte de nullité C # 8 est activé?

9
M.Hassan

Une autre chose qui pourrait être utile dans certains scénarios:

[SuppressMessage("Compiler", "CS8618")]

Peut être utilisé au-dessus du membre ou du type entier.


Encore une autre chose à considérer est d'ajouter #nullable disable en haut du fichier pour désactiver la référence nullable pour tout le fichier.

0
Shimmy