Как поставить атрибуты через XElement

126

У меня есть такой код:

XElement EcnAdminConf = new XElement("Type",
    new XElement("Connections",
    new XElement("Conn"),
    // Conn.SetAttributeValue("Server", comboBox1.Text);
    // Conn.SetAttributeValue("DataBase", comboBox2.Text))),
    new XElement("UDLFiles")));
    // Conn.

Как мне добавить атрибуты Conn? Я хочу добавить атрибуты, отмеченные как комментарии, но если я попытаюсь установить атрибуты Connпосле определения EcnAdminConf, они не будут видны.

Я хочу как-то установить их так, чтобы XML выглядел так:

<Type>
  <Connections>
    <Conn ServerName="FAXSERVER\SQLEXPRESS" DataBase="SPM_483000" /> 
    <Conn ServerName="FAXSERVER\SQLEXPRESS" DataBase="SPM_483000" /> 
  </Connections>
  <UDLFiles /> 
</Type>
доминирующий
источник

Ответы:

252

Добавьте XAttributeв конструктор XElementтипа

new XElement("Conn", new XAttribute("Server", comboBox1.Text));

Вы также можете добавить несколько атрибутов или элементов через конструктор

new XElement("Conn", new XAttribute("Server", comboBox1.Text), new XAttribute("Database", combobox2.Text));

или вы можете использовать метод Add XElementдля добавления атрибутов

XElement element = new XElement("Conn");
XAttribute attribute = new XAttribute("Server", comboBox1.Text);
element.Add(attribute);
Jehof
источник
Можно ли создать список или массив xAttr и добавить их все сразу?
greg
@greg, вы можете использовать перегрузку .Add () для передачи нескольких объектов XAttribute ( docs.microsoft.com/de-de/dotnet/api/… )
Jehof