Atributo nos membros da interface não funciona
Na minha aplicação vários modelos precisamPassword
propriedades (por exemplo,Registration
eChangePassword
modelos). oPassword
propriedade tem atributo comoDataType
eRequired
. Portanto, para garantir a reutilização de uma consistência, criei:
interface IPasswordContainer{
[Required(ErrorMessage = "Please specify your password")]
[DataType(DataType.Password)]
string Password { get; set; }
}
E
class RegistrationModel : IPasswordContainer {
public string Password { get; set; }
}
Infelizmente, os atributos não funcionam.
Então eu tentei mudar a interface para uma classe:
public class PasswordContainer {
[Required(ErrorMessage = "Please specify your password")]
[DataType(DataType.Password)]
public virtual string Password { get; set; }
}
E
public class RegistrationModel : PasswordContainer {
public override string Password { get; set; }
}
Agora está funcionando. Por que isso é assim?
Por que os atributos estão funcionando quando herdados da classe, mas não estão funcionando quando herdados da interface?