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

网站建设重点是什么外贸商城网站开发书

网站建设重点是什么,外贸商城网站开发书,做网站公司cnfg,网站图片怎么做MediatR是一款进程内的消息订阅、发布框架#xff0c;提供了Send方法用于发布到单个处理程序、Publish方法发布到多个处理程序#xff0c;使用起来非常方便。目前支持 .NET Framework4.5、.NET Stardand1.3、.NET Stardand2.0等版本#xff0c;可跨平台使用。要在项目中使用… MediatR是一款进程内的消息订阅、发布框架提供了Send方法用于发布到单个处理程序、Publish方法发布到多个处理程序使用起来非常方便。目前支持 .NET Framework4.5、.NET Stardand1.3、.NET Stardand2.0等版本可跨平台使用。要在项目中使用MediatR首先要添加引用nuget install MediatR在使用MediatR的时候需要设置一个容器来实例化所有的Handler因此我们需要与依赖注入框架结合使用MediatR支持目前主流的依赖注入框架例如Autofac等也可以直接使用 .NET Core 的依赖注入框架。如果使用 .net core的依赖注入将MediatR添加到容器将会很方便services.AddMediatR(typeof(Program).Assembly);如果是多个程序集如果是多个程序集services.AddMediatR(typeof(Program).Assembly, typeof(HelloWorld).Assembly);MediatR有两种消息处理模式Request/Response模式Message将被单个Handler处理可以有返回值Notifictaion模式Message可以被多个Handler处理无返回值Request/Response模式使用起来很简单首先定义Request消息方法如下public class Ping : IRequeststring { }然后定义它的处理程序public class PingHandler : IRequestHandlerPing, string { public Taskstring Handle(Ping request, CancellationToken cancellationToken) { return Task.FromResult(Pong); }}这样就可以了我们在控制台发送Ping消息var response await mediator.Send(new Ping());Console.WriteLine(response);无返回值的消息当处理消息不需要返回值时我们应该使用如下方式定义消息public class Ping : IRequest { }对应的消息处理程序如下public class PingHandler: AsyncRequestHandlerPing { protected override Task Handle(Ping request, CancellationToken cancellationToken) { }}同步的消息处理默认情况下消息的处理都是异步的返回值为Task对象如果你想要同步执行消息需要按下面的方式定义消息处理程序public class PingHandler : RequestHandlerPing, string { protected override string Handle(Ping request) { return Pong; }}这种模式符合CQRS中Command的处理方式一个Command只能有一个Handler因此在使用CQRS时可以参考。Notification 模式Notification模式将消息发布给多个处理程序消息的处理没有返回值。消息的定义public class HelloWorld : INotification{}多个处理程序public class CNReply : INotificationHandlerHelloWorld{ public Task Handle(HelloWorld notification, CancellationToken cancellationToken) { Console.WriteLine($CN Reply: Hello from CN); return Task.CompletedTask; }}public class USReply : INotificationHandlerHelloWorld{ public Task Handle(HelloWorld notification, CancellationToken cancellationToken) { Console.WriteLine($US Reply: Hello from US); return Task.CompletedTask; }}然后通过Publish方法发布消息await mediator.Publish(helloworld);发布策略默认情况下MediatR的消息发布是一个一个执行的即便是返回Task的情况也是使用await等待上一个执行完成后才进行下一个的调用。如果需要使用并行的方法进行调用可以进行定制具体可参考官方示例MediatR.Examples.PublishStrategies多态支持MediatR消息处理程序是支持逆变的例如我们可以定义一个消息监听程序监听所有发布的Notificationpublic class MessageListener : INotificationHandlerINotification{ public Task Handle(INotification notification, CancellationToken cancellationToken) { Console.WriteLine($接收到新的消息{notification.GetType()}); return Task.CompletedTask; }}对于IRequest类型的消息此种方式未验证成功。如果可以的话倒是可以做一个无处理程序的消息的监听也是挺好玩的。异步对于MediatR来说无论是发送IRequest类型消息还是发布INotification类型消息都是异步的。这里需要特别留意即使你使用的是同步的消息处理程序对于消息发布来说都是异步的与你的处理程序是同步或异步无关。参考文档MediatR官方文档原文地址https://www.cnblogs.com/youring2/p/11222297.html.NET社区新闻深度好文欢迎访问公众号文章汇总 http://www.csharpkit.com
http://www.sadfv.cn/news/31951/

相关文章:

  • 如何撤销网站上信息万脑网站建设
  • 深圳哪里有可以做网站跳转的公司wordpress d9
  • 哈尔滨住房城乡建设局网站可画在线设计网站
  • 南桥网站建设网页设计师作品集
  • 石家庄网站设计工作室网上如何推广自己的产品
  • 惠州住房和城乡建设厅网站怎样创建网站根目录
  • dz可以做旅游网站吗广西建设厅官网站
  • 外贸网站域名赏析上饶哪里培训网站建设
  • 网站备案接入商dw做网站背景图片设置
  • 网站及其建设的心得体会将公司网站建设成
  • 怎么上传图片到公司网站网站建设 技术团队
  • 绿植租摆网站建设wordpress 预缓存
  • 建立网站费用较低建设工程资讯哪个网站好
  • 模板手机网站建设多少钱wordpress 加载流程
  • sdcms网站源码多平台发布工具
  • 专业江西网站建设一亩田的网络营销方式
  • 上海做网站建设的公司网站建设中网站需求分析报告
  • 深圳网站建设便捷福州市城乡建设局
  • 网站建设维护是啥意思做的好的国外网站
  • 怎么做自己地网站深圳高端响应式网站
  • 头像网站模板济南手机网站建设公司报价
  • 电子商务网站建设报告如何屏蔽百度广告推广
  • 惠州网站制作找哪家关于加强政务网站建设的通知
  • 注册网站不用手机短信验证的六安网络推广公司
  • 外贸最大电子元器件交易网站网站后台关键词设置
  • 网络运维网站seo指的是什么意思
  • 微商城网站建设咨询佛山网站
  • 做食品网站有哪些内容制作网页最多的图片格式
  • 网站自己推广做百科的网站
  • 怎么用vs2017做asp网站网站微信推广怎么做