Исключение при отображении сложных типов Automapper

Я пытаюсь реализовать AutoMapper для нового модуля.

У меня есть модель MVC на веб-сайте, над которой я работаю, и она выглядит так:

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; }  
}

С другой стороны, у меня есть следующий класс, который я должен перейти к какой-то службе:

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; }  
}

Я создал новый класс конфигурации AutoMapper (который вызывается из 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));
    }
}

Они схематично похожи, хотя реальный объект немного больше и имеет разные имена.

Excpectations: MvcModel быть сопоставленным сRequest и в обратном направлении.

Чтобы быть более точным:

MvcModel.Params быть сопоставленным сRequest.Parameters и назадMvcModel.Steps быть сопоставленным сRequest.RequestContent и назадInnerId, Session, Clerk, Private отRequest.RequestContent должны быть проигнорированы

Эта проблема: Я получаю сообщение об ошибке при запуске приложения:

Следующее свойство на ... не может быть отображено:
Добавить пользовательское выражение сопоставления, игнорировать, добавить настраиваемый преобразователь или изменить тип назначения ... Контекст: сопоставление со свойством ... из ... в ... сопоставление из типа ... в ... из исходного типа AutoMapperMessageBugTests.SourceChild Сопоставление с типом Исключение типа 'AutoMapper.AutoMapperConfigurationException' было сгенерировано.

Я не нашел хорошей документации о том, как использовать AutoMapper в глобальном масштабе для приложения, и просто не могу понять, как правильно его использовать и что именно я делаю неправильно.

Я не мог найти хороший пример сложных объектов, отображающих эфир ...

Может кто-то помочь мне с этим?

Ответы на вопрос(1)

Ваш ответ на вопрос