属性ベースのプログラミングの利点は何ですか?
-
26-09-2019 - |
質問
私は WCF RIA サービスを使用していて、属性を使用したサンプルを見つけました。
[StringLength(10, ErrorMessage="Too long")]
public string FirstName { get; set; }
...
属性は WCF RIA に限定されませんが、次の質問を思い出しました。なぜ宣言型または属性ベースのプログラミングが「昔ながらの方法」で検証ルーチンをコーディングするのに適しているのでしょうか?
ありがとう、
スコット
解決
制約は、コードを実行することなく検出可能であるため。反射を使用すると、これらの制約にアクセスすることができます。
他のヒント
最大のメリットは、再利用性です。それはあなたのMVCアプリとしてだけでなく、一度(名前、必須、正規表現など)を設定し、あなたのWCFのアプリでそれを使用することができるのは素晴らしいことだし、すべての滞在一貫しています。
属性ベースのプログラミングが「昔ながらの方法」の検証より優れているというわけではありません。一般的に:
- 見た目はすっきりしました(少なくとも私にとっては)
- コード検証を配置する場所を見つけるよりも、メソッド/プロパティの上に属性を追加するほうが少し簡単です。
それ以外の場合、両方のアプローチに大きな違いはありません。
属性を使用する際に考慮すべきことの一つは、彼らが発見されているので、あなたがビジネスレベルのクライアント側の検証を追加するためにそれらを使用することができますされます。
所属していません StackOverflow