Automapper - зачем использовать Mapper.Initialize?

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

Тем не менее, вот вопрос: зачем использоватьMapper.Initialize? Это не требуется, так как вы можете просто использоватьMapper.CreateMap сразу, и так как нет документации, я понятия не имею, чтоInitialize предназначен для этого.

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

поэтому она выполняется, когда вы приходите делать свое отображение. Вы можете создать карту, когда захотите, но это замедлит ваш код, так как создание карт требует отражения.

Я считаю, что лучше всего использовать профили для моего кода отображения и использовать что-то вроде следующего, чтобы все это настроить:

public class AutoMapperConfiguration : IRequiresConfigurationOnStartUp
{
    private readonly IContainer _container;

    public AutoMapperConfiguration(IContainer container)
    {
        _container = container;
    }

    public void Configure()
    {
        Mapper.Initialize(x => GetAutoMapperConfiguration(Mapper.Configuration));
    }

    private void GetAutoMapperConfiguration(IConfiguration configuration)
    {
        var profiles = GetProfiles();
        foreach (var profile in profiles)
        {
            configuration.AddProfile(_container.GetInstance(profile) as Profile);
        }
    }

    private static IEnumerable<Type> GetProfiles()
    {
        return typeof(AutoMapperConfiguration).Assembly.GetTypes()
            .Where(type => !type.IsAbstract && typeof(Profile).IsAssignableFrom(type));
    }
}
 Rob West19 мар. 2013 г., 13:36
IRequiresConfigurationOnStartUp - это интерфейс, который я создал, я использую StructureMap для сканирования экземпляров и запускаю метод Configure
 R. Schreurs19 мар. 2013 г., 11:56
@Jez, я предполагаю, что IRequiresConfigurationOnStartUp требует метод Configure и что это обеспечит вызов Configure. Однако Microsoft не документирует этот интерфейс. Откуда это? В Google Code есть интерфейс, см.code.google.com/p/codecampserver/source/browse/trunk/src/...
 Michel van Engelen16 февр. 2017 г., 14:01
AutoMapper имеет некоторые встроенные функции для добавления профилей в настоящее время:github.com/AutoMapper/AutoMapper/wiki/....
 Jez19 окт. 2012 г., 17:56
И куда ты бежишь?Configure из в приложении MVC?
Решение Вопроса

и этот ответ в основном говорит, почему:

https://groups.google.com/forum/?fromgroups=#!topic/automapper-users/0RgIjrKi28U

Это связано с тем, что AutoMapper позволяет выполнять детерминистическую (стохастическую) оптимизацию. С точки зрения производительности лучше создать все ваши сопоставления, созданные вInitialize вызов.

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