利用特性功能实现简易的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();
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。