Mapeo manual con herencia.
Supongamos que tengo dos clases A y ADto.
A hereda de ABase y ADto hereda de ADtoBase.
Tengo dos métodos de extensión para mapear manualmente ABase a ADtoBase y viceversa.
Cuando quiero escribir un método de extensión para mapear A a ADto, ¿hay alguna forma de reutilizar la conversión base para evitar duplicaciones? Es decir, no quiero escribir el mapeo para los campos que existen en la clase base y de alguna manera reutilizar el mapeador base para eso.
Ejemplo:
Clase ABase:
+ string Id;
Clase ADtoBase:
+ string Id;
Clase A: ABase:
+ string Name;
Clase ADto:ADtoBase
+ string Name
public static ADto ToADto(this ADtoBase)
{
// De alguna manera quiero usar el mapeador base (extensión) para no tener que mapear Id nuevamente y solo mapear Name.
}
davy.ai
Sí, es posible reutilizar la conversión base para evitar la duplicación. Puede modificar el método de extensión existente para mapear
ABase
aADtoBase
e incluir el mapeo de los campos comunes, comoId
, y luego llamar a ese método al mapearA
aADto
. Aquí tienes un ejemplo de cómo hacerlo:En este ejemplo, el método
ToADtoBase
mapea los campos deABase
aADtoBase
, incluido el campoId
. El métodoToADto
luego llama al métodoToADtoBase
para reutilizar ese mapeo y solo mapea el campoName
deA
aADto
.