L'attribut de membres Interface ne fonctionne pas

Dans mon application, plusieurs modèles ont besoin de Password propriétés (par exemple, Registration et ChangePassword modèles). Le Password propriété dispose d'attribut comme DataType et Required. Par conséquent, pour s'assurer de la ré-utilisabilité de cohérence, j'ai créé :

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

Et

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

Malheureusement, les attributs ne fonctionne pas.

Puis j'ai essayé de changer l'interface d'une classe:

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

Et

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

Maintenant, il est de travail. Pourquoi c'est ainsi?

Pourquoi les attributs sont de travail lorsque héritées de la classe, mais ne fonctionne pas lorsque héritée de l'interface?

InformationsquelleAutor Mohayemin | 2012-08-24