La mia domanda è, qual è il modo migliore in cui posso mappare un oggetto a un altro nel modo più gestibile. Non riesco a cambiare il modo in cui l'oggetto Dto che stiamo ottenendo è impostato per essere più normalizzato, quindi ho bisogno di creare un modo per mappare questo alla nostra implementazione del loro oggetto.Best practice per il mapping di un oggetto a un altro
Ecco esempio di codice per mostrare che cosa ho bisogno per accadere:
class Program
{
static void Main(string[] args)
{
var dto = new Dto();
dto.Items = new object[] { 1.00m, true, "Three" };
dto.ItemsNames = new[] { "One", "Two", "Three" };
var model = GetModel(dto);
Console.WriteLine("One: {0}", model.One);
Console.WriteLine("Two: {0}", model.Two);
Console.WriteLine("Three: {0}", model.Three);
Console.ReadLine();
}
private static Model GetModel(Dto dto)
{
var result = new Model();
result.One = Convert.ToDecimal(dto.Items[Array.IndexOf(dto.ItemsNames, "One")]);
result.Two = Convert.ToBoolean(dto.Items[Array.IndexOf(dto.ItemsNames, "Two")]);
result.Three = dto.Items[Array.IndexOf(dto.ItemsNames, "Three")].ToString();
return result;
}
}
class Dto
{
public object[] Items { get; set; }
public string[] ItemsNames { get; set; }
}
class Model
{
public decimal One { get; set; }
public bool Two { get; set; }
public string Three { get; set; }
}
Penso che ciò che sarebbe bello è che se ho avuto una sorta di classe mapper che avrebbe preso nel modello di oggetti PropertyInfo, il tipo I voglio convertire in, e il "itemname" voglio estrarre. Qualcuno ha qualche suggerimento per rendere questo più pulito?
Grazie!
Non sono sicuro circa la mappatura, ma si dovrebbe assolutamente guardare farmaci generici e l'utilizzo di collezioni generici: http://csharp-station.com/Tutorial/CSharp/Lesson20 – christiandev
Vorrei suggerire un costructor di modello che prende un Dto e mappe/converte/controlla di conseguenza hardcoded quando ottieni errori di compilazione quando qualcosa cambia in dto. La riflessione e quindi la gestione delle stringhe non aiutano a migliorare la manutenibilità. – wonko79