Skip to content

Fast.Mapster

Public members, parameters, returns, and exceptions

Targets: net8.0;net9.0;net10.0.

Contract and constraints

AddMapster() uses TypeAdapterConfig.GlobalSettings, scans IRegister implementations from MAppContext.Assemblies, registers the configuration as a singleton and MapsterMapper.IMapper as a scoped ServiceMapper. It has no additional callback parameter. The implementation applies Flexible followed by IgnoreCase; the final naming strategy is IgnoreCase. PreserveReference(true) preserves references in mapping graphs but is not a lossless clone guarantee. Global settings can affect other Mapster consumers in the same process. Adapt, query projection and other mapping APIs follow Mapster itself; provider-specific query translation needs separate verification. Do not capture the scoped mapper in a singleton.

Installation and examples

Install the package

bash
dotnet add package Fast.Mapster

Example 1

csharp
using Fast.Mapster;
using Mapster;
using MapsterMapper;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.AspNetCore.Builder;

var builder = WebApplication.CreateBuilder(args);
builder.Services.AddMapster();

var app = builder.Build();
app.MapPost("/map", (SourceModel source, IMapper mapper) => mapper.Map<TargetModel>(source));
app.Run();

public sealed class SourceModel
{
    public string Title { get; set; } = "";
}

public sealed class TargetModel
{
    public string Title { get; set; } = "";
}

public sealed class MappingProfile : IRegister
{
    public void Register(TypeAdapterConfig config)
        => config.NewConfig<SourceModel, TargetModel>();
}

public sealed class MappingService(IMapper mapper)
{
    public TargetModel Convert(SourceModel source) => mapper.Map<TargetModel>(source);
}

Web-host examples belong in a consumer project using Microsoft.NET.Sdk.Web and a supported .NET target. IaaS examples can be used in an ordinary class library. Registration precedes builder.Build(); configure middleware and endpoints before app.Run(). Samples retain their original code and comments. No host, external service, database operation or client generator was run, and these snippets have not been compiled in this update.

Source reference