Хранить свойства или поля класса в словаре - PullRequest
0 голосов
/ 25 мая 2019

Я хочу создать окно, в котором пользователь может сопоставить поля из файла XML с полями или свойствами класса, а затем получить доступ к сопоставлению для импорта той же структуры XML. Например, у меня есть класс заказа:

public class Order
{
    [Key]
    public string OrderId { get; set; }
    public int Status { get; set; }
    public DateTime ImportDate { get; set; }
}

И XML:

<Order>
  <Header>
    <OrderNo>4711</OrderNo>
    <OrderStatus>20</OrderStatus>
    <OrderConfirmed>1</OrderConfirmed>
    <OrderReference>test</OrderReference>
  </Header>
</Order>

Теперь моя идея - использовать простой метод Linq to XML:

    var ordersInXml = xDoc.Root
                        .Elements("Header")
                        .Select(x => new Order()
                        {
                            OrderId = (string)x.Descendants("OrderNo").First().Value,
                            OrderStatus = (string)x.Descendants("OrderStatus").First().Value

                        })
                    .ToList();

Я хочу иметь возможность каким-то образом создать метод, который сопоставляет атрибуты XML с полями моего класса. Например, получить доступ к словарю в моем коде Linq to XML? Я понятия не имею, как этого добиться. Есть идеи получше?

...