Compartilhar via


XAttribute Construtores

Definição

Inicializa uma nova instância da classe XAttribute.

Sobrecargas

XAttribute(XAttribute)

Inicializa uma nova instância da classe XAttribute de outro objeto XAttribute.

XAttribute(XName, Object)

Inicializa uma nova instância da classe XAttribute do valor e nome especificados.

XAttribute(XAttribute)

Inicializa uma nova instância da classe XAttribute de outro objeto XAttribute.

public:
 XAttribute(System::Xml::Linq::XAttribute ^ other);
public XAttribute (System.Xml.Linq.XAttribute other);
new System.Xml.Linq.XAttribute : System.Xml.Linq.XAttribute -> System.Xml.Linq.XAttribute
Public Sub New (other As XAttribute)

Parâmetros

other
XAttribute

Um objeto XAttribute do qual copiar.

Exceções

O parâmetro other é null.

Exemplos

Este exemplo demonstra que a criação de uma cópia profunda de uma árvore XML cria uma cópia, não um clone, de um atributo na árvore.

XElement root1 = XElement.Parse("<Root Att1='abc' />");  
// Make a deep copy.  
XElement root2 = new XElement(root1);  
if (root1.Attribute("Att1") == root2.Attribute("Att1"))  
    Console.WriteLine("This will not be printed");  
else  
    Console.WriteLine("Creating a deep copy created a new attribute from the original.");  
Dim root1 As XElement = <Root Att1='abc'/>  
' Make a deep copy.  
Dim root2 As XElement = New XElement(root1)  
If root1.Attribute("Att1") Is root2.Attribute("Att1") Then  
    Console.WriteLine("This will not be printed")  
Else  
    Console.WriteLine("Creating a deep copy created a new attribute from the original.")  
End If  

Esse exemplo gera a saída a seguir:

Creating a deep copy created a new attribute from the original.  

Comentários

Esse construtor é usado principalmente internamente ao fazer uma cópia profunda de uma árvore XML.

Confira também

Aplica-se a

XAttribute(XName, Object)

Inicializa uma nova instância da classe XAttribute do valor e nome especificados.

public:
 XAttribute(System::Xml::Linq::XName ^ name, System::Object ^ value);
public XAttribute (System.Xml.Linq.XName name, object value);
new System.Xml.Linq.XAttribute : System.Xml.Linq.XName * obj -> System.Xml.Linq.XAttribute
Public Sub New (name As XName, value As Object)

Parâmetros

name
XName

O XName do atributo.

value
Object

Um Object que contém o valor desse atributo.

Exceções

O parâmetro name ou value é null.

Exemplos

O exemplo a seguir usa esse construtor para criar atributos. Ele passa cadeias de caracteres como o primeiro argumento para o XAttribute construtor, que são convertidos implicitamente em XName objetos. Os atributos são adicionados a um elemento.

XElement root;  

double dbl = 12.345;  
XAttribute[] attArray = {  
    new XAttribute("Att4", 1),  
    new XAttribute("Att5", 2),  
    new XAttribute("Att6", 3)  
};  
DateTime dt = new DateTime(2006, 10, 6, 12, 30, 00);  

// string content  
root = new XElement("Root",  
    new XAttribute("Att1", "Some text"),  

    // double content  
    new XAttribute("Att2", dbl),  

    // DateTime content  
    new XAttribute("Att3", dt),  

    // XAttribute array content  
    attArray  
);  

Console.WriteLine(root);  
Dim dbl As Double = 12.345  
Dim attArray As XAttribute() = { _  
    New XAttribute("Att4", 1), _  
    New XAttribute("Att5", 2), _  
    New XAttribute("Att6", 3) _  
}  
Dim dt As DateTime = New DateTime(2006, 10, 6, 12, 30, 0)  
Dim root As XElement = <Root Att1="Some text"  
                           Att2=<%= dbl %>  
                           Att3=<%= dt %>  
                           <%= attArray %>  
                       />  
Console.WriteLine(root)  

Esse exemplo gera a saída a seguir:

<Root Att1="Some text" Att2="12.345" Att3="2006-10-06T12:30:00" Att4="1" Att5="2" Att6="3" />  

Comentários

Há uma conversão implícita de cadeia de caracteres para XName. O uso típico desse construtor é especificar uma cadeia de caracteres como o primeiro parâmetro em vez de criar um novo XName, da seguinte maneira:

XElement root = new XElement("Root",  
    new XAttribute("AnAttributeName", "Content")  
);  

Você também pode usar a sobrecarga do operador de adição com uma cadeia de caracteres e uma XNamespace cadeia de caracteres para criar um XName, da seguinte maneira:

XNamespace aw = "http://www.adventure-works.com";  
XElement root = new XElement(aw + "Root",  
    new XAttribute(aw + "AnAttributeName", "Content")  
);  

Para obter mais informações, consulte Trabalhar com namespaces XML.

Essas mesmas abordagens funcionarão para Visual Basic, no entanto, literais XML fornecem uma abordagem melhor para criar árvores XML.

O value parâmetro pode ser umString, , float``double, decimal, , boolou DateTimeTimeSpan. Se o valor for um DateTime ou TimeSpan, o valor do atributo será formatado corretamente de acordo com as especificações do W3C.

Confira também

Aplica-se a