Castle动态代理拦截
比如现在有一个方法,进行积分奖励
PointAdd
在不改变原来方法的基础上,增加积分奖励的日志
using Castle.DynamicProxy;
public class AuditTraceInterceptor : IInterceptor
{
public void Intercept(IInvocation invocation)
{
var methodInfo = invocation.Method;
if (methodInfo == null)
{
methodInfo = invocation.MethodInvocationTarget;
} var trace = methodInfo.GetCustomAttributes<AuditTraceAttribute>(true).FirstOrDefault(); if (trace != null)
{
var actionLog = new UserActionEntity
{
ApplicationType = "MyApplication",
ProgramId = PageBase.CurrentProgramID,
UserId = BOPageBase.CurrentUser.ID,
ActionType = trace.ActionType,
SessionId = HttpContext.Current.Session.SessionID,
PageRelativeUrl = HttpContext.Current.Request.Url.PathAndQuery,
IpAddress = HttpContext.Current.Request.UserHostAddress
};
var requestURL = HttpContext.Current.Request.Path;
var pageName = requestURL.Substring(requestURL.LastIndexOf("/") + , requestURL.Length - requestURL.LastIndexOf("/") - );
actionLog.PageName = pageName;
LogUtil.CreateLog(LogLevel.Message, $"Method {methodInfo.Name} has been Intercepted");
foreach (var item in invocation.Arguments)
{
LogUtil.CreateLog(LogLevel.Message,item.ToString());
}
} invocation.Proceed(); LogUtil.CreateLog(LogLevel.Message, "Method has been Intercepted Done"); }
}
Castle~动态代理实现对方法的拦截
Castle动态代理拦截的更多相关文章
- ASP.NET Core搭建多层网站架构【9.2-使用Castle.Core实现动态代理拦截器】
2020/01/31, ASP.NET Core 3.1, VS2019, Autofac.Extras.DynamicProxy 4.5.0, Castle.Core.AsyncIntercepto ...
- JavaEE互联网轻量级框架整合开发(书籍)阅读笔记(4):JDK动态代理+拦截器
一.拦截器的理解 学习拦截器之前需要对动态代理和反射有一定的基础. 官方说法: java里的拦截器是动态拦截Action调用的对象.它提供了一种机制可以使开发者可以定义在一个actio ...
- castle动态代理的使用
转自:https://blog.csdn.net/educast/article/details/6565447#动态代理的原理 原理其实很简单,就是在运行时生成新的对象,姑且叫做T,并使T继承自需要 ...
- Aop之使用Castle动态代理实现对方法的拦截
using System; using System.Linq; using Castle.DynamicProxy; namespace AopTest { class AopTest { stat ...
- JDK动态代理和CGLIB动态代理编码
JDK动态代理[接口]: import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import jav ...
- AOP之Castle DynamicProxy 动态代理
这里主要介绍使用castle这个动态代理,在.net一些开源的框架里可以找到它的影子,就连微软的rchard也是使用这个进行方法拦截等可以基于这个进行方法拦截,在这个方面PostSharp算是比较好用 ...
- castle之动态代理
动态代理 DynamicProxy,这里说的动态代理是直接使用Castle.net 中提供的,并非自己实现的,因为别人写的很好,拿着用就行了. 动态代理的工作模式: 一般我们获取一个类型的实例都是通过 ...
- Castle Windsor 的动态代理类如何获取实际类型
问题 在实际开发过程当中我们可能会针对某些类型使用动态代理技术(AOP),注入了一些拦截器进行处理,但是一旦某个类型被动态代理了,那么就会生成一个代理类.这个时候在该类内部使用 GetType() 方 ...
- 【转载】由浅入深分析mybatis通过动态代理实现拦截器(插件)的原理
转自:http://zhangbo-peipei-163-com.iteye.com/blog/2033832?utm_source=tuicool&utm_medium=referral 我 ...
随机推荐
- LeetCode 337. House Robber III 动态演示
每个节点是个房间,数值代表钱.小偷偷里面的钱,不能偷连续的房间,至少要隔一个.问最多能偷多少钱 TreeNode* cur mp[{cur, true}]表示以cur为根的树,最多能偷的钱 mp[{c ...
- 学习:多项式算法----FWT
FWT也称快速沃尔什变换,是用来求多项式之间位运算的系数的.FWT的思想与FFT有异曲同工之妙,但较FFT来说,FWT比较简单. 前言 之前学习FFT(快速傅里叶变换)的时候,我们知道FFT是用来快速 ...
- html5_websql
var db = openDatabase('mydb', '1.0', 'Test DB', 2 * 1024 * 1024); var msg; db.transaction(function ...
- spring security简单教程以及实现完全前后端分离
spring security是spring家族的一个安全框架,入门简单.对比shiro,它自带登录页面,自动完成登录操作.权限过滤时支持http方法过滤. 在新手入门使用时,只需要简单的配置,即可实 ...
- P5445 [APIO2019]路灯(树套树)
P5445 [APIO2019]路灯 转化为平面上的坐标(x,y),set维护连续区间. 用树套树维护矩阵加法,单点查询. 注意维护矩阵差分的时候, $(x,y,v)$是对$(x,y)(n+1,n+1 ...
- NEO4J -模糊查询
模糊查询 match(emp) where emp.name =~'.*haha.*' return emp 现有节点创建关系 MATCH (cust:Customer),(cc:CreditCard ...
- 【JAVA】 01-Java基础知识
链接: 笔记目录:毕向东Java基础视频教程-笔记 GitHub库:JavaBXD33 测试 01-Java基础知识 一.数据类型 基本类型 包装类型 缓存池 二.String 概览 不可变的好处 S ...
- centos 7 命令界面与GUI界面切换
一.需要重启生效 1. 命令模式 systemctl set-default multi-user.target 2. 图形模式 systemctl set-default graph ...
- (转)yum的$releasever真是太反动了
Posted on 2009年 10月9日 by JulyClyde 来看这篇文章的人,大都应该同意<Unix编程艺术>中提到的那些观点吧.今天就给大家看一个反例:yum 的 $relea ...
- 《Spring Boot实战》笔记 (六章)
6.1 基本配置 ........................................................................................... ...