com.wiwish.library.MapSharp.Extensions.Microsoft.DependencyInjection
0.2.0
dotnet add package com.wiwish.library.MapSharp.Extensions.Microsoft.DependencyInjection --version 0.2.0
NuGet\Install-Package com.wiwish.library.MapSharp.Extensions.Microsoft.DependencyInjection -Version 0.2.0
<PackageReference Include="com.wiwish.library.MapSharp.Extensions.Microsoft.DependencyInjection" Version="0.2.0" />
<PackageVersion Include="com.wiwish.library.MapSharp.Extensions.Microsoft.DependencyInjection" Version="0.2.0" />
<PackageReference Include="com.wiwish.library.MapSharp.Extensions.Microsoft.DependencyInjection" />
paket add com.wiwish.library.MapSharp.Extensions.Microsoft.DependencyInjection --version 0.2.0
#r "nuget: com.wiwish.library.MapSharp.Extensions.Microsoft.DependencyInjection, 0.2.0"
#:package com.wiwish.library.MapSharp.Extensions.Microsoft.DependencyInjection@0.2.0
#addin nuget:?package=com.wiwish.library.MapSharp.Extensions.Microsoft.DependencyInjection&version=0.2.0
#tool nuget:?package=com.wiwish.library.MapSharp.Extensions.Microsoft.DependencyInjection&version=0.2.0
MapSharp.Extensions.Microsoft.DependencyInjection
MapSharp.Extensions.Microsoft.DependencyInjection provides integration between MapSharp and the built-in ASP.NET Core dependency injection container.
It works with the current MapSharp runtime behavior, including automatic proxy-aware source type fallback during mapping.
Current package version: 0.1.4
NuGet package ID: com.wiwish.library.MapSharp.Extensions.Microsoft.DependencyInjection
Usage
Register MapSharp in your application's service collection:
using MapSharp.Extensions.Microsoft.DependencyInjection;
builder.Services.AddMapSharp(cfg =>
{
cfg.CreateMap<User, UserDto>()
.ForMember(d => d.DisplayName, opt => opt.MapFrom<UserDisplayNameResolver>());
});
AddMapSharp creates a MapperConfiguration, registers it as IConfigurationProvider, and registers IMapper as a singleton.
When AddMapSharp builds the MapperConfiguration, it also configures service construction through ActivatorUtilities.GetServiceOrCreateInstance(...). This allows value resolvers, converters, and mapping actions to be created on demand through the container without registering each resolver/converter/action type individually. In practice, you usually only need to register their constructor dependencies.
This package aligns with MapSharp 0.8.0, including the current high-performance runtime mapping behavior and updated package guidance.
After registration, inject IMapper where needed:
public sealed class UserService
{
private readonly IMapper _mapper;
public UserService(IMapper mapper)
{
_mapper = mapper;
}
public UserDto Map(User user) => _mapper.Map<UserDto>(user);
}
public sealed class UserDisplayNameResolver : IValueResolver<User, UserDto, string>
{
private readonly IDisplayNameFormatter _formatter;
public UserDisplayNameResolver(IDisplayNameFormatter formatter)
{
_formatter = formatter;
}
public string Resolve(User source, UserDto destination)
=> _formatter.Format(source.Name);
}
| 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 is compatible. 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. |
| .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
- com.wiwish.library.MapSharp (>= 0.9.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0.0)
-
net10.0
- com.wiwish.library.MapSharp (>= 0.9.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0.0)
-
net8.0
- com.wiwish.library.MapSharp (>= 0.9.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
0.2.0: Added IServiceProvider-based service construction guidance for MapSharp 0.9.0 and updated AddMapSharp integration to create resolvers, converters, and mapping actions on demand through ActivatorUtilities without requiring individual container registrations.