C# (.NET) में डेटा सत्यापन: लाइब्रेरीज़, विशेषताएँ और FluentValidation

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

C# (.NET) में डेटा सत्यापन: पूर्ण मार्गदर्शिका

\n

डेटा सत्यापन C# में विश्वसनीय और सुरक्षित अनुप्रयोगों के विकास का एक प्रमुख पहलू है। यह सुनिश्चित करता है कि इनपुट डेटा अपेक्षित प्रारूप, मानों की सीमा और व्यावसायिक नियमों के अनुरूप हो। .NET पारिस्थितिकी तंत्र में सत्यापन के लिए कई शक्तिशाली उपकरण मौजूद हैं: अंतर्निहित System.ComponentModel.DataAnnotations विशेषताओं से लेकर लचीली FluentValidation लाइब्रेरी तक। इस लेख में हम कोड उदाहरणों के साथ दोनों दृष्टिकोणों पर विस्तार से चर्चा करेंगे।

\n\n

1. DataAnnotations के माध्यम से अंतर्निहित सत्यापन

\n

System.ComponentModel.DataAnnotations नामस्थान विशेषताओं का एक सेट प्रदान करता है जिसे मॉडल वर्गों के गुणों पर लागू किया जा सकता है। यह सत्यापन का सबसे सरल और तेज़ तरीका है, विशेष रूप से ASP.NET Core MVC और Blazor में।

\n\n

मुख्य विशेषताएँ:

\n
    \n
  • [Required] — मान null या खाली नहीं हो सकता।
  • \n
  • [StringLength(max)] — स्ट्रिंग की लंबाई की सीमा।
  • \n
  • [Range(min, max)] — संख्यात्मक सीमाओं की जाँच।
  • \n
  • [RegularExpression(pattern)] — रेगुलर एक्सप्रेशन द्वारा जाँच।
  • \n
  • [EmailAddress] — ईमेल सत्यापन।
  • \n
  • [Compare("OtherProperty")] — दो गुणों की तुलना (जैसे, पासवर्ड और पुष्टिकरण)।
  • \n
\n\n

विशेषताओं के साथ मॉडल का उदाहरण:

\n
public class UserRegistrationDto\n{\n    [Required(ErrorMessage = "नाम अनिवार्य है")]\n    [StringLength(50, MinimumLength = 2, ErrorMessage = "नाम में 2 से 50 वर्ण होने चाहिए")]\n    public string FirstName { get; set; }\n\n    [Required(ErrorMessage = "ईमेल अनिवार्य है")]\n    [EmailAddress(ErrorMessage = "अमान्य ईमेल प्रारूप")]\n    public string Email { get; set; }\n\n    [Required]\n    [Range(18, 120, ErrorMessage = "आयु 18 से 120 के बीच होनी चाहिए")]\n    public int Age { get; set; }\n\n    [Required]\n    [DataType(DataType.Password)]\n    public string Password { get; set; }\n\n    [Compare("Password", ErrorMessage = "पासवर्ड मेल नहीं खाते")]\n    public string ConfirmPassword { get; set; }\n}
\n\n

मॉडल की मैन्युअल जाँच:

\n
public static bool ValidateUser(UserRegistrationDto user, out List<ValidationResult> errors)\n{\n    var context = new ValidationContext(user);\n    errors = new List<ValidationResult>();\n    return Validator.TryValidateObject(user, context, errors, validateAllProperties: true);\n}\n\n// उपयोग:\nvar user = new UserRegistrationDto { FirstName = "A", Email = "invalid", Age = 15 };\nif (!ValidateUser(user, out var errors))\n{\n    foreach (var error in errors)\n        Console.WriteLine(error.ErrorMessage);\n}
\n\n

2. FluentValidation — उन्नत सत्यापन

\n

FluentValidation लाइब्रेरी (NuGet: FluentValidation.AspNetCore) फ्लुएंट इंटरफ़ेस के माध्यम से सत्यापन नियमों का वर्णन करने का अधिक लचीला और पठनीय तरीका प्रदान करती है। यह जटिल परिदृश्यों के लिए आदर्श है: सशर्त सत्यापन, कस्टम संदेश, नियम श्रृंखलाएँ और DI कंटेनरों के साथ एकीकरण।

\n\n

NuGet के माध्यम से स्थापना:

\n
dotnet add package FluentValidation.AspNetCore
\n\n

सत्यापनकर्ता का उदाहरण:

\n
using FluentValidation;\n\npublic class UserValidator : AbstractValidator<UserRegistrationDto>\n{\n    public UserValidator()\n    {\n        RuleFor(u => u.FirstName)\n            .NotEmpty().WithMessage("नाम खाली नहीं हो सकता")\n            .Length(2, 50).WithMessage("नाम में 2 से 50 वर्ण होने चाहिए");\n\n        RuleFor(u => u.Email)\n            .NotEmpty().WithMessage("ईमेल अनिवार्य है")\n            .EmailAddress().WithMessage("अमान्य ईमेल प्रारूप");\n\n        RuleFor(u => u.Age)\n            .InclusiveBetween(18, 120).WithMessage("आयु 18 से 120 के बीच होनी चाहिए");                    

अनुशंसाएँ