MediatR
v12.4.1
.NET에서 간단한 중재자 구현
종속성이 없는 In-process 메시징입니다.
C# 일반 변형을 통한 지능형 디스패칭을 통해 요청/응답, 명령, 쿼리, 알림 및 이벤트, 동기 및 비동기를 지원합니다.
위키의 예.
NuGet을 사용하여 MediatR을 설치해야 합니다.
Install-Package MediatR
또는 .NET Core 명령줄 인터페이스를 통해:
dotnet add package MediatR
패키지 관리자 콘솔 또는 .NET Core CLI의 명령은 MediatR 및 모든 필수 종속성을 다운로드하고 설치합니다.
다음을 포함하는 MediatR에 대한 계약만 참조하려면:
IRequest
(일반 변형 포함)INotification
IStreamRequest
MediatR.Contracts에 패키지 참조 추가
이 패키지는 MediatR 계약이 처리기와 별도의 어셈블리/프로젝트에 있는 시나리오에서 유용합니다. 예시 시나리오는 다음과 같습니다.
IServiceCollection
에 등록 MediatR은 Microsoft.Extensions.DependencyInjection.Abstractions
직접 지원합니다. 다양한 MediatR 서비스 및 핸들러를 등록하려면:
services.AddMediatR(cfg => cfg.RegisterServicesFromAssemblyContaining<Startup>());
또는 어셈블리의 경우:
services.AddMediatR(cfg => cfg.RegisterServicesFromAssembly(typeof(Startup).Assembly));
이는 다음을 등록합니다.
IMediator
ISender
IPublisher
IRequestHandler<,>
임시 구현을 구체적으로 구현IRequestHandler<>
임시 구현의 구체적인 구현INotificationHandler<>
임시 구현의 구체적인 구현IStreamRequestHandler<>
임시 구현을 구체적으로 구현IRequestExceptionHandler<,,>
임시 구현으로서의 구체적인 구현IRequestExceptionAction<,>)
임시 구현으로서의 구체적인 구현이는 또한 다음에 대한 개방형 일반 구현을 등록합니다.
INotificationHandler<>
IRequestExceptionHandler<,,>
IRequestExceptionAction<,>
동작, 스트림 동작, 사전/사후 프로세서를 등록하려면:
services . AddMediatR ( cfg => {
cfg . RegisterServicesFromAssembly ( typeof ( Startup ) . Assembly ) ;
cfg . AddBehavior < PingPongBehavior > ( ) ;
cfg . AddStreamBehavior < PingPongStreamBehavior > ( ) ;
cfg . AddRequestPreProcessor < PingPreProcessor > ( ) ;
cfg . AddRequestPostProcessor < PingPongPostProcessor > ( ) ;
cfg . AddOpenBehavior ( typeof ( GenericBehavior < , > ) ) ;
} ) ;
명시적 서비스 유형에 대한 개방형 제네릭 및 오버로드를 위한 추가 메서드가 있습니다.