Please post questions and issues on Github:
https://github.com/vanthoainguyen/NValidator/issues
NValidator is a lightweight extensible validation library for .NET that support fluent syntax. The implementation and fluent syntax are inspired from the well-known library Fluent Validation. However, I implemented it using Chain of Reponsibility
pattern and made it fully support Dependency Injection for validator classes.
Here is a simple example that can help you to start:
public class UserValidator : TypeValidator<User> { public UserValidator() { RuleFor(user => user.Id) .NotEmpty() .NotNull(); RuleFor(user => user.UserName) .NotNull() .Length(6, 10) .Must(x => !x.Contains(" ")).WithMessage("@PropertyName cannot contain empty string."); RuleFor(user => user.Password) .StopOnFirstError() .NotEmpty() .Length(6, 20) .Must(x => x.Any(c => c >= 'a' && c <= 'z') && x.Any(c => c >= '0' && c <= '9') && x.Any(c => c >= 'A' && c <= 'Z')).WithMessage("@PropertyName must contain both letter and digit."); RuleFor(user => user.Title) .In("MR", "MS", "MRS", "DR", "PROF", "REV", "OTHER"); RuleFor(user => user.FirstName) .NotEmpty().WithMessage("Please specify the first name."); RuleFor(user => user.LastName) .NotEmpty().WithMessage("Please specify the last name."); RuleFor(user => user.Email) .Email(); RuleFor(user => user.Address) .SetValidator<AddressValidator>() .When(x => x != null); } }
The source code repository for this project is on GitHub. The NuGet package "NValidator" is also available.
Please checkout the document and other topics to get started.