Sparkdo.AutoMapper
1.0.0-preview.5
.NET 10.0
This package targets .NET 10.0. The package is compatible with this framework or higher.
.NET Standard 2.0
This package targets .NET Standard 2.0. The package is compatible with this framework or higher.
This is a prerelease version of Sparkdo.AutoMapper.
There is a newer version of this package available.
See the version list below for details.
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" />
<PackageReference Include="Sparkdo.AutoMapper" />
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
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#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
#tool nuget:?package=Sparkdo.AutoMapper&version=1.0.0-preview.5&prerelease
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
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 集成功能,可以通过以下方式扩展:
- 实现自定义的
IAutoObjectMappingProvider来替换底层映射实现 - 通过继承
AutoMapperAutoObjectMappingProvider<TContext>来添加上下文支持 - 使用 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 | 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. |
| .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.
-
.NETStandard 2.0
- AutoMapper (>= 15.0.1)
- JetBrains.Annotations (>= 2025.2.2)
- Microsoft.Bcl.AsyncInterfaces (>= 10.0.0-rc.2.25502.107)
- Microsoft.Extensions.Configuration (>= 10.0.0-rc.2.25502.107)
- Microsoft.Extensions.Configuration.CommandLine (>= 10.0.0-rc.2.25502.107)
- Microsoft.Extensions.Configuration.EnvironmentVariables (>= 10.0.0-rc.2.25502.107)
- Microsoft.Extensions.Configuration.FileExtensions (>= 10.0.0-rc.2.25502.107)
- Microsoft.Extensions.Configuration.Json (>= 10.0.0-rc.2.25502.107)
- Microsoft.Extensions.Configuration.UserSecrets (>= 10.0.0-rc.2.25502.107)
- Microsoft.Extensions.DependencyInjection (>= 10.0.0-rc.2.25502.107)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.0-rc.2.25502.107)
- Microsoft.Extensions.DependencyModel (>= 10.0.0-rc.2.25502.107)
- Microsoft.Extensions.FileProviders.Composite (>= 10.0.0-rc.2.25502.107)
- Microsoft.Extensions.FileProviders.Embedded (>= 10.0.0-rc.2.25502.107)
- Microsoft.Extensions.FileProviders.Physical (>= 10.0.0-rc.2.25502.107)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.0-rc.2.25502.107)
- Microsoft.Extensions.Localization (>= 10.0.0-rc.2.25502.107)
- Microsoft.Extensions.Logging (>= 10.0.0-rc.2.25502.107)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.0-rc.2.25502.107)
- Microsoft.Extensions.Options (>= 10.0.0-rc.2.25502.107)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 10.0.0-rc.2.25502.107)
- Microsoft.Extensions.Options.DataAnnotations (>= 10.0.0-rc.2.25502.107)
- Microsoft.IdentityModel.Tokens (>= 8.14.0)
- Nito.AsyncEx.Context (>= 5.1.2)
- Sparkdo.Auditing (>= 1.0.0-preview.5)
- Sparkdo.ObjectExtending (>= 1.0.0-preview.5)
- Sparkdo.ObjectMapping (>= 1.0.0-preview.5)
- System.Linq.Dynamic.Core (>= 1.6.8)
- System.Runtime.Loader (>= 4.3.0)
- System.Text.Json (>= 10.0.0-rc.2.25502.107)
- TimeZoneConverter (>= 7.1.0)
-
net10.0
- AutoMapper (>= 15.0.1)
- JetBrains.Annotations (>= 2025.2.2)
- Microsoft.Extensions.Configuration (>= 10.0.0-rc.2.25502.107)
- Microsoft.Extensions.Configuration.CommandLine (>= 10.0.0-rc.2.25502.107)
- Microsoft.Extensions.Configuration.EnvironmentVariables (>= 10.0.0-rc.2.25502.107)
- Microsoft.Extensions.Configuration.FileExtensions (>= 10.0.0-rc.2.25502.107)
- Microsoft.Extensions.Configuration.Json (>= 10.0.0-rc.2.25502.107)
- Microsoft.Extensions.Configuration.UserSecrets (>= 10.0.0-rc.2.25502.107)
- Microsoft.Extensions.DependencyInjection (>= 10.0.0-rc.2.25502.107)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.0-rc.2.25502.107)
- Microsoft.Extensions.DependencyModel (>= 10.0.0-rc.2.25502.107)
- Microsoft.Extensions.FileProviders.Composite (>= 10.0.0-rc.2.25502.107)
- Microsoft.Extensions.FileProviders.Embedded (>= 10.0.0-rc.2.25502.107)
- Microsoft.Extensions.FileProviders.Physical (>= 10.0.0-rc.2.25502.107)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.0-rc.2.25502.107)
- Microsoft.Extensions.Localization (>= 10.0.0-rc.2.25502.107)
- Microsoft.Extensions.Logging (>= 10.0.0-rc.2.25502.107)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.0-rc.2.25502.107)
- Microsoft.Extensions.Options (>= 10.0.0-rc.2.25502.107)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 10.0.0-rc.2.25502.107)
- Microsoft.Extensions.Options.DataAnnotations (>= 10.0.0-rc.2.25502.107)
- Microsoft.IdentityModel.Tokens (>= 8.14.0)
- Nito.AsyncEx.Context (>= 5.1.2)
- Sparkdo.Auditing (>= 1.0.0-preview.5)
- Sparkdo.ObjectExtending (>= 1.0.0-preview.5)
- Sparkdo.ObjectMapping (>= 1.0.0-preview.5)
- System.Linq.Dynamic.Core (>= 1.6.8)
- TimeZoneConverter (>= 7.1.0)
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 |