zoukankan      html  css  js  c++  java
  • c#实现AOP

    AOP:面向切面编程,通过预编译方式或运行期动态代理实现程序功能的中统一处理业务逻辑的一种技术,比较常见的场景是:日志记录,错误捕获、性能监控等

    AOP详解:https://www.cnblogs.com/Wolfmanlq/p/6036019.html

    AOP有静态代理动态代理

    c# 通过代理类 实现调用方法时打印日志:

    using System;
    
    namespace TestApp
    {
        class AOPDemo
        {
            // 实体类
            class Business
            {
                public void Test1()
                {
                    int ret = 0;
                    for (int i = 0; i < 1000; i++)
                    {
                        ret += i;
                    }
                    Console.WriteLine("Test1 result:" + ret);
                }
                public void Test2()
                {
                    int ret = 0;
                    for (int i = 0; i < 10000; i++)
                    {
                        ret += i;
                    }
                    Console.WriteLine("Test2 result:" + ret);
                }
            }
            class BusinessProxy:Business
            {
                public void Invoke(string methodName)
                {
                    Console.WriteLine("before execute"); // 打印日志
                    base.GetType().GetMethod(methodName).Invoke(this, null);
                    Console.WriteLine("after execute");
                }
            }
            static void Main()
            {
                var business = new BusinessProxy();
                business.Invoke("Test1");  // 调用方法
                business.Invoke("Test2");
            }
        }
    }

     静态代理需要给每个类添加一个代理类,当实体类过多时 静态代理就不适用了。

  • 相关阅读:
    作业3
    字符串的应用
    java类与对象
    作业
    水仙花数
    java例
    读书笔记(构建之法-11.19)
    补psp进度(11月4号-9号)
    PSP进度(11~16)
    团队项目-约跑软件需求规格说明书
  • 原文地址:https://www.cnblogs.com/LTEF/p/10371238.html
Copyright © 2011-2022 走看看