我有多个类实现基类,例如:
public abstract class Step
{
public StepId Id {get; set;}
public string Text {get; set;
public StepType Type {get;set;}
}
public class SelectionStep : Step
{
public List<string> Selections {get; set;}
}
public class NumericStep : Step
{
}
使用以下 Mapster 配置:
config.NewConfig<SelectionStep, StepResponse>()
.Map(dest => dest.Selections, src => src.Selections.Select(x => x.Value));
config.NewConfig<Step, StepResponse>()
.Map(dest => dest.Id, src => src.Id.Value.ToString())
.Map(dest => dest.Type, src => src.Type.ToString());
当我从一个
SelectionStep
映射到 StepResponse
时,它正在工作
_mapper.Map<StepResponse>(SelectionStep)
当我从包含
List<Step>
和 SelectionStep
模型的 NumericStep
进行映射时,它不使用 SelectionStepConfig
。
_mapper.Map<List<StepResponse>>(List<Step>)
我找到了解决方案。
我更改了
Step
配置以包含 SelectionStep
,请参阅下面的新配置。
config.NewConfig<SelectionStep, StepResponse>()
.Map(dest => dest.Selections, src => src.Selections.Select(x => x.Value));
config.NewConfig<Step, StepResponse>()
.Include<SelectionStep, StepResponse>()
.Map(dest => dest.Id, src => src.Id.Value.ToString())
.Map(dest => dest.Type, src => src.Type.ToString());
此映射是否在单元测试期间映射,步骤是否在单元测试期间映射 SuperClass SelectionStep 中的所有属性?