Automapper;将字符串[]映射到Dictionary <myenum,string =“”> </myenum,>

时间:2011-11-24 13:09:53

标签: automapper

以下是我要做的事情:

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应该使用CustomArraytoDict提供的MyStrings字典的引用。但是,我没有看到这种情况发生。在将Source对象映射到Destination对象期间,AutoMapper似乎确实正确调用了CustomArraytoDict,但Destination对象中的MyStrings引用仍然是Destination构造函数创建和初始化的引用。不使用CustomArraytoDict返回的引用。

我可能做错了什么?

0 个答案:

没有答案