Excepción de mapeo de tipos complejos de Automapper

Estoy tratando de implementar el AutoMapper para un nuevo módulo.

Tengo el modelo MVC en el sitio web, estoy trabajando, y se ve así:

public class MvcModel
{
    public Params Params { get; set; }
    public Steps Steps { get; set; }
}    
public class Params
{
    public int? RequestId { get; set; } 
    public bool NewClient { get; set; }
}    
public class Steps
{
    public Step1 Step1 { get; set; }    
    public Step2 Step2 { get; set; }    
    public Step3 Step3 { get; set; }    
}    
public class Step1
{
    public int Name { get; set; }   
}    
public class Step2
{
    public int Phone { get; set; }  
}    
public class Step3
{
    public int Email { get; set; }  
}

Por otro lado tengo la próxima clase, que tengo que pasar a algún servicio:

public class Request
{
    public Parameters Parameters { get; set; }
    public RequestContent RequestContent { get; set; }
}

public class Parameters
{
    public int NewClient { get; set; }
}

public class RequestContent
{
    public int Id { get; set; } 
    public int InnerId { get; set; }
    public string Session { get; set; }
    public string Clerk { get; set; }
    public bool Private { get; set; }

    public PersonalDetails PersonalDetails { get; set; }    
    public Phones Phones { get; set; }  
    public ElectonicCommunication ElectonicCommunication { get; set; }  
}

public class PersonalDetails
{
    public int Name { get; set; }   
}

public class Phones
{
    public int Phone { get; set; }  
}

public class ElectonicCommunication
{
    public int Email { get; set; }  
}

He creado una nueva clase de configuración de AutoMapper (que se llama desde Global.asax):

public class AutoMapperConfig
{
    public static void Configure()
    {
        MapperConfiguration MapperConfiguration = new MapperConfiguration(cfg => {
            cfg.AddProfile<Out>();
            cfg.AddProfile<In>();
            cfg.CreateMap<MvcModel, Request>();
        });
        MapperConfiguration.AssertConfigurationIsValid();
    }
}

public class Out: Profile
{
    protected override void Configure()
    {
        CreateMap<MvcModel, Request>()
            .ForMember(dest => dest.Parameters, opt => opt.MapFrom(src => src.Params))
            .ForMember(dest => dest.RequestContent, opt => opt.MapFrom(src => src.Steps));
    }
}

public class In: Profile
{
    protected override void Configure()
    {
        CreateMap<Request, MvcModel>()
            .ForMember(dest => dest.Params, opt => opt.MapFrom(src => src.Parameters))
            .ForMember(dest => dest.Steps, opt => opt.MapFrom(src => src.RequestContent));
    }
}

Esos son esquemáticamente similares, aunque el objeto real es un poco más grande y tiene nombres diferentes.

Excpectaciones: MvcModel ser mapeado aRequest y al revés.

Para ser más exactos:

MvcModel.Params ser mapeado aRequest.Parameters y al revésMvcModel.Steps ser mapeado aRequest.RequestContent y al revésInnerId, Session, Clerk, Private deRequest.RequestContent debe ser ignorado

El problema: Recibo un error cuando inicio la aplicación:

La siguiente propiedad en ... no se puede asignar:
Agregue una expresión de asignación personalizada, ignore, agregue un solucionador personalizado o modifique el tipo de destino ... Contexto: Asignación a propiedad ... de ... a ... Asignación de tipo ... a ... de tipo fuente AutoMapperMessageBugTests.SourceChild Mapping to type Se ha lanzado una excepción del tipo 'AutoMapper.AutoMapperConfigurationException'.

No encontré buena documentación sobre cómo usar AutoMapper globalmente para la aplicación, y simplemente no puedo entender cómo usarlo correctamente y qué es exactamente lo que estoy haciendo mal.

No pude encontrar un buen ejemplo de objetos complejos que mapeen el éter ...

¿Puede alguien ayudarme con esto?

Respuestas a la pregunta(1)

Su respuesta a la pregunta