Atributo en los miembros de la interfaz no funciona
En mi aplicación varios modelos necesitanPassword
propiedades (por ejemplo,Registration
yChangePassword
modelos). losPassword
propiedad tiene atributos comoDataType
yRequired
. Por lo tanto, para garantizar la reutilización y consistencia, creé:
interface IPasswordContainer{
[Required(ErrorMessage = "Please specify your password")]
[DataType(DataType.Password)]
string Password { get; set; }
}
Y
class RegistrationModel : IPasswordContainer {
public string Password { get; set; }
}
Desafortunadamente, los atributos no funcionan.
Entonces intenté cambiar la interfaz a una clase:
public class PasswordContainer {
[Required(ErrorMessage = "Please specify your password")]
[DataType(DataType.Password)]
public virtual string Password { get; set; }
}
Y
public class RegistrationModel : PasswordContainer {
public override string Password { get; set; }
}
Ahora está funcionando. ¿Por qué es así?
¿Por qué los atributos funcionan cuando se heredan de la clase pero no funcionan cuando se heredan de la interfaz?