XAttribute Konstruktory

Definicja

Inicjuje nowe wystąpienie klasy XAttribute.

Przeciążenia

XAttribute(XAttribute)

Inicjuje XAttribute nowe wystąpienie klasy z innego XAttribute obiektu.

XAttribute(XName, Object)

Inicjuje XAttribute nowe wystąpienie klasy z określonej nazwy i wartości.

XAttribute(XAttribute)

Inicjuje XAttribute nowe wystąpienie klasy z innego XAttribute obiektu.

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)

Parametry

other
XAttribute

XAttribute Obiekt do skopiowania.

Wyjątki

Parametr other to null.

Przykłady

W tym przykładzie pokazano, że utworzenie głębokiej kopii drzewa XML powoduje utworzenie kopii, a nie klonowania atrybutu w drzewie.

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  

Ten przykład generuje następujące wyniki:

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

Uwagi

Ten konstruktor jest używany wewnętrznie podczas tworzenia głębokiej kopii drzewa XML.

Zobacz też

Dotyczy

XAttribute(XName, Object)

Inicjuje XAttribute nowe wystąpienie klasy z określonej nazwy i wartości.

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)

Parametry

name
XName

Atrybut XName .

value
Object

Element Object zawierający wartość atrybutu.

Wyjątki

Parametr name or value to null.

Przykłady

W poniższym przykładzie użyto tego konstruktora do utworzenia atrybutów. Przekazuje ciągi jako pierwszy argument do konstruktora XAttribute , który następnie jest niejawnie konwertowany na XName obiekty. Atrybuty są dodawane do elementu.

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)  

Ten przykład generuje następujące wyniki:

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

Uwagi

Istnieje niejawna konwersja z ciągu na XName. Typowym zastosowaniem tego konstruktora jest określenie ciągu jako pierwszego parametru zamiast tworzenia nowego XName, w następujący sposób:

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

Można również użyć przeciążenia operatora dodawania z XNamespace ciągiem i w celu utworzenia elementu XNamew następujący sposób:

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

Aby uzyskać więcej informacji, zobacz Praca z przestrzeniami nazw XML.

Te same podejścia będą działać w przypadku Visual Basic, jednak literały XML zapewniają lepsze podejście do tworzenia drzew XML.

Parametr value może być parametrem String, , double, decimal``float, bool, lub DateTimeTimeSpan. Jeśli wartość to DateTime lub TimeSpan, wartość atrybutu jest poprawnie sformatowana zgodnie ze specyfikacjami W3C.

Zobacz też

Dotyczy