Я использую Enterprise Library 6 Validation в WCF. Я создал пользовательский валидатор. Когда я его использую, я указываю MessageTemplate
. Когда ошибка возникает, вместо показа MessageTemplate
отображается сообщение, указанное в DoValidate
пользовательского валидатора.Корпоративная библиотека 6 Проверка для WCF: сообщение об ошибке пользовательского валидатора
валидатора
public sealed class EmailValidatorAttribute : ValidatorAttribute
{
protected override Validator DoCreateValidator(Type targetType)
{
return new EmailValidator();
}
}
public sealed class EmailValidator : Validator
{
public EmailValidator()
: base("Email Validation", "String")
{
}
protected override string DefaultMessageTemplate
{
get { return "Email Validation"; }
}
// This method does the actual validation
public override void DoValidate(object objectToValidate, object currentTarget, string key, ValidationResults validationResults)
{
Regex emailRegex = new Regex(IConnect.DataContract.WCFServiceResources.EmailRegex);
Match match = emailRegex.Match((string)objectToValidate);
if (!match.Success)
{
LogValidationResult(validationResults, "Invalid Email Address.", currentTarget, key);
}
}
}
WCF
[OperationContract]
[FaultContract(typeof(ValidationFault))]
string EmailAddressCheck([EmailValidator(MessageTemplate = "Enter a Valid Email ID.")]string email);
В настоящее время он показывает "Неправильный адрес электронной почты." определено в DoValidate из валидатора кодекса
Но
Я хочу показать "Введите действительный адрес электронной почты ID." определены в MessageTemplate в WCF Кодекса
Как сделать так?