我目前正在将几个映射配置文件从 Automapper 4.2.1 迁移到最新版本 9.0.0。旧的映射配置文件是分层构建的,其中抽象基类需要 type 的参数IDatetime
。此注入仅用于测试。
public abstract MappingProfileBase : Profile
{
protected MappingProfileBase(IDatetime datetime)
{
this.CreateMap<Foo, FooDto>()
.ForMember(dest => dest.SomeTimeStamp, opt => opt.MapFrom(src => datetime));
// Further mappings
}
}
public MappingProfileA : MappingProfileBase
{
public MappingProfileA(IDatetime datetime) : base(datetime)
{
this.CreateMap<FooDerived, FooDerivedDto>()
// Further and more specific mappings
}
}
现在我想转到新的Include
andIncludeBase<>
方法并撤消对 and 的继承,MappingProfileA
但MappingProfileBase
根本不知道如何处理注入的接口。没有一个新方法接受任何参数。
我认为它应该是这样的:
public class MappingProfileBase : Profile
{
public MappingProfileBase(IDatetime datetime)
{
this.CreateMap<Foo, FooDto>()
.ForMember(dest => dest.SomeTimeStamp, opt => opt.MapFrom(src => datetime));
// Further mappings
}
}
public class MappingProfileA : Profile
{
public MappingProfileA()
{
this.CreateMap<FooDerived, FooDerivedDto>();
.IncludeBase<Foo, FooDto>();
}
}
那么如何将参数传递给基类的构造函数呢?还存在哪些其他可能性?