Jack Chan
100
Mapeo por aplanamiento (Flattening)
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName - Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Concepto
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Concepto
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Concepto
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Concepto
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Concepto
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName - Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Concepto
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Concepto
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Concepto
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Concepto
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Concepto
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Concepto
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Concepto
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Concepto
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName - Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Concepto
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Concepto
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Concepto
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Concepto
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Concepto
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Concepto
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Concepto
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName - Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Concepto
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Concepto
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Concepto
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Concepto
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Concepto
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Concepto
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName - Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Concepto
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName - Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Concepto
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName - Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Concepto
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName - Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Concepto
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName - Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Concepto
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName - Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Concepto
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName - Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Concepto
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName - Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Concepto
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName - Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Concepto
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName - Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Concepto
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName - Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)
Concepto
Por defecto, AutoMapper no solo mapea propiedades con el mismo nombre, sino que también sigue reglas de aplanamiento (Flattening):
Si el objeto de origen (Person) no tiene una propiedad que coincida en el destino (People), AutoMapper realiza automáticamente lo siguiente:
- Divide las propiedades de objetos anidados:
Cn.Name→ propiedad destinoCnName- Busca métodos sin parámetros que comiencen con
Get:GetTotal()→ propiedad destinoTotal
Código completo
using AutoMapper;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Inicializar la configuración de AutoMapper
Mapper.Initialize(x =>
{
x.CreateMap();
});
// Objeto de origen Person
Person p = new Person()
{
Age = 12,
Cn = new Chinese() { Name = "Jack Chan" },
Birthday = DateTime.Now,
Sex = true,
Salary = 5000
};
People peo = new People();
// Ejecutar el mapeo
Mapper.Map(p, peo);
Console.WriteLine(peo.CnName); // Salida: Jack Chan [Aplanamiento: Cn.Name → CnName]
Console.WriteLine(peo.Total); // Salida: 100 [Aplanamiento: GetTotal() → Total]
Console.ReadKey();
}
}
// Clase de origen
class Person
{
public int Age { get; set; }
// Objeto anidado
public Chinese Cn { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Método sin parámetros que empieza con Get, se mapea automáticamente a la propiedad Total
public decimal GetTotal()
{
return 100M;
}
}
public class Chinese
{
public string Name { get; set; }
}
// Clase de destino
class People
{
public int Age { get; set; }
// Resultado del aplanamiento: concatena el objeto anidado Cn y Name en CnName
public string CnName { get; set; }
public decimal Salary { get; set; }
public bool Sex { get; set; }
public DateTime Birthday { get; set; }
// Resultado del aplanamiento: coincide con el método GetTotal() de origen
public decimal Total { get; set; }
}
}
Resumen
- Concatenación automática de propiedades de objetos anidados
Origen:Person.Cn.Name
Propiedad destino:CnName
AutoMapper concatena automáticamente el objeto anidadoCnyName, y asigna el resultado aCnName. No es necesario configurarForMembermanualmente. - Coincidencia de métodos sin parámetros que empiezan con Get
Método de origen:public decimal GetTotal()
Propiedad destino:public decimal Total
Se elimina el prefijoGety el valor de retorno del método se asigna automáticamente aTotal.
Nota: El método debe ser sin parámetros para que se active esta regla de aplanamiento.
Salida
Jack Chan
100
Mapeo por aplanamiento (Flattening)