1
我試圖映射類似下面的內容。使用派生類型從基本列表映射到另一個基本列表
public abstract class AnimalBLO { }
public abstract class AnimalDLO { }
public class HumanBLO : AnimalBLO { }
public class HumanDLO : AnimalDLO { }
public class LionBLO : AnimalBLO { }
public class LionDLO : AnimalDLO { }
internal class Program
{
private static void Main(string[] args)
{
Mapper.CreateMap<HumanDLO, HumanBLO>();
Mapper.CreateMap<LionDLO, LionBLO>();
var dlos = new List<AnimalDLO>()
{
new HumanDLO(),
new LionDLO()
};
var result = Mapper.Map<List<AnimalBLO>>(dlos);
}
}
其中列表的基本類型是AnimalBLO,但它們映射爲派生類型。有沒有辦法做到這一點,而不是把所有的東西都扔出去,然後把它們結合在一起?
我想這個代碼將工作:
Mapper.CreateMap<AnimalDLO, AnimalBLO>()
.Include<HumanDLO, HumanBLO>()
.Include<LionDLO, LionBLO>();
Mapper.CreateMap<HumanDLO, HumanBLO>();
Mapper.CreateMap<LionDLO, LionBLO>();
但是,下面的異常消息拋出:
{ 「抽象類的實例不能被創建。」}
這看起來確實是我想要的,我今晚會測試它,很可能接受!謝謝。 –
這看起來像適用於較舊版本的AutoMapper(如果任何人對於過時的警告都可以,那麼當前版本可以)。 –