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

张家口网站建设公司电商网站设计思想

张家口网站建设公司,电商网站设计思想,静态网站提交表单怎么做,北京比较好的网站公司前言上次#xff0c;我们介绍了使用MediatR的Behaviors功能#xff0c;在业务层实现管道模式。(《为什么应该在业务层实现管道模式#xff0c;而不用ASP.NET Core Middleware实现 | 2点原因和实现方式》)但是#xff0c;这种管道有个特点或者说缺点#xff0c;不管你需不需… 前言上次我们介绍了使用MediatR的Behaviors功能在业务层实现管道模式。(《为什么应该在业务层实现管道模式而不用ASP.NET Core Middleware实现 | 2点原因和实现方式》)但是这种管道有个特点或者说缺点不管你需不需要所有请求都要经过管道处理而且处理顺序必须一致。下面我们介绍一种更轻量的实现方式。BrighterBrighter一个命令处理器和调度程序实现支持任务队列的轻量级类库。它的使用方式和MediatR类似同样可以实现业务逻辑和Controller进行隔离。1.引用nuget包创建Web API项目并引用nuget包Paramore.Brighter.AspNetCore。2.定义请求数据添加一个新类DemoCommand实现IRequest接口:public class DemoCommand : IRequest {public Guid Id { get; set; }public string Name { get; set; } }3.实现请求处理程序添加一个新类DemoCommandHandler继承基类RequestHandlerTRequestTRequest对应实现了IRequest接口的类:public class DemoCommandHandler : RequestHandlerDemoCommand {public override DemoCommand Handle(DemoCommand command){Console.WriteLine(DemoQueryHandler执行);return base.Handle(command);} }4.实现APIController没有任何业务逻辑仅将请求通过commandProcessor发送private readonly IAmACommandProcessor _commandProcessor; public WeatherForecastController(IAmACommandProcessor commandProcessor) {_commandProcessor  commandProcessor; }[HttpPost] public void Demo(DemoCommand command) {_commandProcessor.Send(command); }5.添加Brighter配置打开Startup.cs在ConfigureServices方法中添加如下代码services.AddBrighter().HandlersFromAssemblies(typeof(Startup).Assembly);6.运行运行程序访问API地址可以看到输出正常说明请求已通过Brighter发送给请求处理程序处理。实现独立管道Brighter提供了一种被称为俄罗斯套娃的模型可以将多个RequestHandler串联起来执行同一个请求比如为DemoCommandHandler加上LogHandler写日志和ValidateHandler检查请求参数合法性。这就相当于为每个请求处理程序提供了一条独立管道。要实现俄罗斯套娃我们必须创建一个Attribute来继承RequestLoggingAttribute:public class FirstPipelineAttribute: RequestHandlerAttribute {public FirstPipelineAttribute(int step, HandlerTiming timing): base(step, timing){ }public override Type GetHandlerType(){return typeof(FirstPipelineHandler);} }public class FirstPipelineHandlerTRequest : RequestHandlerTRequest where TRequest: class, IRequest {public override TRequest Handle(TRequest request){Console.WriteLine(FirstPipelineHandler执行);return base.Handle(request);} }step 定义在管道中的执行顺序timing 在请求处理程序之前还是之后执行GetHandlerType() 返回具体处理方法的实现同样要继承自RequestHandlerTRequest然后在具体的Handle声明这些Attribute[FirstPipeline(1, HandlerTiming.Before)] [SecondPipeline(2, HandlerTiming.Before, typeof(SecondPipelineHandler))] [SecondPipeline(3, HandlerTiming.After, typeof(ThirdPipelineHandler))] public override DemoCommand Handle(DemoCommand command)可以看到管道的处理顺序和step、timing的设置相同结论通过本文我们可以了解到Brighter可以为每个请求实现独立的管道这样可以更灵活地控制管道执行的内容和顺序。想了解更多内容请关注我的个人公众号”My IO“
http://www.zqtcl.cn/news/206805/

相关文章:

  • 上海网络推广报价seo技术培训机构
  • 在线看免费网站哪个设计培训机构好
  • 网站建设制作确认单网站建设策划书格式及范文
  • framework7做网站如何在社交网站做销售
  • dedecms_v5.6室内装饰设计公司企业网站模板.rarwordpress添加3d地图吗
  • 开发网站的意义百度推广计划
  • 网站设计师网站网站建设从入门到精通pdf
  • 游戏网站建设方案百度文库wordpress调用搜索框
  • 京东物流网站建设特点网站开发与维护岗位说明书
  • 制作一个网站的基本步骤星巴克网站建设ppt
  • 搭建企业网站宽带多大php微信公众号开发教程
  • 国家建设公债拍卖网站新手如何自己建网站
  • 网站建设颊算网站注册界面代码
  • 微信h5网站模板下载百姓网征婚
  • 模板网站和插件有哪些河南第一火电建设公司网站
  • 怎么测网站流量吗网络运维工程师教程
  • 有谁帮做网站网站建设seo合同书
  • 自己做视频网站只能用地址连接专业网站建设效果
  • 重庆网站建设价格费用酒店协会网站集静态模板
  • 会议专题网站建设报价单网站代码在哪里修改
  • 怎么用net123做网站怎么给企业制作网站
  • 网站建设合同模板网页设计团队
  • 做排行的网站淘宝流量平台
  • 用dw怎么做网站后台做一个网站需要怎么做
  • 沧州地区阿里巴巴做网站修改wordpress标题图片
  • 怎么判断网站开发语言互联网推广模式
  • 做电影网站被找版权问题怎么处理网站做的简单是什么意思
  • 九江网站建设网站制作深圳seo优化服务商
  • 上海网站推广珈维做映射后 内网无法通过域名访问网站
  • 太原网站关键词优化常州企业网站建设公司