首页 > 代码库 > C# 使用KingAOP面向切面编程

C# 使用KingAOP面向切面编程

1. 在Nuget中安装KingAOP

2. 日志DEMO

    public class Test : IDynamicMetaObjectProvider    {        [LogAspec]        public void TestMethod()        {            Console.WriteLine("输出正文来呀");            throw new ArgumentNullException("user name could not be null");        }        public DynamicMetaObject GetMetaObject(System.Linq.Expressions.Expression parameter)        {            // need for AOP weaving            return new AspectWeaver(parameter, this);         }    }    public class LogAspec : OnMethodBoundaryAspect    {        public override void OnEntry(MethodExecutionArgs args)        {            Console.WriteLine("OnEntry: Hello KingAOP");        }        public override void OnException(MethodExecutionArgs args)        {            Console.WriteLine("OnException: Hello KingAOP");        }        public override void OnSuccess(MethodExecutionArgs args)        {            Console.WriteLine("OnSuccess: Hello KingAOP");        }        public override void OnExit(MethodExecutionArgs args)        {            Console.WriteLine("OnExit: Hello KingAOP");        }    }    public class LoggingHelper    {        private const String _errLogFilePath = @"D:\log.txt";        public static void WriteLine(String message)        {            var logContent = string.Format("[{0}]{1}\r\n", DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss"), message);            File.AppendAllText(_errLogFilePath, logContent);        }    }

 

3. 调用DEMO

using System;using System.Collections.Generic;using System.Linq;using System.Web;namespace WebApplication2{    class Program    {        static void Main(string[] args)        {            dynamic test = new Test();            try            {                test.TestMethod();            }            catch (Exception ex)            {            }                        Console.Read();        }    }}

 

C# 使用KingAOP面向切面编程