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 我 ... 
随机推荐
- POJ 3281 网络流 拆点保证本身只匹配一对食物和饮料
			如何建图? 最开始的问题就是,怎么表示一只牛有了食物和饮料呢? 后来发现可以先将食物与牛匹配,牛再去和饮料匹配,实际上这就构成了三个层次. 起点到食物层边的容量是1,食物层到奶牛层容量是1,奶牛层到饮 ... 
- 利用pwdx查看Linux程序的工作目录
			Linux中的pwdx命令,利用进程号作为参数,可以打印出指定进程号的工作目录,帮助我们区分不同的进程. pwdx <pid> [hnyundev@BJ03000036 ~]$ pwd 3 ... 
- [eclipse相关] 001 - 启动+运行优化
			本随笔参考了其他博客内容,且在验证有效之下才或誊抄或摘录或加上自己经验组合而成. 参考博客: 1,http://zwd596257180.gitee.io/blog/2019/04/17/eclips ... 
- jvm(1)性能监控-linux相关命令
			top命令能够实时显示系统中各个进程的资源占用情况,其输出信息分为两部分,前半部分为系统统计信息,后半部分是进程信息. 第一行是任务队列信息,它的结果等同于uptime命令. 第二行是进程统计信息: ... 
- Numpy Ndarray对象1
			标准安装的Python中用列表(list)保存一组值,可以用来当作数组使用,不过由于列表的元素可以是任何对象,因此列表中所保存的是对象的指 针.这样为了保存一个简单的[1,2,3],需要有3个指针和三 ... 
- Ride to Office(贪心水题)
			[题目链接] http://noi.openjudge.cn/ch0406/2404/ [算法] 一开始zz了,先按时间排序然后如果速度超过当前男主速度,且在男主到达目的地前超过男主则最终男主和这个人 ... 
- python学习第十二天列表的循环,排序,统计操作方法
			python列表最重要的列表的循环,任何有序列表离不开循环,列表的循环 for in range等关键词,还有列表排序,正序,倒序,还有列表每个元素的最大,最小,统计元素的个数等. 1,列表的循环 ... 
- J	Less taolu
			链接:https://ac.nowcoder.com/acm/contest/338/J来源:牛客网 题目描述 Less taolu, more sincerity. This problem is ... 
- JavaScript代码内部执行顺序
			<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ... 
- 微信小程序(15)--上传图片公用组件(2)
			接下来开始写写上传图片的公用组件,可以自定义上传几张图片. chooseImage文件夹里面的index.wxml和index.js,涉及图片上传,删除,预览. <view class=&quo ... 
