• 各种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;
                }
            }
        }
  • 相关阅读:
    PAT(A) 1065. A+B and C (64bit) (20)
    PAT(A) 1046. Shortest Distance (20)
    PAT(A) 1042. Shuffling Machine (20)
    PAT(A) 1009. Product of Polynomials (25)
    PAT(A) 1002. A+B for Polynomials (25)
    win10开始菜单打不开怎么办?
    排序
    C语言文件读写操作总结
    NO.3 4 章 模拟、算法初步
    POJ2104 K-th Number(归并树)
  • 原文地址:https://www.cnblogs.com/jameslif/p/6955969.html
Copyright © 2020-2023  润新知