这个问题在这里已有答案:
我试图将Superhero模型自动映射到Supervillan模型,每个模型都有类似的字典声明:
超级英雄:
public class Superheroes {
public Dictionary<string, SomeHero>> SuperNumber {get; set;}
}
public class SomeHero {
// unique properties
}
超级恶棍:
public class Supervillans {
public Dictionary<string, SomeVillan>> SuperNumber {get; set;}
}
public class SomeVillan {
// unique properties
}
我尝试在其他类似的线程中遵循建议,但没有成功。这是我最近的尝试,执行失败:
CreateMap<KeyValuePair<string, Superheroes>, KeyValuePair<string, Supervillans>>();
我怎么能把我的Superhero qazxsw poi字典映射到我的Super Villain qazxsw poi字典?
注意:SomeHero / SomeVillan模型将具有独特的属性,但我对此问题并不关心它们。
它应该开箱即用。字典不需要显式配置映射:SuperNumber
。如果属性与我的示例中的相同,则对于类也是如此。
SuperNumber
如果您随后使用如下所示的automapper,则映射应该自动运行。
Dynamic and ExpandoObjects
如果你想对类的映射进行硬编码,那么应该这样做:
public class ObjA
{
public string Name { get; set; }
}
public class ObjB
{
public string Name { get; set; }
}
public class ClassA
{
public Dictionary<string, ObjA> Vals { get; set; } = new Dictionary<string, ObjA>{
{"a", new ObjA(){ Name = "A", } },
{"b", new ObjA(){ Name = "B", } },
{"c", new ObjA(){ Name = "C", } },
{"d", new ObjA(){ Name = "D", } },
};
}
public class ClassB
{
public Dictionary<string, ObjB> Vals { get; set; } = new Dictionary<string, ObjB>{
{"a", new ObjB(){ Name = "A", } },
{"b", new ObjB(){ Name = "B", } },
{"c", new ObjB(){ Name = "C", } },
{"d", new ObjB(){ Name = "D", } },
};
}