تنفيذ وسيط بسيط في .NET
المراسلة قيد التشغيل بدون أي تبعيات.
يدعم الطلب/الاستجابة والأوامر والاستعلامات والإشعارات والأحداث، بشكل متزامن وغير متزامن مع الإرسال الذكي عبر التباين العام لـ C#.
أمثلة في ويكي.
يجب عليك تثبيت MediatR مع NuGet:
Install-Package MediatR
أو عبر واجهة سطر الأوامر .NET Core:
dotnet add package MediatR
سيقوم أي من الأمرين، من Package Manager Console أو .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 < , > ) ) ;
} ) ;
مع طرق إضافية للأدوية العامة المفتوحة والأحمال الزائدة لأنواع الخدمة الصريحة.