Automapper - Vererbungs-Mapper funktioniert nicht mit Typkonverter

Mapping Inheritance und TypeConverter können nicht zusammen verwendet werden.

Ich habe diesen Code:

/* BaseClassTypeConverter.cs */
public class BaseClassTypeConverter : ITypeConverter<SourceClass, BaseClass> {
    public BaseClass Convert(ResolutionContext context) {
        if (context == null || context.IsSourceValueNull)
            return null;

        var src = (SourceClass)context.SourceValue;

        return new BaseClass() {
            CommonAttr = src.SourceAttr
        };
    }
}

/* AutoMapperConfig.cs */
public static class AutoMapperConfig {

    public static void RegisterMappings() {
        AutoMapper.Mapper.Initialize(config => {
            config
                .CreateMap<SourceClass, BaseClass>()
                .Include<SourceClass, DerivedClass1>()
                .Include<SourceClass, DerivedClass2>()  
                .ForMember(dest => dest.CommonAttr, o => o.MapFrom(src => src.SourceAttr));
                //.ConvertUsing<BaseClassTypeConverter>(); //  NOT WORKING

            config
                .CreateMap<SourceClass, DerivedClass1>()
                .ForMember(dest => dest.Dummy, o => o.MapFrom(src => src.SourceAttr2))
                .IncludeBase<SourceClass, BaseClass>();
        });
    }
}

Wie Sie sehen, möchte ich in der Lage sein, aus einer TypeConverter-Klasse zuzuordnen, da ich einige komplexere Berechnungen durchführen muss, und nicht nur Werte wie oben zuweisen möchte.

Wenn ich den Typkonverter verwende, funktionieren die Zuordnungen nicht. Wenn ich jedoch ConvertUsing entferne und die Inline-Zuordnung mit ForMember verwende, funktioniert alles einwandfrei.

Es ist etwas, was ich vermisse?

PD. Ich benutze: AutoMapper: version = "4.2.1", targetFramework = "net452"

Antworten auf die Frage(2)

Ihre Antwort auf die Frage