Чтение определенного элемента конфигурации с помощью С#?

60
6

Здесь у меня есть файл конфигурации, и я читаю эти элементы конфигурации в С#. Мне нужно прочитать все элементы на основе хоста <Brand Host="localhost:64995">. Например, если хост является localhost: 64995 мне нужны узлы внутри него, например <add Name="aaa" BrandId="13"/>

Вот моя конфигурация

<SingleSignOn>
<Brands>
<Brand Host="localhost:64995">
<add Name="aaa" BrandId="1" />
</Brand>
<Brand Host="aaaaa">
<add Name="bbbb" BrandId="2" />
</Brand>
</Brands>
</SingleSignOn>

и мой код

string host = GetHostUrl();
List<ConfigurationContract> branditems = null;
XmlDocument xdoc = new XmlDocument();
xdoc.Load(HttpContext.Current.Server.MapPath("~/") + "SSO.config");
XmlNode xnodes = xdoc.SelectSingleNode("configuration/SingleSignOn/Brands");
foreach (XmlNode xnn in xnodes.ChildNodes)
{

}

и здесь я string host = GetHostUrl(); значение хоста из этой string host = GetHostUrl(); и если значение хоста соответствует элементу в конфиге, оно должно читать и получать этот элемент.

Любое предложение?

спросил(а) 2014-01-28T10:42:00+04:00 6 лет, 12 месяцев назад
1
Решение
60

Внутри вашего foreach вы можете использовать

if (xnn.Attributes["Host"].Value == host)
{
foreach (XmlNode i in xnn.ChildNodes) // i is the child node inside <Brand Host="localhost:64995"></Brand>
{
if (i.Attributes["Name"].Value == "aaa") // or even i.Attributes["BrandId"].Value == "1"
{
// Do your stuff
}
}
}

Надеюсь, поможет!

ответил(а) 2014-01-28T12:03:00+04:00 6 лет, 12 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема