EmitMapper: массив карт производных классов - PullRequest
1 голос
/ 02 сентября 2011

Давайте предположим, что у нас следующая иерархия классов

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;}
}

Также у меня есть служба, которая возвращает массив DtoBaseClass, который действительно содержит экземпляры A1 и A2.Как мне сопоставить этот массив с массивом экземпляров DomainClass и сохранить связь между B1 <-> A1, B2 <-> B1?

В конфигурации по умолчанию я получу массив DomainClass и потеряю все свойства производных классов.

Я использую этот код для отображения:

var dtoToDomainMapper =
ObjectMapperManager.DefaultInstance.GetMapper<DtoClasss[], DomainClass>();

var dtoObjects = externalService.GetObjects();
return dtoToDomainMapper.Map(dtoObjects);
...