Я пытаюсь добавить FluentValidator в свою рабочую службу .net core 3.1. Я создал класс, который будет содержать мои проанализированные файлы CSV.
public partial class Subjects
{
public Guid SubjectId { get; set; }
public string Code { get; set; }
public Guid OrganizationId { get; set; }
public string PreferredName { get; set; }
public string FirstName { get; set; }
public string MiddleName { get; set; }
public string LastName { get; set; }
public DateTime? DateOfBirth { get; set; }
public string Gender { get; set; }
public string LastNameInitial { get; set; }
public string CodeDisplay { get; set; }
public Guid? RaceId { get; set; }
public Guid? MaritalStatusId { get; set; }
public Guid? StatusId { get; set; }
public string Rank { get; set; }
public string Email { get; set; }
public string MobilePhone { get; set; }
public bool MobilePhoneDoNotLeaveMsg { get; set; }
public bool MobilePhoneDoNotText { get; set; }
public string WorkPhone { get; set; }
public bool WorkPhoneDoNotLeaveMsg { get; set; }
}
Затем согласно документации я создаю класс Validation, реализующий интерфейс AbstractValidator:
class SubjectsValidation : AbstractValidator<Subjects>
{
public SubjectsValidation()
{
RuleFor(subject => Subjects.FirstName).NotEmpty();
}
}
Согласно документации, мне нужно добавить правила в конструкторе. Однако, когда я передаю лямбду для правила, я получаю эту ошибку:
Ссылка на объект требуется для нестатического поля, метода или свойства.
Поэтому я изменил конструктор следующим образом:
class SubjectsValidation : AbstractValidator<Subjects>
{
public SubjectsValidation()
{
Subjects subject = new Subjects();
RuleFor(x=>subject.FirstName).NotEmpty();
}
}
Что произошло с ошибкой, но когда я пытаюсь вызвать проверку, я получаю сообщение об ошибке, когда создаю экземпляр объекта для тестирования:
Subjects subject = new Subjects();
subject.FirstName = "John";
SubjectsValidation validator = SubjectsValidation();
Это возвращает сообщение об ошибке, потому что мне пришлось создать новую тему в проверке темы, чтобы она вернула ошибку. Поэтому, следуя инструкциям на сайте, я просто не могу заставить это работать. Как это исправить?
subject => subject.FirstName
- person devNull   schedule 13.11.2020