Мой вопрос: какой лучший способ я могу сопоставить один объект с другим наиболее удобным образом. Я не могу изменить способ, с помощью которого объект 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; }
}
Я думаю, что было бы здорово, если бы у меня был какой-то класс сопоставления, который бы взял в объектах model propertyInfo, тип, который я хочу преобразовать, и "itemname", который я хочу вытащить. Есть ли у кого-нибудь какие-либо предложения сделать это чище?
Спасибо!