XmlAnyElementAttribute XmlAnyElementAttribute XmlAnyElementAttribute XmlAnyElementAttribute Class

Definizione

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.Specifies that the member (a field that returns an array of XmlElement or XmlNode objects) contains objects that represent any XML element that has no corresponding member in the object being serialized or deserialized.

public ref class XmlAnyElementAttribute : Attribute
[System.AttributeUsage(System.AttributeTargets.Field | System.AttributeTargets.Parameter | System.AttributeTargets.Property | System.AttributeTargets.ReturnValue, AllowMultiple=true)]
[System.AttributeUsage(System.AttributeTargets.Property | System.AttributeTargets.Field | System.AttributeTargets.Parameter | System.AttributeTargets.ReturnValue, AllowMultiple=true)]
public class XmlAnyElementAttribute : Attribute
type XmlAnyElementAttribute = class
    inherit Attribute
Public Class XmlAnyElementAttribute
Inherits Attribute
Ereditarietà
XmlAnyElementAttributeXmlAnyElementAttributeXmlAnyElementAttributeXmlAnyElementAttribute
Attributi

Esempi

L'esempio seguente applica il XmlAnyElementAttribute a un campo denominato AllElements che restituisce una matrice di XmlElement oggetti.The following example applies the XmlAnyElementAttribute to a field named AllElements that returns an array of XmlElement objects.

public ref class XClass
{
public:

   /* Apply the XmlAnyElementAttribute to a field returning an array
      of XmlElement objects. */

   [XmlAnyElement]
   array<XmlElement^>^AllElements;
};

public ref class Test
{
public:
   void DeserializeObject( String^ filename )
   {
      // Create an XmlSerializer.
      XmlSerializer^ mySerializer = gcnew XmlSerializer( XClass::typeid );

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

      // Deserialize the class.
      XClass^ x = dynamic_cast<XClass^>(mySerializer->Deserialize( fs ));

      // Read the element names and values.
      System::Collections::IEnumerator^ myEnum = x->AllElements->GetEnumerator();
      while ( myEnum->MoveNext() )
      {
         XmlElement^ xel = safe_cast<XmlElement^>(myEnum->Current);
         Console::WriteLine( "{0}: {1}", xel->LocalName, xel->Value );
      }
   }
};

int main()
{
   Test^ t = gcnew Test;
   t->DeserializeObject( "XFile.xml" );
}
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);
   }
}
Public Class XClass
    ' Apply the XmlAnyElementAttribute to a field returning an array
    ' of XmlElement objects.
    <XmlAnyElement()> Public AllElements() As XmlElement
End Class 'XClass


Public Class Test
    
    Public Shared Sub Main()
        Dim t As New Test()
        t.DeserializeObject("XFile.xml")
    End Sub 'Main
    
    
    Private Sub DeserializeObject(filename As String)
        ' Create an XmlSerializer.
        Dim mySerializer As New XmlSerializer(GetType(XClass))
        
        ' To read a file, a FileStream is needed.
        Dim fs As New FileStream(filename, FileMode.Open)
        
        ' Deserialize the class.
        Dim x As XClass = CType(mySerializer.Deserialize(fs), XClass)
        
        ' Read the element names and values.
        Dim xel As XmlElement
        For Each xel In  x.AllElements
            Console.WriteLine((xel.LocalName & ": " & xel.Value))
        Next xel
    End Sub 'DeserializeObject
End Class 'Test 

Commenti

Suggerimento

Quando si lavora in una libreria di classi portabile, ad esempio in Silverlight, Windows Phone o progetto di App di Windows Store e si usa .NET Framework 4.0.3 e versioni successive, usare XElement oppure XNode al posto di XmlElement e XmlNode.When working in a portable class library, such as in Silverlight, Windows Phone or Windows Store App project, and you are using the .NET Framework 4.0.3 and above, use XElement or XNode in place of XmlElement and XmlNode.

Usare il XmlAnyElementAttribute per contenere i dati arbitrari (come elementi XML) che possono essere inviati come parte di un documento XML, ad esempio i metadati inviati come parte del documento.Use the XmlAnyElementAttribute to contain arbitrary data (as XML elements) that can be sent as part of an XML document, such as metadata sent as part of the document.

Si applicano i XmlAnyElementAttribute a un campo che restituisce una matrice di XmlElement o XmlNode oggetti.Apply the XmlAnyElementAttribute to a field that returns an array of XmlElement or XmlNode objects. Tale campo può essere utilizzato in due modi, a seconda del fatto che un oggetto viene serializzato o deserializzato.Such a field can be used in two ways, depending on whether an object is being serialized or deserialized. Quando viene serializzato, viene generato l'oggetto come elementi XML o nodi, anche se è non presente alcun membro corrispondente (o i membri) nell'oggetto da serializzare.When serialized, the object is generated as XML elements or nodes, even though they have no corresponding member (or members) in the object being serialized. Se si specifica un Name valore della proprietà quando si applica l'attributo, tutti i XmlElement o XmlNode oggetti inseriti nella matrice devono avere lo stesso elemento predefinito e nome spazio dei nomi oppure viene generata un'eccezione.If you specify a Name property value when applying the attribute, all XmlElement or XmlNode objects inserted into the array must have the same element name and default namespace, or an exception is thrown. Se si imposta il Namespace valore della proprietà, è necessario impostare la Name anche, proprietà e il XmlElement o XmlNode oggetti devono anche avere gli stessi valori di nome e spazio dei nomi.If you set the Namespace property value, you must set the Name property as well, and the XmlElement or XmlNode objects must also have the same name and namespace values. Se nessun Name valore è specificato, il XmlElement o XmlNode gli oggetti possono avere qualsiasi nome di elemento.If no Name value is specified, the XmlElement or XmlNode objects can have any element name.

Quando si chiama il Deserialize metodo di XmlSerializer (classe), tutti gli elementi che non è un membro corrispondente nell'oggetto da serializzare vengono raccolti nella matrice.When you call the Deserialize method of the XmlSerializer class, all elements that do not have a corresponding member in the object being deserialized are collected in the array. Dopo la deserializzazione, scorrere la raccolta di XmlElement elementi per elaborare i dati.After deserialization, iterate through the collection of XmlElement items to process the data. Se si specifica un Name valore, la matrice contiene solo elementi XML con lo stesso nome.If you specify a Name value, the array contains only XML elements with that name. Se non si specifica un Name valore, la matrice contiene tutti gli elementi che non dispongono di alcun membro corrispondente nella classe.If you do not specify a Name value, the array contains all elements that have no corresponding member in the class. Se una classe contiene più di un campo a cui è applicato l'attributo, usare il Name, oppure Name e Namespace proprietà per distinguere il contenuto delle matrici.If a class contains more than one field to which the attribute is applied, use the Name, or Name and Namespace properties to differentiate between the contents of the arrays. Se tale classe (con più campi) contiene anche un campo che non dispone di alcuna differenziazione valori di proprietà impostato (vale a dire Name e Namespace) durante la deserializzazione, questa matrice contiene elementi XML sconosciuti che non sono già presenti in altre matrici.If such a class (with multiple fields) also contains one field that has no differentiating property values set (in other words, Name and Namespace) during deserialization, this array contains any unknown XML elements that are not already contained in the other arrays. Se una classe contiene più di un campo che non dispone una differenziazione Name, oppure Name e Namespace valore impostato, il comportamento durante la deserializzazione è non specificato.If a class contains more than one field that does not have a differentiating Name, or Name and Namespace value set, the behavior during deserialization is unspecified.

È inoltre possibile applicare il XmlAnyElementAttribute a un campo che restituisce un singolo XmlElement oggetto.You can also apply the XmlAnyElementAttribute to a field that returns a single XmlElement object. Se in questo caso, è necessario usare le proprietà e metodi del XmlElement classe in modo ricorsivo di scorrere gli elementi sconosciuti.If you do so, you must use the properties and methods of the XmlElement class to recursively iterate through the unknown elements.

È possibile applicare più istanze del XmlAnyElementAttribute a una classe di membro, ma ogni istanza deve avere un distinct Name valore della proprietà.You can apply multiple instances of the XmlAnyElementAttribute to a class member, but each instance must have a distinct Name property value. In alternativa, se lo stesso Name viene impostata per ogni istanza, distinta Namespace valore della proprietà deve essere impostato per ogni istanza.Or, if the same Name property is set for each instance, a distinct Namespace property value must be set for each instance.

Il UnknownNode e UnknownAttribute eventi delle XmlSerializer non sono presenti se si applica il XmlAnyElementAttribute a un membro di una classe.The UnknownNode and UnknownAttribute events of the XmlSerializer do not occur if you apply the XmlAnyElementAttribute to a member of a class.

Nota

È possibile usare la parola XmlAnyElement nel codice anziché la forma estesa XmlAnyElementAttribute.You can use the word XmlAnyElement in your code instead of the longer XmlAnyElementAttribute.

Per altre informazioni sull'utilizzo di attributi, vedere attributi.For more information about using attributes, see Attributes.

Costruttori

XmlAnyElementAttribute() XmlAnyElementAttribute() XmlAnyElementAttribute() XmlAnyElementAttribute()

Inizializza una nuova istanza della classe XmlAnyElementAttribute.Initializes a new instance of the XmlAnyElementAttribute class.

XmlAnyElementAttribute(String) XmlAnyElementAttribute(String) XmlAnyElementAttribute(String) XmlAnyElementAttribute(String)

Inizializza una nuova istanza della classe XmlAnyElementAttribute e specifica il nome dell'elemento XML generato nel documento XML.Initializes a new instance of the XmlAnyElementAttribute class and specifies the XML element name generated in the XML document.

XmlAnyElementAttribute(String, String) XmlAnyElementAttribute(String, String) XmlAnyElementAttribute(String, String) XmlAnyElementAttribute(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.Initializes a new instance of the XmlAnyElementAttribute class and specifies the XML element name generated in the XML document and its XML namespace.

Proprietà

Name Name Name Name

Ottiene o imposta il nome dell'elemento XML.Gets or sets the XML element name.

Namespace Namespace Namespace Namespace

Ottiene o imposta lo spazio dei nomi XML generato nel documento XML.Gets or sets the XML namespace generated in the XML document.

Order Order Order Order

Ottiene o imposta l'ordine esplicito in cui gli elementi vengono serializzati o deserializzati.Gets or sets the explicit order in which the elements are serialized or deserialized.

TypeId TypeId TypeId TypeId

Quando è implementata in una classe derivata, ottiene un identificatore univoco della classe Attribute.When implemented in a derived class, gets a unique identifier for this Attribute.

(Inherited from Attribute)

Metodi

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Restituisce un valore che indica se questa istanza è uguale a un oggetto specificato.Returns a value that indicates whether this instance is equal to a specified object.

(Inherited from Attribute)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Restituisce il codice hash per l'istanza.Returns the hash code for this instance.

(Inherited from Attribute)
GetType() GetType() GetType() GetType()

Ottiene l'oggetto Type dell'istanza corrente.Gets the Type of the current instance.

(Inherited from Object)
IsDefaultAttribute() IsDefaultAttribute() IsDefaultAttribute() IsDefaultAttribute()

In caso di override in una classe derivata, indica se il valore di questa istanza è il valore predefinito per la classe derivata.When overridden in a derived class, indicates whether the value of this instance is the default value for the derived class.

(Inherited from Attribute)
Match(Object) Match(Object) Match(Object) Match(Object)

Quando è sottoposto a override in una classe derivata, restituisce un valore che indica se questa istanza equivale a un oggetto specificato.When overridden in a derived class, returns a value that indicates whether this instance equals a specified object.

(Inherited from Attribute)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.Returns a string that represents the current object.

(Inherited from Object)

Implementazioni dell'interfaccia esplicita

_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Esegue il mapping di un set di nomi a un set corrispondente di ID dispatch.Maps a set of names to a corresponding set of dispatch identifiers.

(Inherited from Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Recupera le informazioni sul tipo relative a un oggetto, che possono essere usate per ottenere informazioni sul tipo relative a un'interfaccia.Retrieves the type information for an object, which can be used to get the type information for an interface.

(Inherited from Attribute)
_Attribute.GetTypeInfoCount(UInt32) _Attribute.GetTypeInfoCount(UInt32) _Attribute.GetTypeInfoCount(UInt32) _Attribute.GetTypeInfoCount(UInt32)

Recupera il numero delle interfacce di informazioni sul tipo fornite da un oggetto (0 o 1).Retrieves the number of type information interfaces that an object provides (either 0 or 1).

(Inherited from Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Fornisce l'accesso a proprietà e metodi esposti da un oggetto.Provides access to properties and methods exposed by an object.

(Inherited from Attribute)

Si applica a

Vedi anche