利用特性功能實現簡易的AOP日誌記錄功能

AOP(面向切面編程,是繼面向對象後的一個升級編程思維,網上有很多更爲詳盡、貼切的解析,不過多的贅述),直接貼代碼,簡單分爲三步: 1.自定義自己的特性:(屬性的這裏注意AttributeUsage這個屬性,很重要) public class TestAttribute : Attribute { public void DoSomething() { Console.WriteLine("我是這個測試特性中的一個方法,可以通過屬性的調用 方式使用我完成類似全局日誌、"+ "邏輯驗證等一系列具有相同實現方式 的模塊或者功能"); } } 2.自定義自己的操作對象: [TestAttribute] //測試對象中使用自己的定義的測試特性 public class TestObject { } 3.調用自定義對象 TestObject obj = new TestObject(); //特性不影響邏輯代碼的運行,加了特性的部分也沒有正常編譯至dll文件中,特性的文件都編譯到metdata中 //使用過程中需用通過反射來獲取 Type type = obj.GetType(); if(type.IsDefined(typeof(TestAttribute),true)) //通過反射查看當前對象是否使用自定義測試特性 { TestAttribute attribute = type.GetCustomAttributes(typeof(TestAttribute), true)[0] as TestAttribute; attribute.DoSomething(); } Console.Read();
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章