Validation Application Block を使用してカスタムバリデーターを作成しました。その正常に動作します。しかし、同じバリデータに対して設計時のサポートを提供する方法。Enterprise Library Configuration アプリケーション コンソールでこのカスタム バリデータを使用する必要があります。
これはカスタムバリデーターコードです..
[AttributeUsage(AttributeTargets.Property | AttributeTargets.Field)]
public class StringIsNullOrEmptyAttribute : ValueValidatorAttribute
{
protected override Validator DoCreateValidator(Type targetType)
{
return new StringIsNullOrEmpty(this.MessageTemplate, this.Negated);
}
}
public class StringIsNullOrEmpty : ValueValidator<string>
{
public StringIsNullOrEmpty(string messageTemplate, bool negated)
: base(messageTemplate, null, negated)
{
}
protected override void DoValidate(string objectToValidate, object currentTarget, string key, ValidationResults validationResults)
{
if (string.IsNullOrEmpty(objectToValidate) != Negated)
{
LogValidationResult(validationResults, GetMessage(objectToValidate, key), currentTarget, key);
}
}
protected override string DefaultNegatedMessageTemplate
{
get
{
return "Field cannot have a value.";
}
}
protected override string DefaultNonNegatedMessageTemplate
{
get
{
return "Field is required.";
}
}
}