Προγραμματισμός

Πώς να χρησιμοποιήσετε σχολιασμούς δεδομένων στο C #

Οι σχολιασμοί δεδομένων (διατίθενται ως μέρος του συστήματος. ComponentModel. Χώρος ονομάτων δεδομένωνAnnotations) είναι χαρακτηριστικά που μπορούν να εφαρμοστούν σε τάξεις ή μέλη της τάξης για να καθορίσουν τη σχέση μεταξύ τάξεων, να περιγράψουν τον τρόπο εμφάνισης των δεδομένων στη διεπαφή χρήστη και να καθορίσουν κανόνες επικύρωσης. Αυτό το άρθρο αναφέρεται σε σχολιασμούς δεδομένων, γιατί είναι χρήσιμοι και πώς να τα χρησιμοποιήσετε στις εφαρμογές .NET Core.

Για να εργαστείτε με τα παραδείγματα κώδικα που παρέχονται σε αυτό το άρθρο, θα πρέπει να έχετε εγκαταστήσει το Visual Studio 2019 στο σύστημά σας. Εάν δεν έχετε ήδη αντίγραφο, μπορείτε να κατεβάσετε το Visual Studio 2019 εδώ.

Δημιουργήστε ένα έργο εφαρμογής κονσόλας στο Visual Studio 2019

Πρώτα απ 'όλα, ας δημιουργήσουμε ένα έργο εφαρμογής .NET Core Console στο Visual Studio. Ας υποθέσουμε ότι το Visual Studio 2019 είναι εγκατεστημένο στο σύστημά σας, ακολουθήστε τα βήματα που περιγράφονται παρακάτω για να δημιουργήσετε ένα νέο έργο εφαρμογής .NET Core Console στο Visual Studio.

  1. Εκκινήστε το Visual Studio IDE.
  2. Κάντε κλικ στο "Δημιουργία νέου έργου".
  3. Στο παράθυρο "Δημιουργία νέου έργου", επιλέξτε "Εφαρμογή κονσόλας (.NET Core)" από τη λίστα των προτύπων που εμφανίζονται.
  4. Κάντε κλικ στο Επόμενο.
  5. Στο παράθυρο "Διαμόρφωση του νέου έργου" που εμφανίζεται στη συνέχεια, καθορίστε το όνομα και την τοποθεσία για το νέο έργο.
  6. Κάντε κλικ στο Δημιουργία.

Αυτό θα δημιουργήσει ένα νέο έργο εφαρμογής .NET Core κονσόλας στο Visual Studio 2019. Θα χρησιμοποιήσουμε αυτό το έργο για να εργαστούμε με σχολιασμούς δεδομένων στις επόμενες ενότητες αυτού του άρθρου.

Συμπεριλάβετε το σύστημα. ComponentModel. Χώρος ονομάτων δεδομένωνAnnotations

Για να εργαστείτε με τα δείγματα κώδικα που δίνονται σε αυτό το άρθρο, θα πρέπει να συμπεριλάβετε το Σύστημα. ComponentModel. Χώρος δεδομένων DataAnnotations στο πρόγραμμά σας.

Σημειώστε ότι τα χαρακτηριστικά χρησιμοποιούνται για τον καθορισμό μεταδεδομένων σε μια κλάση ή μια ιδιότητα. Τα χαρακτηριστικά σχολιασμού δεδομένων μπορούν γενικά να ταξινομηθούν στα ακόλουθα:

  • Χαρακτηριστικό επικύρωσης - Χρησιμοποιείται για την επιβολή κανόνων επικύρωσης στις ιδιότητες των οντοτήτων
  • Χαρακτηριστικό οθόνης - Χρησιμοποιείται για τον καθορισμό του τρόπου εμφάνισης των δεδομένων στη διεπαφή χρήστη
  • Χαρακτηριστικό μοντελοποίησης - Χρησιμοποιείται για τον προσδιορισμό της σχέσης που υπάρχει μεταξύ τάξεων

Κατηγορίες χαρακτηριστικών σχολιασμών δεδομένων σε C #

Ο χώρος ονομάτων System.ComponentModel.Annotations περιλαμβάνει πολλές κατηγορίες χαρακτηριστικών που μπορούν να χρησιμοποιηθούν για τον καθορισμό μεταδεδομένων για τις κλάσεις οντοτήτων ή τα στοιχεία ελέγχου δεδομένων. Τα πιο συχνά χρησιμοποιούμενα χαρακτηριστικά περιλαμβάνουν τα ακόλουθα:

  • Έλεγχος ταυτότητας
  • Κλειδί
  • Μέγιστο μήκος
  • Απαιτείται
  • Μήκος συμβολοσειράς
  • Χρονική σήμανση

Παράδειγμα σχολιασμών δεδομένων στο C #

Δημιουργήστε την ακόλουθη τάξη σε ένα αρχείο με το όνομα Author.cs στην εφαρμογή κονσόλας που έχουμε δημιουργήσει νωρίτερα.

δημόσια τάξη Συγγραφέας

    {

[Απαιτείται (απαιτείται ErrorMessage = "{0}")]

[StringLength (50, MinimumLength = 3,

ErrorMessage = "Το όνομα πρέπει να είναι τουλάχιστον 3 χαρακτήρες και το πολύ 50 χαρακτήρες")]

[Τύπος δεδομένων (DataType.Text)]

δημόσια συμβολοσειρά FirstName {get; σειρά; }

[Απαιτείται (απαιτείται ErrorMessage = "{0}")]

[StringLength (50, MinimumLength = 3,

ErrorMessage = "Το επώνυμο πρέπει να είναι τουλάχιστον 3 χαρακτήρες και το πολύ 50 χαρακτήρες")]

[Τύπος δεδομένων (DataType.Text)]

δημόσια συμβολοσειρά LastName {get; σειρά; }

[DataType (DataType.PhoneNumber)]

[Τηλέφωνο]

δημόσια συμβολοσειρά PhoneNumber {get; σειρά; }

[DataType (DataType.EmailAddress)]

[Διεύθυνση ηλεκτρονικού ταχυδρομείου]

δημόσια συμβολοσειρά Email {get; σειρά; }

    }

Το ακόλουθο απόσπασμα κώδικα δείχνει πώς μπορείτε να δημιουργήσετε μια παρουσία της κλάσης Συγγραφέας και να εκχωρήσετε τιμές στις ιδιότητές της.

Συγγραφέας συγγραφέας = νέος Συγγραφέας ();

author.FirstName = "Joydip";

author.LastName = "";

author.PhoneNumber = "1234567890";

author.Email = "[email protected]";

Μπορείτε να γράψετε το ακόλουθο απόσπασμα κώδικα στην κύρια μέθοδο του αρχείου Program.cs για να επικυρώσετε το μοντέλο σας.

ValidationContext konteks = νέο ValidationContext (συγγραφέας, null, null);

Λίστα επικύρωσηςResults = νέα λίστα ();

bool valid = Validator.TryValidateObject (συγγραφέας, πλαίσιο, validationResults, true);

εάν (! ισχύει)

{

foreach (ValidationResult validationΑποτέλεσμα στην επικύρωσηResults)

  {

Console.WriteLine ("{0}", validationResult.ErrorMessage);

  }

}

Το ValidationContext είναι η κλάση που σας παρέχει το πλαίσιο στο οποίο πρέπει να γίνει η επικύρωση. Η στατική μέθοδος TryValidateObject της κλάσης Validator επιστρέφει true εάν η επικύρωση είναι επιτυχής, ψευδώς διαφορετικά. Επιστρέφει επίσης μια λίστα ValidationResults που περιγράφει όλες τις επικυρώσεις που έχουν αποτύχει στο μοντέλο. Τέλος, χρησιμοποιήσαμε έναν βρόχο για να επαναλάβουμε τη λίστα των ValidationResults και να εμφανίσουμε τα μηνύματα σφάλματος στο παράθυρο της κονσόλας.

Η πλήρης λίστα κωδικών δίνεται παρακάτω για την αναφορά σας.

δημόσια τάξη Συγγραφέας

    {

[Απαιτείται (απαιτείται ErrorMessage = "{0}")]

[StringLength (50, MinimumLength = 3,

ErrorMessage = "Το όνομα πρέπει να είναι τουλάχιστον 3 χαρακτήρες και το πολύ 50 χαρακτήρες")]

[Τύπος δεδομένων (DataType.Text)]

δημόσια συμβολοσειρά FirstName {get; σειρά; }

[Απαιτείται (απαιτείται ErrorMessage = "{0}")]

[StringLength (50, MinimumLength = 3,

ErrorMessage = "Το επώνυμο πρέπει να είναι τουλάχιστον 3 χαρακτήρες και το πολύ 50 χαρακτήρες")]

[Τύπος δεδομένων (DataType.Text)]

δημόσια συμβολοσειρά LastName {get; σειρά; }

[DataType (DataType.PhoneNumber)]

[Τηλέφωνο]

δημόσια συμβολοσειρά PhoneNumber {get; σειρά; }

[DataType (DataType.EmailAddress)]

[Διεύθυνση ηλεκτρονικού ταχυδρομείου]

δημόσια συμβολοσειρά Email {get; σειρά; }

    }

Πρόγραμμα τάξης

    {      

static void Main (συμβολοσειρά [] args)

        {

Συγγραφέας συγγραφέας = νέος Συγγραφέας ();

author.FirstName = "Joydip";

author.LastName = ""; // Δεν έχει εισαχθεί τιμή

author.PhoneNumber = "1234567890";

author.Email = "[email protected]";

ValidationContext konteks = νέο ValidationContext

(συγγραφέας, null, null) ·

Λίστα validationResults = νέο

Λίστα();

bool valid = Validator.TryValidateObject

(συγγραφέας, πλαίσιο, validationResults, true);

εάν (! ισχύει)

            {

foreach (Επικύρωση ValidationResultResult in

επαλήθευσηΑποτελέσματα)

                {

Console.WriteLine ("{0}",

validationResult.ErrorMessage);

                }

            }

Κονσόλα.ReadKey ();

        }

    }

Όταν εκτελείτε το πρόγραμμα, θα πρέπει να δείτε το ακόλουθο μήνυμα σφάλματος που εμφανίζεται στο παράθυρο της κονσόλας:

Απαιτείται επώνυμο

Δημιουργήστε ένα προσαρμοσμένο χαρακτηριστικό επικύρωσης στο C #

Για να δημιουργήσετε μια προσαρμοσμένη κατηγορία χαρακτηριστικών επικύρωσης, θα πρέπει να επεκτείνετε την κατηγορία βάσης ValidationAttribute και να παρακάμψετε τη μέθοδο IsValid όπως φαίνεται στο απόσπασμα κώδικα που δίνεται παρακάτω.

[AttributeUsage (AttributeTargets.Property, AllowMultiple = false, Κληρονομικό = λάθος)]

δημόσια τάξη IsEmptyAttribute: ValidationAttribute

 {

δημόσια παράκαμψη bool IsValid (τιμή αντικειμένου)

     {

var inputValue = τιμή ως συμβολοσειρά;

return! string.IsNullOrEmpty (inputValue);

     }

 }

Το παρακάτω απόσπασμα κώδικα δείχνει πώς μπορείτε να χρησιμοποιήσετε το προσαρμοσμένο χαρακτηριστικό για να διακοσμήσετε τις ιδιότητες FirstName και LastName της κλάσης Author.

[IsEmpty (ErrorMessage = "Δεν πρέπει να είναι άδειο ή κενό.")]

δημόσια συμβολοσειρά FirstName {get; σειρά; }

[IsEmpty (ErrorMessage = "Δεν πρέπει να είναι άδειο ή κενό.")]

δημόσια συμβολοσειρά LastName {get; σειρά; }

Οι σχολιασμοί δεδομένων εισήχθησαν αρχικά στο .NET 3.5 ως μέρος του Συστήματος. ComponentModel. Χώρος ονομάτων δεδομένωνAnnotations. Έκτοτε έχουν γίνει μια ευρέως χρησιμοποιούμενη δυνατότητα στο .NET. Μπορείτε να επωφεληθείτε από τους σχολιασμούς δεδομένων για να ορίσετε κανόνες επικύρωσης δεδομένων σε ένα μόνο μέρος και επομένως να αποφύγετε να ξαναγράψετε τον ίδιο κωδικό επικύρωσης ξανά και ξανά.

Σε μια μελλοντική ανάρτηση εδώ, θα δούμε πώς μπορεί να χρησιμοποιηθεί ο σχολιασμός δεδομένων σε εφαρμογές ASP.NET Core MVC για την εκτέλεση επικύρωσης μοντέλου.

Πώς να κάνετε περισσότερα στο C #

  • Πότε να χρησιμοποιήσετε μια αφηρημένη τάξη εναντίον διεπαφής στο C #
  • Πώς να εργαστείτε με το AutoMapper στο C #
  • Πώς να χρησιμοποιήσετε τις εκφράσεις λάμδα στο C #
  • Πώς να συνεργαστείτε με τους αντιπροσώπους Action, Func και Predicate στο C #
  • Πώς να συνεργαστείτε με εκπροσώπους στο C #
  • Πώς να εφαρμόσετε έναν απλό καταγραφέα στο C #
  • Πώς να εργαστείτε με χαρακτηριστικά στο C #
  • Πώς να εργαστείτε με το log4net στο C #
  • Πώς να εφαρμόσετε το μοτίβο σχεδίασης αποθετηρίου στο C #
  • Πώς να εργαστείτε με προβληματισμό στο C #
  • Πώς να εργαστείτε με το σύστημα παρακολούθησης αρχείων στο C #
  • Πώς να εκτελέσετε τεμπέλης αρχικοποίηση στο C #
  • Πώς να εργαστείτε με το MSMQ στο C #
  • Πώς να εργαστείτε με μεθόδους επέκτασης στο C #
  • Πώς να μας εκφράσεις λάμδα στο C #
  • Πότε να χρησιμοποιήσετε την ευμετάβλητη λέξη-κλειδί στο C #
  • Πώς να χρησιμοποιήσετε τη λέξη-κλειδί απόδοσης στο C #
  • Πώς να εφαρμόσετε τον πολυμορφισμό στο C #
  • Πώς να δημιουργήσετε τον δικό σας προγραμματιστή εργασιών στο C #
  • Πώς να εργαστείτε με το RabbitMQ στο C #
  • Πώς να εργαστείτε με μια πλειάδα στο C #
  • Εξερεύνηση εικονικών και αφηρημένων μεθόδων στο C #
$config[zx-auto] not found$config[zx-overlay] not found