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)]
public class XmlAnyElementAttribute : Attribute
type XmlAnyElementAttribute = class
    inherit Attribute
Public Class XmlAnyElementAttribute
Inherits Attribute
Ereditarietà
XmlAnyElementAttributeXmlAnyElementAttributeXmlAnyElementAttributeXmlAnyElementAttribute
Attributi

Esempi

Nell'esempio seguente viene applicato 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
    
    
    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
End Class 'Test 

Commenti

Suggerimento

Quando si lavora in una libreria di classi portabile, ad esempio in Silverlight, Windows Phone o in un progetto di app di Windows Store, si usa il .NET Framework XElement 4.0.3 e versioni successive XmlElement , XmlNodeusare o XNode al posto di e.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.

Utilizzare l' XmlAnyElementAttribute oggetto per contenere 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.

Applicare a un campo che restituisce una matrice di XmlElement oggetti o XmlNode. XmlAnyElementAttributeApply the XmlAnyElementAttribute to a field that returns an array of XmlElement or XmlNode objects. Un campo di questo tipo può essere usato in due modi, a seconda che un oggetto venga serializzato o deserializzato.Such a field can be used in two ways, depending on whether an object is being serialized or deserialized. Con la serializzazione, l'oggetto viene generato come elementi o nodi XML, anche se non sono presenti membri o membri corrispondenti 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 XmlElement , XmlNode tutti gli oggetti o inseriti nella matrice devono avere lo stesso nome di elemento e lo stesso spazio dei nomi predefinito 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 Name anche la proprietà e gli XmlElement oggetti o XmlNode devono avere lo stesso nome e lo stesso valore dello 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 non Name viene specificato alcun valore, XmlElement gli XmlNode oggetti o 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 XmlSerializer della classe, tutti gli elementi che non dispongono di un membro corrispondente nell'oggetto da deserializzare 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 l'insieme 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 conterrà solo gli elementi XML con tale nome.If you specify a Name value, the array contains only XML elements with that name. Se non si specifica un valore Name , la matrice contiene tutti gli elementi che non hanno un 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, utilizzare le Nameproprietà, Name o Namespace e 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 senza valori di proprietà differenzianti impostati (in altre parole, Name e Namespace) durante la deserializzazione, questa matrice contiene elementi XML sconosciuti che non sono già contenuti nelle 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 presenta un valore di differenziazione Name, o Namespace Name e 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.

È anche possibile applicare 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. In tal caso, è necessario utilizzare le proprietà e i metodi della XmlElement classe per scorrere in modo ricorsivo 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 di XmlAnyElementAttribute a un membro della classe, ma ogni istanza deve avere un valore di proprietà distinto. NameYou can apply multiple instances of the XmlAnyElementAttribute to a class member, but each instance must have a distinct Name property value. In alternativa, se per Name ogni istanza è impostata la stessa proprietà, è Namespace necessario impostare un valore di proprietà distinto 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.

Gli UnknownNode eventi UnknownAttribute e XmlAnyElementAttribute di XmlSerializer non si verificano se si applica 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é più a lungo. XmlAnyElementAttributeYou can use the word XmlAnyElement in your code instead of the longer XmlAnyElementAttribute.

Per ulteriori informazioni sull'utilizzo degli 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