我有一个包含Address字段的Customer类。根据我的研究,我可以使用属性:
public class Customer{
//...
[Required]
public Address CustomerAddress { get; set; }
}
或其他方式:
public class AddressSettings{
public bool AddressRequired { get; set; }
//...other settings
}
两种方式都是有效的方法吗?如果没有,为什么另一种方式更好?
答案 0 :(得分:2)
在我看来,使用属性更好,更专业,使用属性更具可读性,更灵活,更易于管理,并且具有许多开箱即用的功能
答案 1 :(得分:1)
对于基本验证,您最好使用DataAnnotations。
另一种选择是FluentValidation(我强烈推荐)
您可以拥有一个单独的类进行验证,但仍然与您的viewmodel属性具有强类型关联
[Validator(typeof(PersonValidator))]
public class Person {
public int Id { get; set; }
public string Name { get; set; }
public string Email { get; set; }
public int Age { get; set; }
}
public class PersonValidator : AbstractValidator<Person> {
public PersonValidator() {
RuleFor(x => x.Id).NotNull();
RuleFor(x => x.Name).Length(0, 10);
RuleFor(x => x.Email).EmailAddress();
RuleFor(x => x.Age).InclusiveBetween(18, 60);
}
}
使用这种方法,您可以拥有更复杂和丰富的验证逻辑。