Есть 3 класса, которые я использую в конвертации с использованием Automapper 8.1.0
public class A{
public int Length{ get; set; }
public int FrequencyHz{ get; set; }
public int RXWaveguide { get; set; }
}
public class C{
public C(double time) {
Time = time;
}
public double Time { get; }
}
public class B : C {
public int Length{ get; }
public int TXWaveguide { get; }
public B(double time, int length, int txWaveguide) : base(time) {
Length = length;
TXWaveguide = txWaveguide;
}
}
Я хочу преобразовать из A
в B
, где B
наследуется от C
.
Код ниже показывает мой Automapper configuration
.
var objA = new A() {
Length = 5,
FrequencyHz = 5,
RXWaveguide = 5
};
var mapperConfig = new MapperConfiguration(cfg => {
cfg.CreateMap<A, B>()
.ForCtorParam("time", opt => opt.MapFrom(src => (double)1 / src.FrequencyHz))
.ForCtorParam("txWaveguide", opt => opt.MapFrom(srcA => srcA.RXWaveguide * 10));
});
var myMapper = mapperConfig.CreateMapper();
mapperConfig.AssertConfigurationIsValid();
return myMapper.Map<B>(input);
Мне неудобно использовать имя строки в ForCtorParam
.
Есть ли другой альтернативный способ отображения класса A в B с использованием Automapper
, но не с ForCtorParam
?
Спасибо