none
Class attribute hakkında RRS feed

  • Soru

  • selamlar,
    bir class'a mecburen bir attributes vermek istiyorum,
    Amacım yeni oluşturulan her sınıfın mutlaka bir atr alması, bu sıfın databaseimdeki hangi şemayı kullandığını sınıf kullanılırken almam gerekiyor. bu atr ye göre sql sorgularımı düzenliyorum.
    ayrıca sınıf interface'den türüyor

    örn:
    [MecburiAtr] // eğer sınıf BaseInterface'den türüyorsa buraya mecburen bir atr gelmesini istiyorum,
    public class Users : BaseInterface

    {
         public int AAA{get;set;}
    }

    harika kodlamalar dilerim...


    • Düzenleyen Serkan Tepe 20 Aralık 2017 Çarşamba 09:19
    20 Aralık 2017 Çarşamba 09:18

Yanıtlar

  • Bildiğim kadarıyla bunu tasarım anında yapamıyorsun. Uygulama çalışırken belirli bir attribute nin uygulanıp uygulanmadığını kontrol ederek o sınıftan bir nesne örneği oluşturulmasını engelleyebilirsin. Bu durumda o attribute uygulanmadan o sınıfın özellikleri fonksiyonları vb. kullanılmaz duruma gelir.  Örneğin

    namespace coreTest
    {
        public class Program
        {
            public static void Main(string[] args)
            {
                Deneme d = null;
                try
                {
                    d = new Deneme();
                    System.Console.WriteLine(d.AA);
                }
                catch (System.Exception)
                {
                    System.Console.WriteLine(d.AA);
                }
            }
    
    
    
    
        }
    
        [Test]
        public class Deneme
        {
            public string AA { get; set; } = "jlkk";
            public Deneme()
            {
                Attribute at = this.GetType().GetCustomAttribute(typeof(TestAttribute));
                if (at == null)
                    throw new Exception("");
            }
        }
    
        public class TestAttribute : Attribute
        {
    
        }
    }

    20 Aralık 2017 Çarşamba 09:59