Атрибут членов интерфейса не работает

В моем приложении нужно несколько моделейPassword свойства (например,Registration а такжеChangePassword модели).Password свойство имеет атрибут какDataType а такжеRequired, Поэтому для обеспечения повторного использования последовательности я создал:

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

А также

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

К сожалению, атрибуты не работают.

Затем я попытался изменить интерфейс на класс:

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

А также

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

Теперь это работает. Почему так?

Why the attributes are working when inherited from class but not working when inherited from interface?

Ответы на вопрос(1)

Ваш ответ на вопрос