タイトルで申し訳ありませんが、この問題に何を使用すればよいかわかりません。
問題は、このような C# アプリケーションでの検証の実装に属性とリフレクションを使用していることです。
public class foo : validationBase
{
[RequiredAttribute("id is required")]
public int id { get; set; }
[RequiredAttribute("name is required")]
public string name { get; set; }
void save()
{
this.IsValid();
//some code
}
void update()
{
this.IsValid();
//some code
}
void delete()
{
// Need some magic here to ignore name attribute's required validation as only id
// is needed for delete operation
this.IsValid();
//some code
}
}
name
削除操作でわかるように、プロパティに必要な検証を検証したくないことに注意してください。単一のプロパティにさらにいくつかの検証属性が存在する可能性があり、1 つの属性の検証が起動されるべきではなく、他の属性の検証が起動されるべきであるという要件が存在する可能性があります。
これを解決するためのビューを提供してください。