zoukankan      html  css  js  c++  java
  • 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}
    ", 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();
            }
    
        }
    }
  • 相关阅读:
    科学计算和可视化
    利用Python制作GIF图片
    模拟体育竞技分析
    词云(傲慢与偏见)
    词频统计+词云(傲慢与偏见)
    汉诺塔问题
    Python 的turtle笔记
    有进度条的圆周率计算
    Python 第二周练习
    warning: deprecated conversion from string constant to ‘char*’
  • 原文地址:https://www.cnblogs.com/blackice/p/5834357.html
Copyright © 2011-2022 走看看