Со ссылкой на Проверка модели я считаю, что гораздо проще проверять модели с помощью атрибутов. Я хочу иметь возможность проверять модели / объекты классов в других шаблонах проектов, таких как консольные приложения, функциональные приложения, приложения Xamarin и настольные приложения, которые не имеют обширной поддержки MVC и по умолчанию не имеют System.ComponentModel.DataAnnotations. Класс ValidationAttribute.
Ниже представлен мой класс модели:
public class User
{
[Unique]//Ensures that the ID is unique
[AlphaNumeric]//Ensures that the ID is alphanumeric
public string ID { get; set; }
//Custom attribute to determine of the name is valid by concatenating the FirstName and LastName
public string FirstName { get; set; }
public string LastName { get; set; }
[CompanyEmail]//Custom attribute to ensure that validates that the email belongs to the company
public string Email { get; set; }
[CountryPhoneNumber]//Custom attribute to ensure that the phone number belongs to a specific country
public string PhoneNumber { get; set; }
[Age]//Custom attribute to ensure that from the Date of birth, only the users above a certain age can be registered
public DateTime DateOfBirth { get; set; }
}
Мне нужна помощь с реализацией всех атрибутов, так как они настраиваются для достижения возможности иметь такую функцию, как показано ниже
public static class Validator
{
public static (bool IsValid, List<string> errors) ValidateModel<T>(T obj)
{
//Implementation of the validator that validates the model of Type T in this case User
}
}
Который я могу вызвать в формате ниже, чтобы получить ответ, который я смогу использовать позже, как показано ниже:
public class Program
{
static void Main(string[] args)
{
var response = Validator.ValidateModel<User>(new User
{
DateOfBirth = DateTime.UtcNow.AddYears(-10),
Email = "randomemail@gmail.com",
FirstName = null,
LastName = "",
ID = "!2sunjsd)9(",
PhoneNumber = "27778596829"
});
}
}
Буду признателен за любые идеи и советы по этому вопросу