我的問題是,我可以以最易維護的方式將一個對象映射到另一個對象的最佳方式是什麼。我無法改變我們得到的Dto對象被設置爲更規範化的方式,所以我需要創建一種方法將其映射到我們的對象實現。將一個對象映射到另一個對象的最佳實踐
下面是示例代碼來說明我需要發生:
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; }
}
,我認爲這將是巨大的,如果我有某種映射類的,將採取在模型對象的PropertyInfo,I型想要轉換爲,以及我想要提取的「itemname」。有沒有人有任何建議,使這個更清潔?
謝謝!
不能確定的映射,但你絕對應該看看泛型和使用泛型集合:http://csharp-station.com/Tutorial/CSharp/Lesson20 – christiandev 2013-04-20 08:17:58
我建議型號的costructor,這需要Dto和映射/轉換/檢查相應的硬編碼,因爲當dto中的某些內容發生更改時,您會收到編譯錯誤。反思並因此處理字符串不會幫助您提高可維護性。 – wonko79 2013-04-20 08:24:36