Uygulamanızda çeşitli modellerde Password
özellikleri (ör. Registration
ve ChangePassword
modelleri) gerekir. Password
özelliği, DataType
ve Required
gibi özelliklere sahiptir. Bu nedenle yeniden kullanılabilirlik, bir tutarlılık içinde sağlamak için, benim yarattığım:Arabirim üyeleri üzerinde öznitelik çalışmıyor
interface IPasswordContainer{
[Required(ErrorMessage = "Please specify your password")]
[DataType(DataType.Password)]
string Password { get; set; }
}
Ve
class RegistrationModel : IPasswordContainer {
public string Password { get; set; }
}
Maalesef nitelikleri çalışmaz.
public class PasswordContainer {
[Required(ErrorMessage = "Please specify your password")]
[DataType(DataType.Password)]
public virtual string Password { get; set; }
}
Ve
public class RegistrationModel : PasswordContainer {
public override string Password { get; set; }
}
Şimdi çalışıyor
: Sonra bir sınıfa arayüzü değişiyor çalıştı. Neden böyle?Öznitelik, sınıftan miras alındığında ancak arabirimden miras alındığında çalışmadığında neden çalışıyor?
http://stackoverflow.com/questions/540749/can-ac-sharp-class-inherit-attributes-from-its-interface – KyorCode
http://bradwilson.typepad.com/blog/2011 /08/interface-attributes-class-attributes.html ayrıca yararlı – KyorCode
@KyorCode: Aradığınız ilk yorumu siz yazarken bulamadım. İlgili sorular listesinde bile yok. Bu soruyu hak ettiğiniz sorunun tam olarak aynısı olarak işaretledim. – Mohayemin