Sparkdo.AutoMapper 1.0.0-preview.5

This is a prerelease version of Sparkdo.AutoMapper.
There is a newer version of this package available.
See the version list below for details.
dotnet add package Sparkdo.AutoMapper --version 1.0.0-preview.5
                    
NuGet\Install-Package Sparkdo.AutoMapper -Version 1.0.0-preview.5
                    
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="Sparkdo.AutoMapper" Version="1.0.0-preview.5" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Sparkdo.AutoMapper" Version="1.0.0-preview.5" />
                    
Directory.Packages.props
<PackageReference Include="Sparkdo.AutoMapper" />
                    
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 Sparkdo.AutoMapper --version 1.0.0-preview.5
                    
#r "nuget: Sparkdo.AutoMapper, 1.0.0-preview.5"
                    
#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 Sparkdo.AutoMapper@1.0.0-preview.5
                    
#: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=Sparkdo.AutoMapper&version=1.0.0-preview.5&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=Sparkdo.AutoMapper&version=1.0.0-preview.5&prerelease
                    
Install as a Cake Tool

Sparkdo.AutoMapper

Sparkdo AutoMapper 集成库,提供基于 AutoMapper 的对象映射功能实现。

功能特性

  • 基于 AutoMapper 的对象映射实现
  • 支持扩展属性映射
  • 支持忽略扩展属性映射
  • 与 Sparkdo 框架无缝集成
  • 支持依赖注入配置

安装

<PackageReference Include="Sparkdo.AutoMapper" Version="x.x.x" />

核心组件

AutoMapperAutoObjectMappingProvider

AutoMapper 自动对象映射提供者,实现 IAutoObjectMappingProvider 接口:

  • Map<TSource, TDestination>(object source): 映射对象
  • Map<TSource, TDestination>(TSource source, TDestination destination): 映射到现有对象

扩展方法

SparkdoAutoMapperExtensibleObjectExtensions

为扩展属性提供映射支持:

  • MapExtraProperties<TSource, TDestination>(): 映射扩展属性
  • IgnoreExtraProperties<TSource, TDestination>(): 忽略扩展属性映射
AutoMapperServiceCollectionExtensions

IServiceCollection 扩展方法:

  • AddAutoMapperObjectMapper(): 添加 AutoMapper 对象映射器
  • AddAutoMapperObjectMapper<TContext>(): 添加支持特定上下文的 AutoMapper 对象映射器
SparkdoAutoMapperObjectMapperExtensions

IObjectMapper 扩展方法:

  • GetMapper(): 获取 AutoMapper IMapper 实例

使用方法

基本配置

在模块的 ConfigureServices 方法中添加 AutoMapper 配置:

public override void ConfigureServices(IServiceCollection services)
{
    services.AddAutoMapperObjectMapper();
}

对象映射

使用 AutoMapper 进行对象映射:

// 简单对象映射
var destination = objectMapper.Map<SourceObject, DestinationObject>(source);

// 映射到现有对象
objectMapper.Map<SourceObject, DestinationObject>(source, existingDestination);

扩展属性映射

在 AutoMapper 配置中映射扩展属性:

CreateMap<SourceEntity, DestinationEntity>()
    .MapExtraProperties();

忽略扩展属性

在 AutoMapper 配置中忽略扩展属性:

CreateMap<SourceEntity, DestinationEntity>()
    .IgnoreExtraProperties();

扩展性

该库提供了完整的 AutoMapper 集成功能,可以通过以下方式扩展:

  1. 实现自定义的 IAutoObjectMappingProvider 来替换底层映射实现
  2. 通过继承 AutoMapperAutoObjectMappingProvider<TContext> 来添加上下文支持
  3. 使用 AutoMapper 的配置 API 自定义映射规则

代码结构说明

本项目包含以下主要组件:

映射提供者

  • AutoMapperAutoObjectMappingProvider: 基于 AutoMapper 的自动对象映射提供者
  • AutoMapperAutoObjectMappingProvider<TContext>: 支持特定上下文的 AutoMapper 自动对象映射提供者

配置相关

  • IConfigurationProviderFactory: 配置提供者工厂接口
  • ConfigurationProviderFactory: 配置提供者工厂实现
  • ISparkdoAutoMapperConfigurationContext: AutoMapper 配置上下文接口
  • SparkdoAutoMapperConfigurationContext: AutoMapper 配置上下文实现
  • SparkdoAutoMapperOptions: AutoMapper 配置选项

访问器

  • IMapperAccessor: Mapper 访问器接口
  • MapperAccessor: Mapper 访问器实现

扩展方法

  • SparkdoAutoMapperExtensibleObjectExtensions: 扩展属性映射扩展方法
  • AutoMapperServiceCollectionExtensions: 服务集合扩展方法
  • SparkdoAutoMapperObjectMapperExtensions: 对象映射器扩展方法
  • AutoMapperExpressionExtensions: AutoMapper 表达式扩展方法

模块配置

  • SparkdoAutoMapperModule: Sparkdo AutoMapper 模块配置

所有公共接口和类都添加了详细的 XML 文档注释,便于开发者理解和使用。

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

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.2-preview.1 139 12/4/2025
1.0.1 168 11/27/2025
1.0.0 166 11/25/2025
1.0.0-preview.5 92 10/24/2025