RealProxy实现AOP编程(2)
稍微变化一下!注意区别。
Program.cs
class Program
{
static void Main(string[] args)
{
User user = " };
var processor = TransparentProxy.Create(new UserProcessor());
processor.Shopping(user);
Console.ReadLine();
}
}
User.cs
public class User
{
public string Name { get; set; }
public string Password { get; set; }
}
IUserProcessor.cs
public interface IUserProcessor
{
void Shopping(User user);
}
UserProcessor.cs
public class UserProcessor : IUserProcessor
{
public void Shopping(User user)
{
Console.WriteLine("买呀,买呀,买桃子!");
}
}
UserProxyProcessor.cs
class UserProxyProcessor<T> : RealProxy
{
private T processor;
public UserProxyProcessor(T processor) :
base(typeof(T))//不能丢
{
this.processor = processor;
}
public override IMessage Invoke(IMessage msg)
{
PreShopping();
IMethodCallMessage message = (IMethodCallMessage)msg;
object result = message.MethodBase.Invoke(processor, message.Args);
PostShopping();
], , null, message);
}
private void PreShopping()
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("买东西前,判断是否注册了!");
Console.ResetColor();
}
private void PostShopping()
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("买完东西后,写个日志文件!");
Console.ResetColor();
}
}
TransparentProxy.cs
public static class TransparentProxy
{
public static IUserProcessor Create(IUserProcessor obj)
{
var processor = new UserProxyProcessor<IUserProcessor>(obj);
IUserProcessor transparentProxy = (IUserProcessor)processor.GetTransparentProxy();
return transparentProxy;
}
}
RealProxy实现AOP编程(2)的更多相关文章
- RealProxy实现AOP编程(1)
Program.cs class Program { static void Main(string[] args) { User user = " }; var processor = T ...
- .Net中的RealProxy实现AOP
序言 这个AOP要从我们公司的一个事故说起,前段时间公司的系统突然在乌云中出现,数据被泄露的一览无余,乌云上显示是SQL注入攻击.呵,多么贴近生活的一个露洞,可谓是人尽皆知啊.然而却华丽丽的给拉我们一 ...
- 【原】iOS动态性(三) Method Swizzling以及AOP编程:在运行时进行代码注入
概述 今天我们主要讨论iOS runtime中的一种黑色技术,称为Method Swizzling.字面上理解Method Swizzling可能比较晦涩难懂,毕竟不是中文,不过你可以理解为“移花接木 ...
- 使用spring方式来实现aop编程
1:什么是aop? Aspect Oriented Programming 面向切面编程 在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译 ...
- Spring学习笔记之四----基于Annotation的Spring AOP编程
你能使用@Aspect annotation将某个Java类标注为Aspect,这个Aspect类里的所有公有方法都可以成为一个Advice,Spring提供了5个Annotation去将某个方法标注 ...
- 聊Javascript中的AOP编程
Duck punch 我们先不谈AOP编程,先从duck punch编程谈起. 如果你去wikipedia中查找duck punch,你查阅到的应该是monkey patch这个词条.根据解释,Mon ...
- 基于ASP.NET MVC的热插拔模块式开发框架(OrchardNoCMS)--AOP编程
AOP编程在目前来说好像是大家都比较喜欢的.ASP.NET MVC中的Filter就是使用AOP实现的配置器模式.AOP在编码中的应用主要有如下几个方面: 日志记录,跟踪,优化和监控 事务的处理 持久 ...
- struts2.1笔记03:AOP编程和拦截器概念的简介
1.AOP编程 AOP编程,也叫面向切面编程(也叫面向方面):Aspect Oriented Programming(AOP),是目前软件开发中的一个热点,也是Spring框架中的一个重要内容.利用A ...
- Method Swizzling以及AOP编程:在运行时进行代码注入-备用
概述 今天我们主要讨论iOS runtime中的一种黑色技术,称为Method Swizzling.字面上理解Method Swizzling可能比较晦涩难懂,毕竟不是中文,不过你可以理解为“移花接木 ...
随机推荐
- #Deep Learning回顾#之2006年的Science Paper
大家都清楚神经网络在上个世纪七八十年代是着实火过一回的,尤其是后向传播BP算法出来之后,但90年代后被SVM之类抢了风头,再后来大家更熟悉的是SVM.AdaBoost.随机森林.GBDT.LR.FTR ...
- 初学3D Touch
引言 With iOS 9, new iPhone models add a third dimension to the user interface. A user can now press y ...
- RHEL6.6 PXE安装-基于VMWare WorkStation
///////////第一部分:安装安装服务器 1.先安装一台RHEL6.6的服务器A(地址为192.168.139.132),作为安装服务器.这样后面的机器就可以指向这台服务器进行自动安装 2.在A ...
- Linux 命令 find
find命令的基本格式是:find [路径] [选项] [操作]路径是find命令所查找的范围,如用.来表示当前目录,用/来表示根目录,选项用于指定查找条件,如:可以指定按照文件的属主,更改时间文件类 ...
- Service Broker应用(1):简介、同server不同DB间的数据传输
简介:SQL Server Service Broker,以下简称SSB,是一种完全基于MSSQL数据库的数据处理技术,为短时间内处理大量数据提供了一种可靠.稳定.高效的解决方案.一次同步的数据最大可 ...
- Oracle存储过程动态创建临时表/存储过程执行权限问题--AUTHID CURRENT_USER
关于Oracle存储过程执行权限问题的解决 http://blog.sina.com.cn/s/blog_6ceed3280101hvlo.html (2014-04-02 04:06:28) 转载▼ ...
- [WinForm] VS2010发布、打包安装程序
最近用到了VS2010WinForm的程序打包功能,网上发现一篇好帖,在此记录以供日后他人之需. 原文链接地址:http://www.mamicode.com/info-detail-2453.htm ...
- Servlet入门
1.在tomcat中新建一个day01web应用,然后在web应用中新建一个web-inf/classes目录:2.在classes目录中新建一个FirstServlet.java文件:package ...
- Pegasos: Primal Estimated sub-GrAdient Solver for SVM
Abstract We describe and analyze a simple and effective iterative algorithm for solving the optimiza ...
- Integer Break(Difficulty: Easy)
题目: Given a positive integer n, break it into the sum of at least two positive integers and maximize ...