実際には .NET Framework 4.5 で追加された検証属性ですが、基本的には ASP.NET でしか使わないので ASP.NET 4.5 という扱いにしておきます。
さて、本題ですが ASP.NET 4.5 から System.ComponentModel.DataAnnotations 名前空間にいくつかの検証属性が追加されていたようです。
System.ComponentModel.DataAnnotations 名前空間 ()
実際に .NET 4 から追加された属性は以下になります。
- BindableTypeAttribute
- 型がバインディングに使用されるか指定する
- CompareAttribute
- 他のプロパティの値と同じか検証する
- CreditCardAttribute
- クレジットカードの番号として正しいか検証する*1
- EmailAddressAttribute
- メールアドレスとして正しいか検証する
- FileExtensionsAttribute
- アップロードされたファイルの拡張子を指定する
- MaxLengthAttribute
- 配列、文字列の最大の長さを指定する
- MinLengthAttribute
- 配列、文字列の最小の長さを指定する
- PhoneAttribute
- 電話番号として正しいか検証する
- UrlAttribute
- URL として正しいか検証する
これらの属性の殆どは、元々 ASP.NET MVC で実装されていたものだったり、MVC Futures で開発がすすめられていたものばかりです。
PhoneAttribute が日本の電話番号の形式に対応しているかなど多少の不安は残りますが、BCL に追加されるのは喜ばしいことかなと思います。
*1:クレジットカードの番号にはチェックデジットが付いてる