【微服务No.3】AOP组件ASPectCore简单使用
2018-06-21 17:30
696 查看
介绍:
AspectCore是.NET标准的基于AOP的跨平台框架【github解释】。主要支持:对方面拦截器,依赖注入集成,Web应用程序,数据验证等的核心支持。
Install-Package AspectCore.Core
引用完dll就可以使用了,我们来创建基本的处理类:ErrorCommandAttribute
介绍就不说了,理论我也知道的不多,直接上代码:
View Code
与正常的使用类方法看出来了:我们new User类的时候不是传统的方式,必须使用组件的CreateClassProxy方法;
微服务——微服务的介绍和目录
微服务——【Consul】服务发现在windows下简单使用(一)
微服务——【polly】微服务故障处理库(二)
微服务——动态代理AspectCore的使用(三)
微服务——网关Ocelot+Consul实现集群轮询(四)
AspectCore是.NET标准的基于AOP的跨平台框架【github解释】。主要支持:对方面拦截器,依赖注入集成,Web应用程序,数据验证等的核心支持。
使用实例:
首先安装dll:Install-Package AspectCore.Core
引用完dll就可以使用了,我们来创建基本的处理类:ErrorCommandAttribute
介绍就不说了,理论我也知道的不多,直接上代码:
static void Main(string[] args) { Console.WriteLine("开始程序"); //User user = new User(); //user.AddAsync(); ProxyGeneratorBuilder proxyGeneratorBuilder = new ProxyGeneratorBuilder(); using (IProxyGenerator proxyGenerator = proxyGeneratorBuilder.Build()) { User p = proxyGenerator.CreateClassProxy<User>(); p.AddAsync(); } Console.ReadLine(); }
View Code
与正常的使用类方法看出来了:我们new User类的时候不是传统的方式,必须使用组件的CreateClassProxy方法;
2018-06-23:
修改拦截器方法:
拦截方法从指定类型扩展为公共方法,自定义类型,这样就可以单独提取出来,不用每一个类型写一个类,可以自动获取到类型,然后可以重复使用:public override async Task Invoke(AspectContext context, AspectDelegate next) { try { Console.WriteLine("AddAsync方法开始前"); await next(context); // 执行被拦截的方法 } catch (Exception) { Console.WriteLine("AddAsync方法出错"); //重复调用示例 ProxyGeneratorBuilder proxyGeneratorBuilder = new ProxyGeneratorBuilder(); using (IProxyGenerator proxyGenerator = proxyGeneratorBuilder.Build()) { var baseClass = context.Proxy; foreach (var item in baseClass.GetType().GetMethods()) { if (item.Name.ToString() == _mess) { MethodInfo methodinfo = baseClass.GetType().GetMethod(_mess); methodinfo.Invoke(baseClass, null); } } } throw; } finally { Console.WriteLine("AddAsync方法结束"); } }
系列目录:
微服务系列文章主要介绍微服务所使用到的一些技术和一些技术示例:微服务——微服务的介绍和目录
微服务——【Consul】服务发现在windows下简单使用(一)
微服务——【polly】微服务故障处理库(二)
微服务——动态代理AspectCore的使用(三)
微服务——网关Ocelot+Consul实现集群轮询(四)
相关文章推荐
- 构建简单的 C++ 服务组件,第 2 部分: 通过服务组件体系结构使用 Python、Ruby 和 Web 服务
- Common FileUpload组件的简单使用
- ASP.NET中使用组件服务(2)
- symbian中活动服务对象的一些简单的使用
- [webservices开发]使用XFire开发一个简单的web服务
- SpringFramework中的AOP简单使用
- 最简单的vb6访问Web服务(WSDL)的组件
- 使用服务组件体系结构构建 SOA 解决方案——第 1 部分
- 使用AOP,在spring中实现简单的性能测试
- J2EE中使用Spring AOP框架和EJB组件
- 使用SPRING AOP框架和EJB组件
- 在ASP.NET AJAX中使用应用程序服务和本地化(1):身份认证组件AuthenticationService
- SpringFramework中的AOP简单使用
- SpringFramework中的AOP简单使用
- SpringFramework中的AOP简单使用
- SpringFramework中的AOP简单使用
- 最简单的vb6访问Web服务(WSDL)的组件
- 一个简单的邮件类[使用jmail组件发送]
- 使用DCOM组件服务操作Excel,权限问题,进程释放问题
- .Net服务组件(ServicedComponent)简介及其使用