Automapper - 字典到对象映射不起作用?

Automapper - 字典到对象映射不起作用?

问题描述:

我想将字典转换为对象。我试过以下,但它不工作:Automapper - 字典到对象映射不起作用?

public class FormField 
{ 
    public string FieldName { get; set;} 
    public string FieldValue { get; set;} 
} 

var formData = new List<FormField> 
{ 
    new FormField {FieldName = "date", FieldValue = "2017-09-14"}, 
    new FormField {FieldName = "name", FieldValue = "Job blogs"}, 
    new FormField {FieldName = "isenabled", FieldValue = "true"} 
}; 

public class MyViewModel 
{ 
    [Required] 
    public DateTime Date { get; set; } = DateTime.now; 

    [Required] 
    public string Name { get; set; } 

    public boolean IsEnabled { get; set; } 

    public IEnumerable<SelectListItem> Titles 
    { 
    get 
    { 
     var options = new List<SelectListItem> 
     { 
      new SelectListItem(){ Value = "Mr", Text = "Mr" }, 
      new SelectListItem(){ Value = "Mrs", Text = "Mrs" }      
     }; 
     return options; 
    } 
    } 
} 

的Global.asax:

protected void Application_Start() 
{ 
    Mapper.Initialize(cfg => {}); 
} 

代码

var viewModel = Mapper.Map<MyViewModel>(formData.ToDictionary(x => x.FieldName, x => (object) x.FieldValue)) 

注意我使用automapper 5.0.2。

+0

你正在得到什么错误? –

+0

@Jan_V没有错误 - 'viewModel'是空的,即没有设置值。 – adam78

+0

如果我改变你的代码给定,以便它实际上编译这个工作正常在.NET 4.5,Automapper 5.0.2控制台应用程序... – Equalsk

它适用于我最新的。升级:)

+0

我甚至不确定该版本是否有责任。我敢打赌你甚至没有执行这个确切的代码。因为它不能编译:)所以运行你发布的代码,而不是别的。 –