Можно ли использовать Automapper в консольном приложении? - PullRequest
10 голосов
/ 18 июля 2011

Можно ли использовать automapper в консольном приложении?

На его странице Getting Started предполагается, что класс начальной загрузки вызывается из запуска приложения, но естьбольше никаких подробностей о классе, который нужно добавить и вызвать из Main().

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

Ответы [ 2 ]

10 голосов
/ 18 июля 2011

Вы можете инициализировать Automapper при запуске консоли, ограничений нет; Application_start - это место запуска веб-программы в .net / iis, то есть код, который вызывается только один раз. Любая конфигурация, которую вы должны вызвать в начале веб-проекта, использует этот метод.

изменить для комментария : если вы не хотите создавать свои сопоставления на лету, но предпочитаете иметь место для инициализации всех ваших сопоставлений, просто создайте функцию с именем InitializeAutomapper и сделайте Mapper.Configure<X, Y> звонит сюда. Затем в вашем методе Main() просто вызовите функцию. Существует множество способов обработки конфигурации, но это более простой способ обработки.

пример кода

class Program
    {
        static void Main(string[] args)
        {
            // the app is starting here
            InitializeAutomapper();
            // we're configured, let's go!
            DoStuff();
        }

        static void InitializeAutomapper()
        {
            AutoMapper.Mapper.CreateMap<TypeA, TypeB>();
            AutoMapper.Mapper.CreateMap<TypeC, TypeD>();
            AutoMapper.Mapper.CreateMap<TypeE, TypeF>();
        }
    }
0 голосов
/ 18 июля 2011

Да, но, похоже, он зависит от System.Web, который также должен быть включен.

(Подробнее см. Таинственное исчезновение )

...