MediatorMapper 1.1.4
dotnet add package MediatorMapper --version 1.1.4
NuGet\Install-Package MediatorMapper -Version 1.1.4
<PackageReference Include="MediatorMapper" Version="1.1.4" />
<PackageVersion Include="MediatorMapper" Version="1.1.4" />
<PackageReference Include="MediatorMapper" />
paket add MediatorMapper --version 1.1.4
#r "nuget: MediatorMapper, 1.1.4"
#:package MediatorMapper@1.1.4
#addin nuget:?package=MediatorMapper&version=1.1.4
#tool nuget:?package=MediatorMapper&version=1.1.4
MediatorMapper
MediatorMapper is a small mediator and object-mapping library for .NET. It provides
request/notification contracts, a mediator backed by dependency injection, and
mapping APIs designed to work with the companion MediatorMapperGenerator source
generator.
Mediator
Define a request and its handler with IRequest<TResponse> and
IRequestHandler<TRequest, TResponse>. For requests without a response, use
IRequest and IRequestHandler<TRequest>. Notifications implement
INotification and can have multiple INotificationHandler<TNotification>
handlers.
Send requests through IMediator.Send and publish notifications through
IMediator.PublishAsync. Handlers are resolved from dependency injection, so
their own dependencies can be injected by the container.
Register handlers by scanning assemblies
In an ASP.NET Core Program.cs, register the mediator and scan the assembly
containing your handlers:
using MediatorMapper.Mediator;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddMediator(typeof(GetWeatherHandler).Assembly);
var app = builder.Build();
app.Run();
AddMediator registers the mediator and discovered handlers with
IServiceCollection. You can also build the registry explicitly:
var registry = HandlerRegistryBuilder.Build(
new[] { typeof(GetWeatherHandler).Assembly });
builder.Services.AddMediator(registry);
Register handlers manually
Use HandlerRegistry when you want to choose the handler registrations
yourself. Request handler keys are the request types; notification handler keys
are notification types and can have multiple handler types.
var registry = new HandlerRegistry();
registry.RequestHandlers.Add(
typeof(GetWeatherQuery),
typeof(GetWeatherHandler));
registry.NotificationHandlers.Add(
typeof(WeatherUpdated),
new List<Type> { typeof(WeatherUpdatedHandler) });
builder.Services.AddMediator(registry);
AddMediator(registry) registers the registry, IMediator, and the handler
types with dependency injection.
Mapping
MappingProfile is the base class for declaring mappings with
CreateMap<TSource, TDestination>(). The profile and fluent expressions
(ForMember, ReverseMap, and AfterMap) describe mappings for
MediatorMappingGenerator; they are not executed as runtime configuration.
Add the MediatorMappingGenerator NuGet package as an analyzer to the project
containing your mapping profiles. The generator produces mapping code and
registers it with MapperConfiguration. Then use IMapper (or Mapper) to
map objects:
using MediatorMapper.Mapping;
public sealed class PersonProfile : MappingProfile
{
public PersonProfile()
{
CreateMap<Person, PersonDto>().ReverseMap();
}
}
// In application code:
IMapper mapper = new Mapper();
PersonDto dto = mapper.Map<PersonDto>(person);
Mappings are stored in the shared MapperConfiguration.Instance. Calling
Map<TDestination> requires a generated mapping for the source and destination
types, or a source and destination type that are the same. Enumerable mappings
are supported when a mapping exists for their element types.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. net11.0 is compatible. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- Microsoft.CSharp (>= 4.7.0)
- Microsoft.Extensions.DependencyInjection (>= 10.0.14)
-
net10.0
- Microsoft.Extensions.DependencyInjection (>= 10.0.14)
-
net11.0
- Microsoft.Extensions.DependencyInjection (>= 10.0.14)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on MediatorMapper:
| Package | Downloads |
|---|---|
|
MediatorMapperGenerator
Source generator for MediatorMapper handler and mapping registrations. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.1.4 | 41 | 11/11/2026 |
Initial release. Use with MediatorMappingGenerator (source generator)