PanoramicData.Mapper 10.0.12

dotnet add package PanoramicData.Mapper --version 10.0.12
                    
NuGet\Install-Package PanoramicData.Mapper -Version 10.0.12
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="PanoramicData.Mapper" Version="10.0.12" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="PanoramicData.Mapper" Version="10.0.12" />
                    
Directory.Packages.props
<PackageReference Include="PanoramicData.Mapper" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add PanoramicData.Mapper --version 10.0.12
                    
#r "nuget: PanoramicData.Mapper, 10.0.12"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package PanoramicData.Mapper@10.0.12
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=PanoramicData.Mapper&version=10.0.12
                    
Install as a Cake Addin
#tool nuget:?package=PanoramicData.Mapper&version=10.0.12
                    
Install as a Cake Tool

PanoramicData.Mapper

A comprehensive, MIT-licensed, API-compatible replacement for AutoMapper.

Nuget Nuget License Codacy Badge

Overview

PanoramicData.Mapper is a comprehensive, API-compatible replacement for AutoMapper with convention-based object mapping, explicit member configuration, and advanced features including mapping inheritance, value resolvers, type converters, open generics, EF Core projection, and more. It is a clean-room, black-box reimplementation — no AutoMapper source code was referenced.

Supported Features

  • Convention-based mapping — properties with matching names and compatible types map automatically
  • Profile-based configuration — derive from Profile and call CreateMap<TSource, TDestination>()
  • ForMember / Ignore — skip specific destination properties
  • ForMember / MapFrom — custom source expressions including nested property access
  • BeforeMap / AfterMap — inline lambda and generic IMappingAction<TSrc, TDest> pre/post-mapping callbacks
  • ForAllMembers — apply configuration to all destination members
  • ReverseMap.ReverseMap() creates the inverse mapping automatically
  • ConvertUsing — lambda, ITypeConverter<TSrc, TDst> type, or instance for full-type conversion
  • ConstructUsing — custom destination construction via lambda
  • ForPath.ForPath(d => d.Inner.Prop, opt => ...) for deep nested member configuration
  • ForCtorParam.ForCtorParam("name", opt => ...) for constructor parameter mapping
  • Condition / PreCondition — conditional member mapping (evaluated after/before value resolution)
  • NullSubstitute — substitute a default value when the source resolves to null
  • Value ResolversIValueResolver<TSrc, TDst, TMember> for custom resolution logic
  • Mapping InheritanceInclude, IncludeBase, IncludeAllDerived for polymorphic hierarchies
  • Value Transformers.AddTransform<T>(expr) for per-type value transforms
  • Open GenericsCreateMap(typeof(Source<>), typeof(Dest<>)) for generic type mappings
  • UseDestinationValue — preserve existing destination property values
  • MaxDepth.MaxDepth(n) to limit recursive mapping depth
  • Map to newmapper.Map<TDest>(source) creates a new destination
  • Map to existingmapper.Map(source, destination) updates an existing object
  • ProjectToIQueryable<T>.ProjectTo<TDest>(configurationProvider) for EF Core SQL projection
  • [Ignore] attributePanoramicData.Mapper.Configuration.Annotations.IgnoreAttribute
  • Nested mappings — recursive mapping of complex child types and collection properties when a CreateMap exists for the child types
  • Collection/List/Array mappingmapper.Map<List<Dest>>(sourceList) maps collections automatically when an element-type map is registered
  • Flattening — PascalCase destination property names are split and traversed on the source graph (e.g. CustomerNameCustomer.Name); also matches GetX() methods
  • AssertConfigurationIsValid — detects unmapped destination properties at startup
  • IgnoreAllPropertiesWithAnInaccessibleSetter — extension method to ignore all destination properties with non-public or absent setters
  • DI integrationAddAutoMapper() extension methods for IServiceCollection

Installation

dotnet add package PanoramicData.Mapper

Quick Start

using PanoramicData.Mapper;

// Define a profile
public class MyProfile : Profile
{
    public MyProfile()
    {
        CreateMap<Source, Destination>()
            .ForMember(d => d.Secret, opt => opt.Ignore())
            .ForMember(d => d.FullName, opt => opt.MapFrom(s => s.FirstName + " " + s.LastName));
    }
}

// Configure and use
var config = new MapperConfiguration(cfg => cfg.AddProfile<MyProfile>());
config.AssertConfigurationIsValid();

IMapper mapper = config.CreateMapper();
var dest = mapper.Map<Destination>(source);

DI Registration

// In Program.cs / Startup.cs
services.AddAutoMapper(typeof(MyProfile).Assembly);

// Or with explicit configuration
services.AddAutoMapper(cfg => cfg.AddProfile<MyProfile>());

Migration from AutoMapper

  1. Replace the AutoMapper NuGet package with PanoramicData.Mapper
  2. Update using directives:
    • using AutoMapper;using PanoramicData.Mapper;
    • using AutoMapper.QueryableExtensions;using PanoramicData.Mapper.QueryableExtensions;
    • using AutoMapper.Configuration.Annotations;using PanoramicData.Mapper.Configuration.Annotations;
  3. The AddAutoMapper() DI extension methods and all type names (Profile, IMapper, MapperConfiguration, etc.) remain the same

License

MIT — see LICENSE for details.

Product Compatible and additional computed target framework versions.
.NET 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on PanoramicData.Mapper:

Package Downloads
LogicMonitor.Datamart

LogicMonitor Datamart

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
10.0.12 34 3/15/2026
10.0.11 29 3/15/2026
10.0.10 25 3/15/2026
10.0.9 31 3/15/2026
10.0.8 24 3/15/2026
10.0.7 35 3/15/2026
10.0.6 26 3/15/2026
10.0.5 31 3/15/2026
10.0.4 31 3/15/2026
10.0.1 31 3/15/2026