首页 > 代码库 > 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面向切面编程
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。