System.ComponentModel.DataAnnotationsを使用する場合は、次のようにすることができます。
public class Customer
{
[StringLength(5)]
public string Name { get; set; }
[StringLength(20)]
public string Phone { get; set; }
[StringLength(30)]
public string Email { get; set; }
[StringLength(30)]
public string Address { get; set; }
}
class Program
{
static void Main(string[] args)
{
Customer c = new Customer
{
Name = "FooBarX",
Phone = "555-5555-33 ext 234",
Email = "foobar@foobar.com",
Address = "1334 foobar ave, foobar CA"
};
var ctx = new ValidationContext(c, null, null);
Validator.ValidateObject(c, ctx,true);
Console.Read();
}
}
この場合、 Validator.ValidateObjectStringLength
は、属性によって適用されるNameフィールドが大きすぎるため、例外をスローします。
Validator.TryValidateObjectを使用して、例外をスローする代わりにエラーのリストを返すこともできます。
検証フレームワークは非常に強力です。文字列には正規表現の検証を使用できます。数値フィールドの範囲検証、さらにはカスタム検証。