Autofa c - ForAllOtherMembers - Картограф не используется - PullRequest
0 голосов
/ 06 марта 2020

Я реализовал CaseInsensitiveFromStringDictionaryMapper, как предложено здесь https://github.com/AutoMapper/AutoMapper/issues/3243 Я также зарегистрировал этот преобразователь в autofa c со следующим кодом

protected void ConfigureAutomapper(ContainerBuilder builder)
{
    var config = new MapperConfiguration(cfg =>
    {
        foreach (var assembly in GetAssemblies(CustomAssembliesPrefix))
        {
            cfg.AddMaps(assembly);
        }

        cfg.Mappers.Insert(0, new CaseInsensitiveFromStringDictionaryMapper());
    });

    try
    {
        config.AssertConfigurationIsValid();
    }
    catch (AutoMapperConfigurationException ex)
    {
        var message = new StringBuilder();
        message.AppendLine("Automapper configuration error");

        Exception exception = ex;
        while (exception != null)
        {
            message.AppendLine($"Message: {ex.Message}");
            message.AppendLine($"Stack trace: ");
            message.AppendLine($"{ex.StackTrace}");
            message.AppendLine($"");
            exception = exception.InnerException;
        }

        EventLogProvider.LogEvent(EventType.ERROR, nameof(WebContainer), "Automapper configuration error", message.ToString());
        throw;
    }
    builder.Register(c => new Mapper(config))
        .As<IMapper>()
        .SingleInstance();
}

, если я просто сделаю это, Я могу выполнить следующий код, и он отлично отображает все свойства моего целевого объекта: mapper.Map<ReferenceSearchResultDocument>(documentSearchResult.Document)

Но мне нужно указать некоторые c вещи на некоторых участниках, чтобы я создал профиль и отображение для этих членов, но я хотел бы иметь поведение по умолчанию (так, чтобы регистр не учитывал регистр в моем словаре) для других моих членов. Я проверил следующий код: .ForAllOtherMembers(opt => opt.MapFrom(src => src[opt.DestinationMember.Name])), но, конечно, это не то же самое, что позволить мапперам выполнять свою работу.

Как мне это исправить?

С уважением,

Benjamin

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...