Linq to XML - несколько элементов в один класс - PullRequest
3 голосов
/ 28 января 2011

У меня есть следующий XML:

<appSettings>
   <add key="Prop1" value="1" />
   <add key="Prop2" value="2" />
</appSettings>

Существует ли запрос LINQ to XML для загрузки этого раздела в один экземпляр класса ConfigProp?

public class ConfigProp
{
   public string Prop1 {get; set;}
   public string Prop2 {get; set;}
}

Ответы [ 2 ]

4 голосов
/ 28 января 2011

Почему вы не используете это?

System.Configuration.ConfigurationManager.AppSettings["Prop1"];
2 голосов
/ 28 января 2011

Вы захотите что-то вроде этого

var xml = XElement.Parse(
    @"<appSettings><add key=""Prop1"" value=""1"" /><add key=""Prop2"" value=""2"" /></appSettings>");
new ConfigProp
{
    Prop1=xml
        .Elements("add")
        .Single(element=>element.Attribute("key").Value == "Prop1")
        .Attribute("value")
        .Value,
    Prop2 = xml
        .Elements("add")
        .Single(element => element.Attribute("key").Value == "Prop2")
        .Attribute("value")
        .Value
};

Обратите внимание, что если ваш xml не содержит ключей Prop1 и Prop2, это с исключением исключения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...