Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Classe XName

 

Data di pubblicazione: ottobre 2016

Rappresenta un nome di un elemento o attributo XML.

Spazio dei nomi:   System.Xml.Linq
Assembly:  System.Xml.Linq (in System.Xml.Linq.dll)

System.Object
  System.Xml.Linq.XName

[SerializableAttribute]
public sealed class XName : IEquatable<XName>, ISerializable

NomeDescrizione
System_CAPS_pubpropertyLocalName

Ottiene la parte locale (non qualificata) del nome.

System_CAPS_pubpropertyNamespace

Ottiene la parte dello spazio dei nomi del nome completo.

System_CAPS_pubpropertyNamespaceName

Restituisce l'URI del XNamespace per questo XName.

NomeDescrizione
System_CAPS_pubmethodEquals(Object)

Determina se l'oggetto specificato XName è uguale all'oggetto XName.(Esegue l'override di Object.Equals(Object).)

System_CAPS_pubmethodSystem_CAPS_staticGet(String)

Ottiene un XName oggetto da un nome espanso.

System_CAPS_pubmethodSystem_CAPS_staticGet(String, String)

Ottiene un XName oggetto da un nome locale e uno spazio dei nomi.

System_CAPS_pubmethodGetHashCode()

Ottiene un codice hash per l'oggetto XName.(Esegue l'override di Object.GetHashCode().)

System_CAPS_pubmethodGetType()

Ottiene l'oggetto Type dell'istanza corrente.(Ereditato da Object.)

System_CAPS_pubmethodToString()

Restituisce il nome XML esteso nel formato {namespace}localname.(Esegue l'override di Object.ToString().)

NomeDescrizione
System_CAPS_puboperatorSystem_CAPS_staticEquality(XName, XName)

Restituisce un valore che indica se due istanze di XName sono uguali.

System_CAPS_puboperatorSystem_CAPS_staticImplicit(String to XName)

Converte una stringa formattata come un nome XML esteso (ovvero,{namespace}localname) a un XName oggetto.

System_CAPS_puboperatorSystem_CAPS_staticInequality(XName, XName)

Restituisce un valore che indica se due istanze di XName non sono uguali.

NomeDescrizione
System_CAPS_pubinterfaceSystem_CAPS_privmethodIEquatable<XName>.Equals(XName)

Indica se l'oggetto XName corrente è uguale all'oggetto XName specificato.

System_CAPS_pubinterfaceSystem_CAPS_privmethodISerializable.GetObjectData(SerializationInfo, StreamingContext)

Popola un oggetto SerializationInfo con i dati richiesti per serializzare l'oggetto di destinazione.

I nomi XML includono uno spazio dei nomi e nome locale. Oggetto nome completo è la combinazione di spazio dei nomi e nome locale.

XName non contiene alcun costruttore pubblico. Al contrario, questa classe fornisce una conversione implicita da String che consente di creare un XName. La posizione più comune è utilizzare la conversione è durante la creazione di un elemento o attributo: il primo argomento per il XElement costruttore è un XName. Passando una stringa, è possibile sfruttare la conversione implicita. Il codice seguente crea un elemento con un nome in nessuno spazio dei nomi:


                XElement root = new XElement("ElementName", "content");
Console.WriteLine(root);

In Visual Basic, è preferibile utilizzare valori letterali XML:


                Dim root As XElement = <ElementName>content</ElementName>
Console.WriteLine(root)

Questo esempio produce il seguente output:


<ElementName>content</ElementName>

Assegnare una stringa a un XName utilizza la conversione implicita da String.

Nell'esempio di Visual Basic viene creato il XElement utilizzando i valori letterali XML. Anche se vengono utilizzati valori letterali XML, un XName oggetto viene creato per il XElement.

Inoltre, è possibile chiamare il Get metodo per un XName oggetto. Tuttavia, il metodo consigliato consiste nell'utilizzare la conversione implicita da stringa.

Come nel codice XML, un XName può trovarsi in uno spazio dei nomi, o può essere in nessuno spazio dei nomi.

Per c#, l'approccio consigliato per la creazione di un XName in uno spazio dei nomi consiste nel dichiarare il XNamespace dell'oggetto, quindi utilizzare l'override dell'operatore di addizione.

Per Visual Basic, l'approccio consigliato consiste nell'utilizzare valori letterali XML e dichiarazioni di spazio dei nomi globale per creare codice XML in uno spazio dei nomi.


                XNamespace aw = "http://www.adventure-works.com";
XElement root = new XElement(aw + "ElementName", "content");
Console.WriteLine(root);

Questo esempio produce il seguente output:


<ElementName xmlns="http://www.adventure-works.com">content</ElementName>

Il Namespace proprietà di un XName oggetto è garantito che non sia null. Se il XName in nessuno spazio dei nomi, il Namespace verrà impostata su None. Il codice seguente illustra questo processo:


                XElement root = new XElement("ElementName", "content");
if (root.Name.Namespace == XNamespace.None)
    Console.WriteLine("The element is in no namespace.");
else
    Console.WriteLine("The element is in a namespace.");

Questo esempio produce il seguente output:

The element is in no namespace.

È inoltre possibile creare un XName da un nome XML esteso nel formato {namespace}localname:


                XElement root = new XElement("{http://www.adventure-works.com}ElementName", "content");
Console.WriteLine(root);

Questo esempio produce il seguente output:


<ElementName xmlns="http://www.adventure-works.com">content</ElementName>

Tenere presente che la creazione un XName tramite un nome espanso è meno efficiente rispetto alla creazione di un XNamespace oggetto e dell'utilizzo dell'override dell'operatore di addizione. È inoltre meno efficiente dell'importazione di uno spazio dei nomi globale e utilizzando i valori letterali XML in Visual Basic.

Se si crea un XName utilizzando un nome esteso, LINQ to XML deve individuare l'istanza suddivisi in elementi di uno spazio dei nomi. Questa operazione deve essere ripetuta per ogni utilizzo di un nome espanso. Questo tempo aggiuntivo è probabilmente trascurabile durante la scrittura di query LINQ. Tuttavia, potrebbe essere significativo durante la creazione di un albero XML di grandi dimensioni.

XName gli oggetti sono necessariamente suddivisi; ovvero, se due XName gli oggetti hanno esattamente lo stesso spazio dei nomi e lo stesso nome locale, condivideranno la stessa istanza. Gli operatori di confronto e uguaglianza vengono inoltre forniti in modo esplicito a questo scopo.

Tra gli altri vantaggi, questa funzionalità consente di velocizzare l'esecuzione di query. Quando il filtro sul nome del elementi o attributi, il confronto dell'identità, il confronto dei confronti espressi nei predicati. È molto più veloce per determinare che i due riferimenti si riferiscono allo stesso oggetto anziché confrontare due stringhe.

Universal Windows Platform
Disponibile da 8
.NET Framework
Disponibile da 3.5
Libreria di classi portabile
Supportato in: piattaforme .NET portabili
Silverlight
Disponibile da 2.0
Windows Phone Silverlight
Disponibile da 7.0
Windows Phone
Disponibile da 8.1

I membri statici pubblici ( Condiviso in Visual Basic) di questo tipo è thread safe. Non tutti i membri di istanza sono garantiti come thread safe.

Torna all'inizio
Mostra: