Comment mettre des attributs via XElement

126

J'ai ce code:

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.

Comment ajouter des attributs à Conn? Je souhaite ajouter les attributs que j'ai marqués comme commentaires, mais si j'essaie de définir les attributs Connaprès la définition EcnAdminConf, ils ne sont pas visibles.

Je veux les définir d'une manière ou d'une autre pour que le XML ressemble à ceci:

<Type>
  <Connections>
    <Conn ServerName="FAXSERVER\SQLEXPRESS" DataBase="SPM_483000" /> 
    <Conn ServerName="FAXSERVER\SQLEXPRESS" DataBase="SPM_483000" /> 
  </Connections>
  <UDLFiles /> 
</Type>
Dominateur
la source

Réponses:

252

Ajoutez XAttributele constructeur de XElement, comme

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

Vous pouvez également ajouter plusieurs attributs ou éléments via le constructeur

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

ou vous pouvez utiliser la méthode Add du XElementpour ajouter des attributs

XElement element = new XElement("Conn");
XAttribute attribute = new XAttribute("Server", comboBox1.Text);
element.Add(attribute);
Jehof
la source
Est-il possible de créer une liste ou un tableau de xAttr et de les ajouter tous en même temps?
greg
@greg, vous pouvez utiliser .Add () - surcharge pour transmettre plusieurs objets XAttribute ( docs.microsoft.com/de-de/dotnet/api/… )
Jehof