次のような状況があります: プロパティ BithDay を持つドメイン モデル。年齢 (誕生日に応じて計算されます) が 150 歳未満であることを確認できるようにしたいと考えています。組み込みのバリデーターを使用してそれを行うことはできますか?それとも自分でビルドする必要がありますか? DomainValidator の例を教えてもらえますか?
質問する
329 次
2 に答える
1
次のようなことを試すことができます:
public class Person
{
public DateTime BirthDate { get; set; }
[RangeValidator(0, RangeBoundaryType.Inclusive, 150, RangeBoundaryType.Exclusive,
MessageTemplate="Person must be less than 150 years old.")]
public int Age
{
get { return (DateTime.Now - this.BirthDate).Days / 365; }
}
}
于 2013-10-24T09:53:10.387 に答える
1
を使用しRelativeDateTimeValidator
て、誕生日に基づいて年齢を検証できます。例えば:
public class Person
{
[RelativeDateTimeValidator(-150, DateTimeUnit.Year, RangeBoundaryType.Inclusive,
0, DateTimeUnit.Year, RangeBoundaryType.Ignore,
MessageTemplate="Person must be less than 150 years old.")]
public DateTime BirthDate
{
get;
set;
}
}
// 150 Year old person
Person p = new Person() { BirthDate = DateTime.Now.AddYears(-150) };
var validator = ValidationFactory.CreateValidator<Person>();
ValidationResults vrs = validator.Validate(p);
foreach (ValidationResult vr in vrs)
{
Console.WriteLine(vr.Message);
}
これにより、「人は 150 歳未満である必要があります」と出力されます。
于 2013-10-23T19:03:35.853 に答える