1
次のコードに示すように、カスタムバリデーターを使用するモデルクラスがあります。2つの異なるモデルで同じバリデーターを使用する方法
public class Model1
{
[ApplicationIdentifierValidator()]
public Guid ApplicationIdentifier { get; set; }
public string ApplicationName { get; set; }
public string ApplicationType { get; set; }
}
public class ApplicationIdentifierValidator: ValidationAttribute
{
public ApplicationIdentifierValidator() { }
protected override ValidationResult IsValid(object value, ValidationContext context)
{
Model1 model = (Model1)(context.ObjectInstance);
Guid ApplicationIdentifier = model.ApplicationIdentifier;
// Validate ApplicationIdentifier value
return ValidationResult.Success;
}
}
ここで、同じバリデーターを使用する必要がある別のモデルクラスを追加しました。 ApplicationIdentifierValidatorは、モデル2のコンテキストで使用されている場合
public class Model2
{
[ApplicationIdentifierValidator()]
public Guid ApplicationIdentifier { get; set; }
public Guid SystemIdentifier { get; set; }
}
問題はMODEL1
Model1 model = (Model1)(context.ObjectInstance);
同じバリデータを再利用するためのより良いアプローチ何ができるか任意のアイデアにキャストするとき、それが例外をスローしているのですか?