Kalıtım sınıfının öznitelik özelliğini alacak bir yöntem uygulamak istediğim soyut bir taban sınıfım var. Böyle bir şey ...Alt sınıfın alt sınıfından "Tür" alt sınıfı nasıl elde edilir
public abstract class MongoEntityBase : IMongoEntity {
public virtual object GetAttributeValue<T>(string propertyName) where T : Attribute {
var attribute = (T)typeof(this).GetCustomAttribute(typeof(T));
return attribute != null ? attribute.GetType().GetProperty(propertyName).GetValue(attribute, null) : null;
}
}
Ve şöyle Uygulanan ... Bu bir beton sınıfı olmadığı için
[MongoDatabaseName("robotdog")]
[MongoCollectionName("users")]
public class User : MonogoEntityBase {
public ObjectId Id { get; set; }
[Required]
[DataType(DataType.EmailAddress)]
public string email { get; set; }
[Required]
[DataType(DataType.Password)]
public string password { get; set; }
public IEnumerable<Movie> movies { get; set; }
}
Fakat yukarıdaki kodu GetCustomAttribute()
ile tabii
Soyut sınıftaki typeof(this)
, miras sınıfına erişebilmek için ne olmalıdır? Veya bu iyi bir uygulama değil mi ve miras sınıfındaki yöntemi tamamen mi uygulamalıyım?
Kullanıcı 'MongoEntityBase'den miras almamalıdır? –
Haklısın, teşekkürler. Onardım – bflemi3