C# 使用KingAOP面向切面编程
Posted 黑冰.org
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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面向切面编程的主要内容,如果未能解决你的问题,请参考以下文章