Automapper;отображение строки [] в словарь - PullRequest
1 голос
/ 24 ноября 2011

Вот что я пытаюсь сделать:

class Source
{
   int MyProperty1 { get; set;}
   ....
   string[] MyStrings { get; set;}
}

class Destination
{
  int MyProperty1 { get; set;}
  ...
  IDictionary<MyEnum, string> MyStrings {get;set;}
}

Вот отображение:

Mapper.CreateMap<Source, Destination>();

Mapper.CreateMap<string[], IDictionary<MyEnum, string().
       ConvertUsing<CustomArraytoDict>();

И реализация ITypeConverter:

public class CustomArraytoDict : ITypeConverter<string[], IDictionary<MyEnum, string>>
{
    public IDictionary<MyEnum, string> Convert(ResolutionContext context)
    {
        var periodNames = new Dictionary<MyEnum, string>();

        //Create new Key Value pairs from 
        //context.SourceValue and add them to periodNames.

        return periodNames;
    }
}

Насколько я понимаю, "ConvertUsing ()" должен гарантировать, что во время отображения AutoMapper будет использовать ссылку на словарь MyStrings, как это предусмотрено CustomArraytoDict. Однако я не вижу, что происходит. Кажется, AutoMapper правильно вызывает CustomArraytoDict во время сопоставления объекта Source с объектом Destination, но ссылка MyStrings в объекте Destination остается той, которая была создана и инициализирована конструктором Destination. Ссылка, возвращаемая CustomArraytoDict, не используется.

Что я мог делать не так?

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