Mapster 不映射
Mapster not mapping
我正在将 Mapster 与 DI 结合使用,并且正在尝试映射从 WS 接收到的对象。我正在按照本指南进行操作 https://github.com/MapsterMapper/Mapster/wiki/Dependency-Injection#mapping
我注册了TypeAdapterConfig和ServiceMapper
var config = new TypeAdapterConfig();
services.AddSingleton(config);
services.AddScoped<IMapper, ServiceMapper>();
黑名单 class 包含卡片集合,但网络服务 returns 长数组,我将其重新映射到对象。
public class BlacklistMapper : IRegister
{
void IRegister.Register(TypeAdapterConfig config)
{
config.NewConfig<long, Internal.BlacklistCard>()
.Map(dest => dest.Cuid, source => source);
config.NewConfig<SzWebService.BlackList, Internal.Blacklist>()
.Map(dest => dest.Id, source => source.iBlacklistId)
.Map(dest => dest.Crc, source => source.iBlackListCRC)
.Map(dest => dest.Cards, source => source.lCuid);
}
}
在构造函数中注入映射器
private readonly IMapper _mapper;
public Service(IMapper mapper)
{
_logger = logger;
}
最后这样称呼它
_mapper.Map<Blacklist>(response.mBlackListData)
结果始终是具有默认值的对象
第 1 步 - 通过实施 IRegister
创建配置
public class BlacklistMapper : IRegister
{
void Register(TypeAdapterConfig config)
{
config.NewConfig<SzWebService.BlackList, Internal.Blacklist>()
.Map(...)
.Map(...);
}
}
步骤 2 - 注册配置
您可以显式注册配置:
var config = new TypeAdapterConfig();
// Explicitly apply a specific configuration
config.Apply(new BlackListMapper());
services.AddSingleton(config);
services.AddScoped<IMapper, ServiceMapper>();
或者让 Mapster 扫描您的程序集以查找 IRegister
实现:
// Scan & apply IRegisters automatically.
config.Scan(Assembly.GetExecutingAssembly());
我正在将 Mapster 与 DI 结合使用,并且正在尝试映射从 WS 接收到的对象。我正在按照本指南进行操作 https://github.com/MapsterMapper/Mapster/wiki/Dependency-Injection#mapping
我注册了TypeAdapterConfig和ServiceMapper
var config = new TypeAdapterConfig();
services.AddSingleton(config);
services.AddScoped<IMapper, ServiceMapper>();
黑名单 class 包含卡片集合,但网络服务 returns 长数组,我将其重新映射到对象。
public class BlacklistMapper : IRegister
{
void IRegister.Register(TypeAdapterConfig config)
{
config.NewConfig<long, Internal.BlacklistCard>()
.Map(dest => dest.Cuid, source => source);
config.NewConfig<SzWebService.BlackList, Internal.Blacklist>()
.Map(dest => dest.Id, source => source.iBlacklistId)
.Map(dest => dest.Crc, source => source.iBlackListCRC)
.Map(dest => dest.Cards, source => source.lCuid);
}
}
在构造函数中注入映射器
private readonly IMapper _mapper;
public Service(IMapper mapper)
{
_logger = logger;
}
最后这样称呼它
_mapper.Map<Blacklist>(response.mBlackListData)
结果始终是具有默认值的对象
第 1 步 - 通过实施 IRegister
public class BlacklistMapper : IRegister
{
void Register(TypeAdapterConfig config)
{
config.NewConfig<SzWebService.BlackList, Internal.Blacklist>()
.Map(...)
.Map(...);
}
}
步骤 2 - 注册配置
您可以显式注册配置:
var config = new TypeAdapterConfig();
// Explicitly apply a specific configuration
config.Apply(new BlackListMapper());
services.AddSingleton(config);
services.AddScoped<IMapper, ServiceMapper>();
或者让 Mapster 扫描您的程序集以查找 IRegister
实现:
// Scan & apply IRegisters automatically.
config.Scan(Assembly.GetExecutingAssembly());