AOP因此IOC容器为根本的,以是你的拦截器组件也须要提前被注入到ioc容器里,并且,现在不论是java还是.net,都提倡统一管理工具,而不是用new光降盆工具,这一点也是面向接口编程的一种表示,而你在业务层进行工具通报时,永久依赖的是抽象,而不会依赖详细的实现!
名称由key和value组成
[Caching(CachingMethod.Get, value = \"大众time\"大众)] DateTime GetTime(int id);
当调用为GetTime(1)时,产生的缓存key值如下:

key=\"大众DataSetCache_IUserInfoService_time\"大众value=\"大众id_1\公众添加ioc
builder.RegisterType<CachingBehavior>(); builder.RegisterType<DefaultUserInfoService>() .As<IUserInfoService>() .InstancePerLifetimeScope() .InterceptedBy(typeof(CachingBehavior)) .EnableInterfaceInterceptors();添加拦截器与接口的绑定
// 下面两句表示将CachingBehavior拦截器绑定到接口上 .InterceptedBy(typeof(CachingBehavior)) .EnableInterfaceInterceptors();在方法上添加CachingAttribute特性
[Caching(CachingMethod.Get,value=\公众time\"大众)]DateTime GetTime();
我们可以在接口的方法上添加这个特性,也可以在接口的实现类的方法上添加这个特性,根据缓存的影响程度去添加。如果缓存对接口所有实现都启浸染,就放在接口方法上,反之放在类的方法上。
缓存get,remove的浸染get:一样平常浸染在带有返回值的方法上,缓存名称为项目名+类名+value,当缓存存在时,直接返回,当不存在时,实行方法后,把返回值存入缓存,再返回。remove:删除某个缓存,它直接把缓存名称value作为remove的参数注入。