В прошлом успешно использовали атрибут [EmailAddress]
ValidationAttribute (из System.ComponentModel
).
По какой-то причине, когда я передаю ему адрес электронной почты с пробелом в нем (например, test @hotmail.com
) , он не возвращает никаких результатов проверки.
Свойство EmailAddress
находится в базовом классе, и проверяемый объект является производным, но не переопределяет это свойство. В MS Docs я понимаю, что при предоставлении флага bool validateAllProperties
он также проверяет все в базе.
Свойство базового класса: (SalesFile)
[EmailAddress]
public string EmailAddress { get; set; }
Унаследованный класс (SpecificSalesFile) :
public class SpecificSalesFile : SalesFile, IValidatableObject
Код проверки:
var validated = Validator.TryValidateObject(sale, new ValidationContext(sale), res, true);
Где sale
тип SpecificSalesFile
и res
это List<ValidationResult>
. Переменная validated
возвращается к истине, где я ожидал, что она будет ложной. Проверка объекта sale
непосредственно перед проверкой показывает пространство в поле адреса электронной почты.
Следует отметить, что другие свойства возвращают результаты проверки должным образом, но не атрибут EmailAddress.
Как указано Выше я работал над другими проектами, и даже в этом точном сценарии. Что-то мне не хватает или функциональность изменилась?