zoukankan      html  css  js  c++  java
  • 各种IoC框架下实现AOP

    .Net AOP(五) 各种IoC框架下实现AOP

    利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率
    主要功能
    日志记录,性能统计,安全控制,事务处理,异常处理等等。
    主要意图
    将日志记录,性能统计,安全控制,事务处理,异常处理等代码从业务逻辑代码中划分出来,通过对这些行为的分离,我们希望可以将它们独立到非指导业务逻辑的方法中,进而改变这些行为的时候不影响业务逻辑的代码
    一个Castle的实现
    
    首先下载Castle.Windsor.dll
    
    自定义Interceptor
    public class MyInterceptor : IInterceptor
        {
            public void Intercept(IInvocation invocation)
            {
                PreProceed(invocation);
                invocation.Proceed();
                PostProceed(invocation);
            }
            public void PreProceed(IInvocation invocation)
            {
                Console.WriteLine("方法执行前");
            }
    
            public void PostProceed(IInvocation invocation)
            {
                Console.WriteLine("方法执行后");
            }
        }
    
    用户注册接口和实现
    public interface IUserProcessor
        {
            void RegUser(User user);
        }
    
        public class UserProcessor : IUserProcessor
        {
            public virtual void RegUser(User user)
            {
                Console.WriteLine("用户已注册。Name:{0},PassWord:{1}", user.Name, user.PassWord);
            }
        }
    客户端调用
    public class Client
        {
            public static void Run()
            {
                try
                {
                    ProxyGenerator generator = new ProxyGenerator();
                    MyInterceptor interceptor = new MyInterceptor();
                    UserProcessor userprocessor = generator.CreateClassProxy<UserProcessor>(interceptor);
                    User user= new User() { Name = "lee", PassWord = "123123123123" };
                    userprocessor.RegUser(user);
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
        }
  • 相关阅读:
    刷新或关闭时调用onbeforeunload
    单词换行问题
    PhpStorm提高效率的使用方法及设置
    高质量代码编写
    数组去重
    HMTL5 本地数据库
    Html5 本地存储
    php array(object) 与xml相互转换
    pwnable.kr之leg
    文件上传漏洞及其绕过
  • 原文地址:https://www.cnblogs.com/jameslif/p/6955969.html
Copyright © 2011-2022 走看看