Atrybut na elementach interfejsu nie działa

W mojej aplikacji potrzeba kilku modeliPassword właściwości (np.Registration iChangePassword modele). ThePassword właściwość ma atrybut podobny doDataType iRequired. Dlatego, aby zapewnić powtarzalność, stworzyłem spójność:

interface IPasswordContainer{
    [Required(ErrorMessage = "Please specify your password")]
    [DataType(DataType.Password)]
    string Password { get; set; }
} 

I

class RegistrationModel : IPasswordContainer {
    public string Password { get; set; }
}

Niestety, atrybuty nie działają.

Następnie próbowałem zmienić interfejs na klasę:

public class PasswordContainer {
    [Required(ErrorMessage = "Please specify your password")]
    [DataType(DataType.Password)]
    public virtual string Password { get; set; }
}

I

public class RegistrationModel : PasswordContainer {
    public override string Password { get; set; }
}

Teraz działa. Dlaczego tak jest?

Dlaczego atrybuty działają, gdy są dziedziczone z klasy, ale nie działają, gdy są dziedziczone z interfejsu?

questionAnswers(1)

yourAnswerToTheQuestion