我有一个项目,我试图将字典映射到 ViewModel.NamedProperty。我正在尝试使用 AutoMapper 自定义解析器来执行基于约定的映射。我的约定是,如果源字典键存在命名属性,则从字典的值映射一个属性。这是我的示例类:
class User
{
string Name {get;set;}
Dictionary<string, AccountProp> CustomProperties {get;set;}
}
class AccountProp
{
string PropertyValue {get;set;}
//Some other properties
}
class UserViewModel
{
string Name {get;set;}
DateTime LastLogin {get;set;}
string City {get;set}
}
var user = new User()
{
Name = "Bob"
};
user.CustomProperties.Add("LastLogin", new AccountProp(){PropertyValue = DateTime.Now};
user.CustomProperties.Add("City", new AccountProp(){PropertyValue = "SomeWhere"};
我想按照所有属性的约定将 User CustomProperties 字典映射到展平的 UserViewModel,并且我不想为映射单独指定每个属性。
解决此问题的最佳方法是什么?我在考虑自定义值解析器,但似乎我必须指定要单独映射的每个成员。如果我想这样做,我会在没有 AutoMapper 的情况下手动执行映射。