Пользовательский конструктор AutoMapper TypeConverter - PullRequest
7 голосов
/ 19 ноября 2010

Привет! Я использую AutoMapper для перехода с модели на Dto, и она отлично работает. В одном TypeConverter мне нужно ввести интерфейс (службу), который должен использоваться преобразователем типов для выполнения преобразования.

Как мне это сделать в AutoMapper?

1 Ответ

12 голосов
/ 19 ноября 2010

Разве вы не можете просто создать конструктор в своем классе TypeConverter, принимая сервис?Вместо использования универсального ConvertUsing, передайте новый экземпляр вашего TypeConverter, созданного с помощью сервиса ...

    public class MyTypeConverter : TypeConverter<String, String>
    {
        public MyTypeConverter(IMyService service)
        {
            MyService = service;
        }

        public IMyService MyService { get; set; }

        protected override string  ConvertCore(string source)
        {
            //use service
        }
     }

Использование:

     Mapper.CreateMap<string, string>()
                     .ConvertUsing(new MyTypeConverter(_myService));
...