当前位置: 首页 > news >正文

南阳企业网站制作广东十大网站建设排名

南阳企业网站制作,广东十大网站建设排名,营销型网站制作msgg,万网域名注册AspectCore Project 介绍 什么是AspectCore Project ? AspectCore Project 是适用于Asp.Net Core 平台的轻量级 Aop(Aspect-oriented programming) 解决方案#xff0c;它更好的遵循Asp.Net Core的模块化开发理念#xff0c;使用AspectCore可以更容易构建低耦合、易扩展的We… AspectCore Project 介绍 什么是AspectCore Project ? AspectCore Project 是适用于Asp.Net Core 平台的轻量级 Aop(Aspect-oriented programming) 解决方案它更好的遵循Asp.Net Core的模块化开发理念使用AspectCore可以更容易构建低耦合、易扩展的Web应用程序。 为什么要设计AspectCore ? 在传统.Net Framework和Asp.Net Framework中我们使用Castle DynamicProxy 或者CLR提供的 Remoting.Proxies 可以轻松的实现 Aop 来分离关注点从而降低业务逻辑和基础框架功能的耦合。然而在Asp.Net Core中不仅缺乏细粒度的Aop支持(Middleware和Filter都是Asp.Net Core的内置Aop实现但仅适合在Web层使用)Castle也迟迟未能友好的支持Asp.Net Core。 因此 AspectCore 提供了一个全新的轻量级和模块化的Aop解决方案下面是AspectCore的基本特性 提供抽象的Aop接口基于该接口可以轻松的使用自己的代理类实现替换默认的实现框架不包含IoC也不依赖具体的IoC实现可以使用Asp.Net Core的内置依赖注入或任何兼容 Asp.Net Core的第三方IoC来集成 AspectCore 到 Asp.Net Core 应用程序中高性能的异步拦截器系统灵活的配置系统基于Service的而非基于实现类的切面构造支持跨平台的Asp.Net Core环境 AspectCore Project 架构设计 从上图可以看出AspectCore Abstractions 是AspectCore Project的核心向下通过IoC来集成到Asp.Net Core应用程序中向上提供配置系统动态代理系统模型验证系统以及更多的扩展系统。 目前已完成的组件包括 AspectCore.Lite.Abstractions 提供Aop的抽象接口AspectCore.Lite.Abstractions.Resolution 默认的Aop实现AspectCore.Lite.Container.DependencyInjection AspectCore的DependencyInjection支持AspectCore.Lite.Container.Autofac AspectCore的Autofac支持 在Asp.Net Core应用程序中开始使用AspectCore 启动 Visual Studio。从 File 菜单, 选择 New Project。选择 ASP.NET Core Web Application 项目模版创建新的 ASP.NET Core Web Application 项目。从 Nuget 安装 AspectCore.Lite.Container.DependencyInjection package:PM Install-Package AspectCore.Lite.Container.DependencyInjection -Pre在拦截器系统中AspectCore定义了IInterceptor接口它声明了一个返回值为Task的异步执行方法namespace AspectCore.Lite.Abstractions{public interface IInterceptor{    Task Invoke(IAspectContext context, AspectDelegate next); } }然而在一般情况下可以使用另一个抽象的InterceptorAttribute自定义特性类它实现IInterceptor接口。AspectCore默认实现了基于Attribute的拦截器配置。我们的自定义拦截器看起来像下面这样:public class CustomInterceptorAttribute : InterceptorAttribute{public async override Task Invoke(IAspectContext context, AspectDelegate next){    try{Console.WriteLine(Before service call);         await next(context);}    catch (Exception){Console.WriteLine(Service threw an exception!);         throw;}    finally{Console.WriteLine(After service call);}} }定义ICustomService接口和它的实现类CustomService:public interface ICustomService{ [CustomInterceptor]void Call(); }public class CustomService : ICustomService{public void Call(){Console.WriteLine(service calling...); } }在HomeController中注入ICustomService:public class HomeController : Controller{private readonly ICustomService _service;public HomeController(ICustomService service){_service service; }public IActionResult Index(){_service.Call();    return View(); } }注册ICustomService接着在ConfigureServices中配置创建代理类型的容器:public IServiceProvider ConfigureServices(IServiceCollection services){ services.AddTransientICustomService, CustomService(); services.AddMvc();return new AspectCoreServiceProviderFactory().CreateServiceProvider(services); }有问题反馈如果您有任何问题请提交 Issue 给我们。AspectCore Project 项目地址: https://github.com/aspectcore AspectCore Project 文档地址: https://docs.aspectcore.org(文档在持续更新中..) 原文地址http://www.cnblogs.com/liuhaoyang/p/aspectcore-introduction.html .NET社区新闻深度好文微信中搜索dotNET跨平台或扫描二维码关注
http://www.zqtcl.cn/news/177640/

相关文章:

  • 为什么建设网站很多公司没有网站界面分析
  • 旅游网网站建设的管理大连淘宝网站建设
  • 无锡锡牛网站建设做汽配的外贸网站
  • 黄石公司做网站临湘做网站
  • 网站配色购物网站开发背景需求
  • 河北省建设工程教育网站如何在手机上制作app软件
  • 担保公司网站建设汇报wordpress修改默认域名
  • 网站平台建设需要多少钱html网站标题怎么做的
  • 国外的服务器网站wordpress 博客论坛
  • 多国语言网站模板修改wordpress登录密码
  • 给周杰伦做网站广州免费景点
  • 网站文章不显示淄博网站建设及托管
  • 国外免费建站平面广告设计案例
  • 微信微网站开发价格广西做网站的公司有哪些
  • 做网站内容哪家公司可以做网站
  • 网站后台数据库管理经常浏览不良网站会被记录吗
  • 做加工都在哪个网站推广网络营销外包推广
  • 做英文网站怎么赚钱经典logo设计案例分析
  • 大型建站公司是干嘛的wordpress激活码充值
  • 带后台网站模板wordpress注册模板
  • 济南城乡住房建设厅网站dedecms企业网站
  • 旅游网站怎么做才能被关注园林景观设计公司名字
  • 建站之星网站建设系统事业单位网站登录模板
  • 如何做京东优惠券网站建设银行网站储蓄账户查询密码
  • 月付购物网站建站方维网络科技有限公司
  • 广东外贸网站建设企业手写代码网站
  • 信誉好的菏泽网站建设自己做网站一定要实名吗
  • 头像网站模板长春建工集团官网
  • 微信网站建设费用网站建设评价标准
  • 济宁市建设工程招投标网站购物网站建设图标大全