私はドメインオブジェクトを持っています
public class ProductModel
{
public long Id {get;set;}
public string Name {get;set;}
public string SerialNumber {get;set;}
}
シングル Dto クラス:
public class ProductDto
{
public long Id {get;set;}
public string Name {get;set;}
public string SerialNumber {get;set;}
}
Dto オブジェクトのリストである単一の Dto クラス:
public class ProductListDto : List<ProductDto>
{
public List<ProductDto> Products;
public ProductListDto()
{
Products = new List<ProductDto>();
}
}
また、ドメイン オブジェクトのリストを Dto オブジェクトのリストにマップして、ProductListDto オブジェクトの「Products」プロパティが ProductModel オブジェクトのリストに自動的にマップされるようにしたいと考えています。
ProductListDto dto = new ProductListDto();
Mapper.CreateMap<ProductModel, ProductDto>();
/* dto = (ProductListDto) Mapper.Map<List<ProductModel>, List<ProductDto>>((List<ProductModel>)model); this code line causes error. It is commented out. */
dto.Products = Mapper.Map<List<ProductModel>, List<ProductDto>>((List<ProductModel>)model); // (*) works OK but need to specify "Products" property
コード行 (*) は正常に動作しますが、コード行 (*) 以外に dto オブジェクトの "Products" プロパティを自動的に (暗黙的に) マップする別の方法があるかどうか知りたいです。
つまり、コード行の左側 (*) のようなコードを記述する必要はありません。