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
Questa documentazione è stata archiviata e non viene gestita.

Classe XmlAnyElementAttribute

Specifica che il membro, ovvero un campo che restituisce una matrice di oggetti XmlElement o XmlNode, può contenere oggetti che rappresentano qualsiasi elemento XML privo di membro corrispondente nell'oggetto da serializzare o deserializzare.

System.Object
  System.Attribute
    System.Xml.Serialization.XmlAnyElementAttribute

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

[AttributeUsageAttribute(AttributeTargets.Property|AttributeTargets.Field|AttributeTargets.Parameter|AttributeTargets.ReturnValue, AllowMultiple = true)]
public class XmlAnyElementAttribute : Attribute

Il tipo XmlAnyElementAttribute espone i seguenti membri.

  NomeDescrizione
Metodo pubblicoSupportato da XNA Framework4twe3fay.PortableClassLibrary(it-it,VS.100).gifXmlAnyElementAttribute()Inzializza una nuova istanza della classe XmlAnyElementAttribute.
Metodo pubblicoSupportato da XNA Framework4twe3fay.PortableClassLibrary(it-it,VS.100).gifXmlAnyElementAttribute(String)Inizializza una nuova istanza della classe XmlAnyElementAttribute e specifica il nome dell'elemento XML generato nel documento XML.
Metodo pubblicoSupportato da XNA Framework4twe3fay.PortableClassLibrary(it-it,VS.100).gifXmlAnyElementAttribute(String, String)Inizializza una nuova istanza della classe XmlAnyElementAttribute e specifica il nome dell'elemento XML generato nel documento XML e il relativo spazio dei nomi XML.
In alto

  NomeDescrizione
Proprietà pubblicaSupportato da XNA Framework4twe3fay.PortableClassLibrary(it-it,VS.100).gifNameOttiene o imposta il nome dell'elemento XML.
Proprietà pubblicaSupportato da XNA Framework4twe3fay.PortableClassLibrary(it-it,VS.100).gifNamespaceOttiene o imposta lo spazio dei nomi XML generato nel documento XML.
Proprietà pubblicaSupportato da XNA Framework4twe3fay.PortableClassLibrary(it-it,VS.100).gifOrderOttiene o imposta l'ordine esplicito in cui gli elementi vengono serializzati o deserializzati.
Proprietà pubblicaTypeId Quando implementato in una classe derivata, ottiene un identificatore univoco per questo Attribute. (Ereditato da Attribute)
In alto

  NomeDescrizione
Metodo pubblicoSupportato da XNA Framework4twe3fay.PortableClassLibrary(it-it,VS.100).gifEqualsInfrastruttura. Restituisce un valore che indica se questa istanza è uguale ad un oggetto specificato. (Ereditato da Attribute)
Metodo protettoSupportato da XNA Framework4twe3fay.PortableClassLibrary(it-it,VS.100).gifFinalize Consente a un oggetto di provare a liberare risorse ed eseguire altre operazioni di pulizia prima che l'oggetto stesso venga reclamato dalla procedura di Garbage Collection. (Ereditato da Object)
Metodo pubblicoSupportato da XNA Framework4twe3fay.PortableClassLibrary(it-it,VS.100).gifGetHashCode Restituisce il codice hash per questa istanza. (Ereditato da Attribute)
Metodo pubblicoSupportato da XNA Framework4twe3fay.PortableClassLibrary(it-it,VS.100).gifGetType Ottiene il Type dell'istanza corrente. (Ereditato da Object)
Metodo pubblicoIsDefaultAttribute Quando viene eseguito l'override in una classe derivata, indica se il valore di questa istanza è il valore predefinito per la classe derivata. (Ereditato da Attribute)
Metodo pubblicoSupportato da XNA FrameworkMatch Quando viene eseguito l'override in una classe derivata, restituisce un valore che indica se questa istanza equivale a un oggetto specificato. (Ereditato da Attribute)
Metodo protettoSupportato da XNA Framework4twe3fay.PortableClassLibrary(it-it,VS.100).gifMemberwiseClone Crea una copia dei riferimenti dell'oggetto Object corrente. (Ereditato da Object)
Metodo pubblicoSupportato da XNA Framework4twe3fay.PortableClassLibrary(it-it,VS.100).gifToString Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object)
In alto

  NomeDescrizione
Implementazione esplicita dell'interfacciaMetodo privato_Attribute.GetIDsOfNames Esegue il mapping di un set di nomi a un corrispondente set di identificatori di dispatch. (Ereditato da Attribute)
Implementazione esplicita dell'interfacciaMetodo privato_Attribute.GetTypeInfo Recupera le informazioni sui tipi per un oggetto, che possono essere utilizzate per ottenere informazioni sul tipo per un'interfaccia. (Ereditato da Attribute)
Implementazione esplicita dell'interfacciaMetodo privato_Attribute.GetTypeInfoCount Recupera il numero di interfacce di informazioni sui tipi che un oggetto fornisce (0 o 1). (Ereditato da Attribute)
Implementazione esplicita dell'interfacciaMetodo privato_Attribute.Invoke Fornisce l'accesso alle proprietà ed ai metodi esposti da un oggetto. (Ereditato da Attribute)
In alto

Utilizzare XmlAnyElementAttribute per contenere dati arbitrari, ad esempio elementi XML, che possono essere inviati all'interno di un documento XML, come nel caso di metadati in un documento.

Applicare la classe XmlAnyElementAttribute a un campo che restituisce una matrice di oggetti XmlElement o XmlNode. Esistono due modi per utilizzare un campo di questo tipo, a seconda che si debba serializzare o deserializzare un oggetto. In caso di serializzazione, l'oggetto viene generato come elemento o nodo XML, anche se privo di membri corrispondenti nell'oggetto da serializzare. Se si specifica un valore della proprietà Name al momento dell'applicazione dell'attributo, tutti gli oggetti XmlElement o XmlNode inseriti nella matrice devono disporre dello stesso nome di elemento e spazio dei nomi predefinito. In caso contrario, verrà generata un'eccezione. Se si imposta il valore della proprietà Namespace, è necessario impostare anche la proprietà Name, assicurandosi che anche l'oggetto XmlElement o XmlNode abbia gli stessi valori di nome e spazio dei nomi. Se non si specifica alcun valore Name, all'oggetto XmlElement o XmlNode può essere assegnato qualsiasi nome di elemento.

Quando viene chiamato il metodo Deserialize della classe XmlSerializer, tutti gli elementi privi di membro corrispondente nell'oggetto da deserializzare vengono raccolti nella matrice. Dopo la deserializzazione è possibile scorrere l'insieme di elementi XmlElement per elaborare i dati. Se si specifica un valore di Name, la matrice conterrà soltanto elementi XML con tale nome. Se non si specifica un valore di Name, la matrice conterrà tutti gli elementi che non dispongono di un membro corrispondente nella classe. Se una classe contiene più campi ai quali è applicato l'attributo, utilizzare le proprietà Name o Name e Namespace per differenziare il contenuto delle matrici. Se una classe con più campi contiene inoltre un campo per il quale non sono stati impostati valori di proprietà distintivi, ovvero Name e Namespace, durante la deserializzazione, questa matrice conterrà tutti gli elementi XML sconosciuti che non sono già presenti nelle altre matrici. Se una classe contiene più campi per i quali non sono stati impostati i valori distintivi Name o Name e Namespace, il comportamento durante la deserializzazione non è specificato.

È inoltre possibile applicare la classe XmlAnyElementAttribute a un campo che restituisce un unico oggetto XmlElement. In tal caso, è necessario utilizzare le proprietà e i metodi della classe XmlElement per scorrere in modo ricorsivo gli elementi sconosciuti.

È possibile applicare istanze multiple della classe XmlAnyElementAttribute a un membro di classe ma a ogni istanza deve essere assegnato un diverso valore della proprietà Name. In alternativa, se tutte le istanze hanno in comune la stessa proprietà Name, in ognuna di esse deve essere impostato un diverso valore della proprietà Namespace.

Gli eventi UnknownNode e UnknownAttribute della classe XmlSerializer non si verificano se a un membro di una classe viene applicato XmlAnyElementAttribute.

NotaNota

Nel codice è possibile utilizzare la parola XmlAnyElement anziché la forma più estesa XmlAnyElementAttribute.

Per ulteriori informazioni sull'utilizzo degli attributi, vedere Estensione di metadati mediante attributi.

Nell'esempio seguente la classe XmlAnyElementAttribute viene applicata al campo AllElements che restituisce una matrice di oggetti XmlElement.


public class XClass
{
   /* Apply the XmlAnyElementAttribute to a field returning an array
   of XmlElement objects. */
   [XmlAnyElement]
   public XmlElement[] AllElements;
}

public class Test
{
   public static void Main()
   {
      Test t = new Test();
      t.DeserializeObject("XFile.xml");
   }

   private void DeserializeObject(string filename)
   {
      // Create an XmlSerializer.
      XmlSerializer mySerializer = new XmlSerializer(typeof(XClass));

      // To read a file, a FileStream is needed.
      FileStream fs = new FileStream(filename, FileMode.Open);

      // Deserialize the class.
      XClass x = (XClass) mySerializer.Deserialize(fs);

      // Read the element names and values.
      foreach(XmlElement xel in x.AllElements)
         Console.WriteLine(xel.LocalName + ": " + xel.Value);
   }
}


.NET Framework

Supportato in: 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supportato in: 4, 3.5 SP1

Supportato in:

Windows 7, Windows Vista SP1 o versione successiva, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (componenti di base del server non supportati), Windows Server 2008 R2 (componenti di base del server supportati con SP1 o versione successiva), Windows Server 2003 SP2

.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.

Qualsiasi membro static (Shared in Visual Basic) pubblico di questo tipo è thread-safe. I membri di istanza non sono garantiti come thread-safe.
Mostra: