次のクラス階層があると仮定しましょう
class DtoBaseClass
{
public string BaseProperty {get; set;}
}
class A1 : DtoBaseClass
{
public string SomeProperty {get; set;}
}
class A2 : A
{
public string AnotherProperty {get; set;}
}
class DomainClass
{
public string BaseProperty {get; set;}
}
class B1 : DomainClass
{
public string SomeProperty {get; set;}
}
class B2 : DomainClass
{
public string AnotherProperty {get; set;}
}
また、A1とA2のインスタンスを実際に含むDtoBaseClassの配列を返すサービスがあります。この配列をDomainClassインスタンスの配列にマップし、B1 <-> A1、B2 <-> B1間の関係を保存するにはどうすればよいですか?
デフォルトの構成では、DomainClassの配列を取得し、派生クラスのすべてのプロパティを失います。
私はマッピングにこのコードを使用します:
var dtoToDomainMapper =
ObjectMapperManager.DefaultInstance.GetMapper<DtoClasss[], DomainClass>();
var dtoObjects = externalService.GetObjects();
return dtoToDomainMapper.Map(dtoObjects);