Tümüyle UI ve Doğrulama için birlikte kullanılması gereken çeşitli öznitelikler koleksiyonum var. Örneğin bir döviz alanı için bir UI İpucu, Doğrulama Mantığı ve Görüntü Biçimlendirme eklemeliyim. Sonuç olarak, sınıfım çok kalabalık görünüyor.Veri ek açıklama niteliklerini birleştirin
public class Model
{
[UIHint("Currency")]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:C}")]
[CustomRegularExpression(Currency.ValidationPattern, OnlyOnClientSide = true)]
[SetMetaDataForCustomModelBinder("Currency")]
public double? Cost { get; set; }
[UIHint("Currency")]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:C}")]
[CustomRegularExpression(Currency.ValidationPattern, OnlyOnClientSide = true)]
[SetMetaDataForCustomModelBinder("Currency")]
public double? Profit { get; set; }
}
basit bir özellik olmaya Bütün bu niteliklerin işlevselliği birleştiren bir [Currency]
niteliğini oluşturmak için herhangi bir yolu var mı? Amacım şu oluşturmak olacaktır:
public class Model
{
[Currency] public double? Cost { get; set; }
[Currency] public double? Profit { get; set; }
}
DÜZENLEME: açıklığa kavuşturmak için, ben özel bir özellik oluşturarak denedi, ama bana bu farklı özelliklerin işlevselliğini uygulamak için izin verecek maruz hiçbir arabirimler vardır. ValidationAttribute alt sınıfını yapabilirim, ancak UIHintAttribute alt sınıfını da oluşturamıyorum. Kaybettiğim başka potansiyel çözümler var mı?
ilginç soru Böyle bir şey olacaktır. Bu @DarinDimitrov toprakları –
Tahminimce, Postsharp gibi bir şeye ihtiyacınız olacak ve AOP kullanacaksınız. –
Bunun nasıl olacağını merak ediyorum. Bunu yapabilmek çok isterim – amhed