Como colocar atributos via XElement


126

Eu tenho este código:

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.

Como adiciono atributos a Conn? Quero adicionar os atributos que marquei como comentários, mas se eu tentar definir os atributos Connapós a definição EcnAdminConf, eles não serão visíveis.

Eu quero defini-los de alguma forma para que o XML fique assim:

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

Respostas:


252

Adicione XAttributeo construtor do XElement, como

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

Você também pode adicionar vários atributos ou elementos através do construtor

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

ou você pode usar o Add-Method do XElementpara adicionar atributos

XElement element = new XElement("Conn");
XAttribute attribute = new XAttribute("Server", comboBox1.Text);
element.Add(attribute);

É possível criar uma lista ou matriz de xAttr e adicioná-los todos de uma vez?
greg

@ Greg você poderia usar o .Add () - sobrecarga de passar em múltiplos XAttribute objetos ( docs.microsoft.com/de-de/dotnet/api/... )
Jehof
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.