0

Address フィールドを含む Customer クラスがあります。私が調査したことから、次のいずれかの属性を使用できます。

public class Customer{
   //...
   [Required]
   public Address CustomerAddress { get; set; }
} 

または別の方法:

public class AddressSettings{
   public bool AddressRequired { get; set; }
   //...other settings
}

どちらの方法も有効なアプローチですか? そうでない場合、他の方法が優れているのはなぜですか?

4

2 に答える 2

2

私の意見では、属性を使用することはより優れており、より専門的であり、属性を使用することはより読みやすく、より柔軟で、管理が容易であり、すぐに使用できる機能がたくさんあります。

于 2013-09-07T05:11:49.153 に答える
1

基本的な検証については、DataAnnotations を使用したほうがよいでしょう。

別のオプションはFluentValidation です(これを強くお勧めします)

検証用に別のクラスを持つことができますが、ビューモデル プロパティとの厳密に型指定された関連付けを引き続き行うことができます

[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);
    }
}

このアプローチを使用すると、より複雑で豊富な検証ロジックを使用できます。

于 2013-09-07T05:36:20.947 に答える