using Mapster;
using MapsterMapper;
using System.Reflection;
namespace Microsoft.Extensions.DependencyInjection
{
///
/// Mapster 映射拓展类
///
public static class ObjectMapperServiceCollectionExtensions
{
///
/// 添加 Mapster 映射
///
/// 服务集合
/// 扫描的程序集
///
public static IServiceCollection AddObjectMapper(this IServiceCollection services, params Assembly[] assemblies)
{
// 获取全局映射配置
var config = TypeAdapterConfig.GlobalSettings;
// 扫描所有继承 IRegister 接口的对象映射配置
if (assemblies != null && assemblies.Length > 0) config.Scan(assemblies);
// 配置默认全局映射(支持覆盖)
config.Default.NameMatchingStrategy(NameMatchingStrategy.Flexible).PreserveReference(true);
// 配置默认全局映射(忽略大小写敏感)
config.Default.NameMatchingStrategy(NameMatchingStrategy.IgnoreCase).PreserveReference(true);
// 配置支持依赖注入
services.AddSingleton(config);
services.AddScoped();
return services;
}
}
}