2013-10-28 7 views
5

複数のプロパティに対して単一のデータ注釈/属性を使用できますか?複数のプロパティを持つ1つのデータアノテーション/属性を使用する方法はありますか?

の代わりに:

[Required] 
public string Name {get;set;} 
[Required] 
public string Something {get; set;} 
[Required] 
public string Everything {get;set;} 

の3つのプロパティの一つの属性:

[Required] 
public string Name {get;set;} 
public string Something {get; set;} 
public string Everything {get;set;} 

私は2番目のコードブロックのみがnullではないに名前を設定しますが、すべての3つのプロパティを作るための方法が存在しているはず1つの[Required]属性でnullでない

答えて

5

これを具体的に行う方法はありません。

入力を最小限に抑え、タイプのすべてのメンバーを検証する単一の属性を追加することを目標とする場合は、カスタム検証属性を作成してそのタイプに適用できます。それは型のすべてのプロパティを引き出してチェックするためにリフレクションを使うことができます。

1

いいえありません。

属性は、各プロパティに明示的に適用する必要があります。

ここに保存したいものがわかりません。コーディング作業は単なるコピー&ペーストであり、必要なフィールドが変更された場合は、変更されたプロパティから属性を追加または削除するのではなく、コードを並べ替える必要があります。

[Required]属性の適用をいつ終了するかをコンパイラはどのように知っていますか?

プロパティの異なるセットに複数の属性がある場合、どのようにコードを整理しますか?