在好例子网,分享、交流、成长!
您当前所在位置:首页Others 开发实例一般编程问题 → 在.NET中实现简单无扩展的中介者模式

在.NET中实现简单无扩展的中介者模式

一般编程问题

下载此实例
  • 开发语言:Others
  • 实例大小:0.15M
  • 下载次数:2
  • 浏览次数:33
  • 发布时间:2024-02-07
  • 实例类别:一般编程问题
  • 发 布 人:chenxiaolan
  • 文件格式:.zip
  • 所需积分:2
 相关标签:

实例介绍

【实例简介】
MediatR提供了一种简洁的方式来实现.NET中的中介者模式,它允许进行进程内消息传递而无需任何外部依赖。该库支持多种类型的消息处理,包括请求/响应、命令、查询、通知和事件,既可以同步也可以异步执行,通过C#泛型变异实现智能分发。
要安装MediatR,您可以通过NuGet或.NET Core命令行接口进行安装。安装后,您可以只引用MediatR的契约包,这对于将MediatR契约与处理程序分离到不同的程序集/项目中的场景非常有用,例如API契约、GRPC契约或Blazor。
此外,MediatR直接支持Microsoft.Extensions.DependencyInjection.Abstractions,可以轻松地将各种MediatR服务和处理程序注册到IServiceCollection中。这包括将IMediator、ISender、IPublisher及其具体实现类注册为瞬态服务,并支持注册行为、流行为、预处理器和后处理器等。
通过这种方式,MediatR使得在.NET应用程序中实现中介者模式变得简单快捷,有助于降低组件间的耦合度,提高代码的可维护性和可扩展性。
【实例截图】
【核心代码】
文件清单
└── MediatR-88c4d73ce514a64a9083aeb8df2e2c3692049b7d
    ├── Build.ps1
    ├── BuildContracts.ps1
    ├── Directory.Build.props
    ├── LICENSE
    ├── MediatR.sln
    ├── MediatR.snk
    ├── NuGet.Config
    ├── Push.ps1
    ├── README.md
    ├── assets
    │   └── logo
    │       ├── flat_128x128.png
    │       ├── flat_32x32.png
    │       ├── flat_64x64.png
    │       ├── gradient_128x128.png
    │       ├── gradient_32x32.png
    │       └── gradient_64x64.png
    ├── samples
    │   ├── MediatR.Examples
    │   │   ├── ConstrainedRequestPostProcessor.cs
    │   │   ├── ExceptionHandler
    │   │   │   ├── Exceptions.cs
    │   │   │   ├── ExceptionsHandlers.cs
    │   │   │   ├── ExceptionsHandlersOverrides.cs
    │   │   │   ├── Handlers.cs
    │   │   │   ├── LogExceptionAction.cs
    │   │   │   ├── Requests.cs
    │   │   │   └── RequestsOverrides.cs
    │   │   ├── GenericHandler.cs
    │   │   ├── GenericPipelineBehavior.cs
    │   │   ├── GenericRequestPostProcessor.cs
    │   │   ├── GenericRequestPreProcessor.cs
    │   │   ├── Jing.cs
    │   │   ├── JingHandler.cs
    │   │   ├── MediatR.Examples.csproj
    │   │   ├── Ping.cs
    │   │   ├── PingHandler.cs
    │   │   ├── Pinged.cs
    │   │   ├── PingedHandler.cs
    │   │   ├── Pong.cs
    │   │   ├── Ponged.cs
    │   │   ├── Runner.cs
    │   │   └── Streams
    │   │       ├── GenericStreamPipelineBehavior.cs
    │   │       ├── Sing.cs
    │   │       ├── SingHandler.cs
    │   │       └── Song.cs
    │   ├── MediatR.Examples.AspNetCore
    │   │   ├── MediatR.Examples.AspNetCore.csproj
    │   │   └── Program.cs
    │   ├── MediatR.Examples.Autofac
    │   │   ├── MediatR.Examples.Autofac.csproj
    │   │   └── Program.cs
    │   ├── MediatR.Examples.DryIoc
    │   │   ├── MediatR.Examples.DryIoc.csproj
    │   │   └── Program.cs
    │   ├── MediatR.Examples.Lamar
    │   │   ├── MediatR.Examples.Lamar.csproj
    │   │   └── Program.cs
    │   ├── MediatR.Examples.LightInject
    │   │   ├── MediatR.Examples.LightInject.csproj
    │   │   └── Program.cs
    │   ├── MediatR.Examples.PublishStrategies
    │   │   ├── AsyncPingedHandler.cs
    │   │   ├── CustomMediator.cs
    │   │   ├── MediatR.Examples.PublishStrategies.csproj
    │   │   ├── Program.cs
    │   │   ├── PublishStrategy.cs
    │   │   ├── Publisher.cs
    │   │   └── SyncPingedHandler.cs
    │   ├── MediatR.Examples.SimpleInjector
    │   │   ├── MediatR.Examples.SimpleInjector.csproj
    │   │   └── Program.cs
    │   ├── MediatR.Examples.Stashbox
    │   │   ├── MediatR.Examples.Stashbox.csproj
    │   │   └── Program.cs
    │   └── MediatR.Examples.Windsor
    │       ├── ContravariantFilter.cs
    │       ├── MediatR.Examples.Windsor.csproj
    │       └── Program.cs
    ├── src
    │   ├── MediatR
    │   │   ├── IMediator.cs
    │   │   ├── INotificationHandler.cs
    │   │   ├── INotificationPublisher.cs
    │   │   ├── IPipelineBehavior.cs
    │   │   ├── IPublisher.cs
    │   │   ├── IRequestHandler.cs
    │   │   ├── ISender.cs
    │   │   ├── IStreamPipelineBehavior.cs
    │   │   ├── IStreamRequestHandler.cs
    │   │   ├── Internal
    │   │   │   ├── HandlersOrderer.cs
    │   │   │   └── ObjectDetails.cs
    │   │   ├── MediatR.csproj
    │   │   ├── Mediator.cs
    │   │   ├── MicrosoftExtensionsDI
    │   │   │   ├── MediatrServiceConfiguration.cs
    │   │   │   ├── RequestExceptionActionProcessorStrategy.cs
    │   │   │   └── ServiceCollectionExtensions.cs
    │   │   ├── NotificationHandlerExecutor.cs
    │   │   ├── NotificationPublishers
    │   │   │   ├── ForeachAwaitPublisher.cs
    │   │   │   └── TaskWhenAllPublisher.cs
    │   │   ├── Pipeline
    │   │   │   ├── IRequestExceptionAction.cs
    │   │   │   ├── IRequestExceptionHandler.cs
    │   │   │   ├── IRequestPostProcessor.cs
    │   │   │   ├── IRequestPreProcessor.cs
    │   │   │   ├── RequestExceptionActionProcessorBehavior.cs
    │   │   │   ├── RequestExceptionHandlerState.cs
    │   │   │   ├── RequestExceptionProcessorBehavior.cs
    │   │   │   ├── RequestPostProcessorBehavior.cs
    │   │   │   └── RequestPreProcessorBehavior.cs
    │   │   ├── Registration
    │   │   │   └── ServiceRegistrar.cs
    │   │   ├── TypeForwardings.cs
    │   │   └── Wrappers
    │   │       ├── NotificationHandlerWrapper.cs
    │   │       ├── RequestHandlerWrapper.cs
    │   │       └── StreamRequestHandlerWrapper.cs
    │   └── MediatR.Contracts
    │       ├── INotification.cs
    │       ├── IRequest.cs
    │       ├── IStreamRequest.cs
    │       ├── MediatR.Contracts.csproj
    │       └── Unit.cs
    └── test
        ├── MediatR.Benchmarks
        │   ├── Benchmarks.cs
        │   ├── DotTraceDiagnoser.cs
        │   ├── GenericPipelineBehavior.cs
        │   ├── GenericRequestPostProcessor.cs
        │   ├── GenericRequestPreProcessor.cs
        │   ├── MediatR.Benchmarks.csproj
        │   ├── Ping.cs
        │   ├── Pinged.cs
        │   └── Program.cs
        └── MediatR.Tests
            ├── CreateStreamTests.cs
            ├── ExceptionTests.cs
            ├── GenericTypeConstraintsTests.cs
            ├── MediatR.Tests.csproj
            ├── MicrosoftExtensionsDI
            │   ├── AssemblyResolutionTests.cs
            │   ├── CustomMediatorTests.cs
            │   ├── DerivingRequestsTests.cs
            │   ├── DuplicateAssemblyResolutionTests.cs
            │   ├── Handlers.cs
            │   ├── NotificationPublisherTests.cs
            │   ├── PipeLineMultiCallToConstructorTest.cs
            │   ├── PipelineTests.cs
            │   ├── StreamPipelineTests.cs
            │   ├── TypeEvaluatorTests.cs
            │   └── TypeResolutionTests.cs
            ├── NotificationHandlerTests.cs
            ├── NotificationPublisherTests.cs
            ├── Pipeline
            │   ├── RequestExceptionActionTests.cs
            │   ├── RequestExceptionHandlerTests.cs
            │   ├── RequestPostProcessorTests.cs
            │   ├── RequestPreProcessorTests.cs
            │   └── Streams
            │       └── StreamPipelineBehaviorTests.cs
            ├── PipelineTests.cs
            ├── PublishTests.cs
            ├── SendTests.cs
            ├── SendVoidInterfaceTests.cs
            ├── ServiceFactoryTests.cs
            ├── StreamPipelineTests.cs
            └── UnitTests.cs

31 directories, 141 files

标签:

实例下载地址

在.NET中实现简单无扩展的中介者模式

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警