私は WCF RIA サービスを使用しており、属性を使用したサンプルに遭遇しました。
[StringLength(10, ErrorMessage="Too long")]
public string FirstName { get; set; }
...
属性は WCF RIA に限定されませんが、疑問を思い出しました: 検証ルーチンを「昔ながらの方法」でコーディングするのに、宣言型または属性ベースのプログラミングが適しているのはなぜですか?
ありがとう、
スコット
私は WCF RIA サービスを使用しており、属性を使用したサンプルに遭遇しました。
[StringLength(10, ErrorMessage="Too long")]
public string FirstName { get; set; }
...
属性は WCF RIA に限定されませんが、疑問を思い出しました: 検証ルーチンを「昔ながらの方法」でコーディングするのに、宣言型または属性ベースのプログラミングが適しているのはなぜですか?
ありがとう、
スコット
コードを実行しなくても制約を発見できるからです。リフレクションを使用すると、これらの制約にアクセスできます。
最大の利点は再利用性です。一度設定すると (名前、必須、正規表現など)、WCF アプリや MVC アプリで使用でき、すべての一貫性が保たれるのは素晴らしいことです。
属性ベースのプログラミングが「昔ながらの方法」の検証よりも優れているというわけではありません。一般に:
それ以外の場合、両方のアプローチに大きな違いはありません。
属性を使用する際に考慮すべきことの 1 つは、属性が検出可能であるため、ビジネス レベルのクライアント側の検証を追加するために使用できることです。