XmlAnyElementAttributes Clase

Definición

Representa una colección de objetos XmlAnyElementAttribute.

public ref class XmlAnyElementAttributes : System::Collections::IList
public ref class XmlAnyElementAttributes : System::Collections::CollectionBase
public class XmlAnyElementAttributes : System.Collections.IList
public class XmlAnyElementAttributes : System.Collections.CollectionBase
type XmlAnyElementAttributes = class
    interface ICollection
    interface IEnumerable
    interface IList
type XmlAnyElementAttributes = class
    inherit CollectionBase
Public Class XmlAnyElementAttributes
Implements IList
Public Class XmlAnyElementAttributes
Inherits CollectionBase
Herencia
XmlAnyElementAttributes
Herencia
XmlAnyElementAttributes
Implementaciones

Ejemplos

En el ejemplo siguiente se crea un nuevo XmlAnyElementAttribute y se agrega a la colección de objetos a los que se accede a través de la XmlAnyElements propiedad . A XmlAttributes continuación, se agrega a un XmlAttributeOverrides objeto que se usa para crear un XmlSerializerobjeto . XmlSerializer se usa para serializar o deserializar un objeto . Para ver el efecto de usar la XmlAnyElementAttributes propiedad , cree un documento XML denominado UnknownElements.xml ejecutando el SerializeObject método en el Main método . Edite el documento resultante para incluir otros elementos (desconocidos). Convierta en comentario la SerializeObject llamada en el Main método y quite la marca de comentario de la llamada al DeserializeObject método , que imprime el nombre y el valor de cualquier elemento XML desconocido.

#using <System.dll>
#using <System.xml.dll>

using namespace System;
using namespace System::IO;
using namespace System::Xml::Serialization;
using namespace System::Xml;
public ref class Group
{
public:
   String^ GroupName;

   [XmlAnyElement]
   array<Object^>^Things;
};

void SerializeObject( String^ filename );
void DeserializeObject( String^ filename );
XmlSerializer^ CreateOverrideSerializer();
int main()
{
   // 1 Run this and create the XML document.
   // 2 Add new elements to the XML document.
   // 3 Comment out the next line, and uncomment
   // the DeserializeObject line to deserialize the
   // XML document and see unknown elements.
   SerializeObject( "UnknownElements.xml" );

   // DeserializeObject(S"UnknownElements.xml");
}

void SerializeObject( String^ filename )
{
   XmlSerializer^ ser = gcnew XmlSerializer( Group::typeid );
   TextWriter^ writer = gcnew StreamWriter( filename );
   Group^ g = gcnew Group;
   g->GroupName = "MyGroup";
   ser->Serialize( writer, g );
   writer->Close();
}

void DeserializeObject( String^ filename )
{
   XmlSerializer^ ser = CreateOverrideSerializer();

   // A FileStream is needed to read the XML document.
   FileStream^ fs = gcnew FileStream( filename,FileMode::Open );
   Group^ g = safe_cast<Group^>(ser->Deserialize( fs ));
   fs->Close();
   Console::WriteLine( g->GroupName );
   Console::WriteLine( g->Things->Length );
   for ( int i = 0; i < g->Things->Length; ++i )
   {
      XmlElement^ xelement = safe_cast<XmlElement^>(g->Things[ i ]);
      Console::WriteLine( "{0}: {1}", xelement->Name, xelement->InnerXml );
   }
}

XmlSerializer^ CreateOverrideSerializer()
{
   XmlAnyElementAttribute^ myAnyElement = gcnew XmlAnyElementAttribute;
   XmlAttributeOverrides^ xOverride = gcnew XmlAttributeOverrides;
   XmlAttributes^ xAtts = gcnew XmlAttributes;
   xAtts->XmlAnyElements->Add( myAnyElement );
   xOverride->Add( Group::typeid, "Things", xAtts );
   return gcnew XmlSerializer( Group::typeid,xOverride );
}
using System;
using System.IO;
using System.Xml.Serialization;
using System.Xml;

public class Group{
   public string GroupName;
   [XmlAnyElement]
   public object[]Things;
}

public class Test{
   static void Main(){
      Test t = new Test();
      // 1 Run this and create the XML document.
      // 2 Add new elements to the XML document.
      // 3 Comment out the new line, and uncomment
      // the DeserializeObject line to deserialize the
      // XML document and see unknown elements.
      t.SerializeObject("UnknownElements.xml");
     
      // t.DeserializeObject("UnknownElements.xml");
   }

   private void SerializeObject(string filename){
      XmlSerializer ser = new XmlSerializer(typeof (Group));
      TextWriter writer = new StreamWriter(filename);
      Group g = new Group();
      g.GroupName = "MyGroup";
      ser.Serialize(writer, g);
      writer.Close();
   }

   private void DeserializeObject(string filename){

      XmlSerializer ser = CreateOverrideSerializer();
      // A FileStream is needed to read the XML document.
      FileStream fs = new FileStream(filename, FileMode.Open);
     Group g = (Group)
        ser.Deserialize(fs);
     fs.Close();
     Console.WriteLine(g.GroupName);
     Console.WriteLine(g.Things.Length);
     foreach(XmlElement xelement in g.Things){
     Console.WriteLine(xelement.Name + ": " + xelement.InnerXml);
     }
   }

   private XmlSerializer CreateOverrideSerializer(){
      XmlAnyElementAttribute myAnyElement = 
      new XmlAnyElementAttribute();
      XmlAttributeOverrides xOverride = 
      new XmlAttributeOverrides();
      XmlAttributes xAtts = new XmlAttributes();
      xAtts.XmlAnyElements.Add(myAnyElement);
      xOverride.Add(typeof(Group), "Things", xAtts);
      return new XmlSerializer(typeof(Group) , xOverride);
   }
}
Imports System.IO
Imports System.Xml.Serialization
Imports System.Xml

Public Class Group
   Public GroupName As String 
   <XmlAnyElement> _
   Public Things () As object
End Class

Public Class Test
   Shared Sub Main()
      Dim t As Test = New Test()
      ' 1 Run this and create the XML document.
      ' 2 Add New elements to the XML document.
      ' 3 Comment out the New line, and uncomment
      ' the DeserializeObject line to deserialize the
      ' XML document and see unknown elements.
     t.SerializeObject("UnknownElements.xml")
     
      't.DeserializeObject("UnknownElements.xml")
   End Sub

   Private Sub SerializeObject(filename As String)
      Dim ser As XmlSerializer = New XmlSerializer(GetType (Group))
      Dim writer As TextWriter = New StreamWriter(filename)
      
      Dim g As Group = New Group()
      g.GroupName = "MyGroup"
      ser.Serialize(writer, g)
      writer.Close()
   End Sub

   
   Private Sub DeserializeObject(filename As String)

      Dim ser As XmlSerializer = CreateOverrideSerializer()
      ' A FileStream is needed to read the XML document.
      Dim fs As FileStream = New FileStream(filename, FileMode.Open)
     Dim g As Group = CType( _
        ser.Deserialize(fs), Group)
     fs.Close()
     Console.WriteLine(g.GroupName)
     Console.WriteLine(g.Things.Length)
     Dim xelement As XmlELement
     for each xelement in g.Things
        Console.WriteLine(xelement.Name &": " & xelement.InnerXml)
     next
   End Sub
   

   Private Function CreateOverrideSerializer() As XmlSerializer 
      Dim myAnyElement As XmlAnyElementAttribute = _
      New XmlAnyElementAttribute()
      Dim xOverride As XmlAttributeOverrides = _
      New XmlAttributeOverrides()
      Dim xAtts As XmlAttributes = New XmlAttributes()
      xAtts.XmlAnyElements.Add(myAnyElement)
      xOverride.Add(GetType(Group), "Things", xAtts)
      return New XmlSerializer(GetType(Group) , xOverride)
   End Function
End Class

Comentarios

XmlAnyElementAttributes Use para invalidar el comportamiento de un conjunto de XmlAnyElementAttribute objetos. Se pueden aplicar varias instancias de la XmlAnyElementAttribute clase a un miembro de clase, siempre que cada instancia tenga un valor de propiedad distinto Name ; esto indica a que XmlSerializer recopile elementos desconocidos en el elemento con nombre en la matriz adecuada. Por este motivo, se pueden agregar varias instancias de la XmlAnyElementAttribute clase a .XmlAnyElementAttributes

Para invalidar un conjunto de XmlAnyElementAttribute objetos:

  1. Cree un XmlAnyElementAttributesobjeto .

  2. Cree el conjunto de XmlAnyElementAttribute objetos y agregue cada objeto a la colección mediante el Add método .

  3. Cree un XmlAttributesobjeto .

  4. Establezca la XmlAnyElements propiedad en .XmlAnyElementAttributes

  5. Cree un XmlAttributeOverridesobjeto .

  6. XmlAttributes Agregue a XmlAttributeOverrides mediante el Add método .

  7. Cree una instancia de XmlSerializer mediante XmlAttributeOverrides.

  8. Serialice o deserialice un objeto que contiene el conjunto de XmlAnyElementAttribute objetos .

Constructores

XmlAnyElementAttributes()

Inicializa una nueva instancia de la clase XmlAnyElementAttributes.

Propiedades

Capacity

Obtiene o establece el número de elementos que puede contener CollectionBase.

(Heredado de CollectionBase)
Count

Obtiene el número de elementos incluidos en ICollection.

Count

Obtiene el número de elementos contenidos en la instancia de CollectionBase. Esta propiedad no se puede invalidar.

(Heredado de CollectionBase)
InnerList

Obtiene una colección ArrayList que contiene la lista de elementos incluidos en la instancia de CollectionBase.

(Heredado de CollectionBase)
Item[Int32]

Obtiene o establece la clase XmlAnyElementAttribute en el índice especificado.

List

Obtiene una colección IList que contiene la lista de elementos incluidos en la instancia de CollectionBase.

(Heredado de CollectionBase)

Métodos

Add(XmlAnyElementAttribute)

Agrega un objeto XmlAnyElementAttribute a la colección.

Clear()

Quita todos los elementos de IList.

Clear()

Elimina todos los objetos de la instancia de CollectionBase. Este método no se puede invalidar.

(Heredado de CollectionBase)
Contains(XmlAnyElementAttribute)

Obtiene un valor que indica si el XmlAnyElementAttribute especificado existe en la colección.

CopyTo(XmlAnyElementAttribute[], Int32)

Copia los objetos XmlElementAttribute de la colección en una matriz unidimensional compatible, empezando por el índice especificado de la matriz de destino.

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
GetEnumerator()

Devuelve un enumerador que recorre en iteración una colección.

GetEnumerator()

Devuelve un enumerador que recorre en iteración la instancia de CollectionBase.

(Heredado de CollectionBase)
GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
IndexOf(XmlAnyElementAttribute)

Obtiene el índice del objeto XmlAnyElementAttribute especificado.

Insert(Int32, XmlAnyElementAttribute)

Inserta un objeto XmlAnyElementAttribute en el índice especificado de la colección.

MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
OnClear()

Realiza procesos personalizados adicionales al borrar el contenido de la instancia CollectionBase.

(Heredado de CollectionBase)
OnClearComplete()

Realiza procesos personalizados adicionales después de borrar el contenido de la instancia de CollectionBase.

(Heredado de CollectionBase)
OnInsert(Int32, Object)

Realiza procesos personalizados adicionales antes de insertar un nuevo elemento en la instancia de CollectionBase.

(Heredado de CollectionBase)
OnInsertComplete(Int32, Object)

Realiza procesos personalizados adicionales después de insertar un nuevo elemento en la instancia de CollectionBase.

(Heredado de CollectionBase)
OnRemove(Int32, Object)

Realiza procesos de personalización adicionales al quitar un elemento de la instancia de CollectionBase.

(Heredado de CollectionBase)
OnRemoveComplete(Int32, Object)

Realiza procesos personalizados adicionales después de quitar un elemento de la instancia de CollectionBase.

(Heredado de CollectionBase)
OnSet(Int32, Object, Object)

Realiza procesos personalizados adicionales antes de establecer un valor en la instancia de CollectionBase.

(Heredado de CollectionBase)
OnSetComplete(Int32, Object, Object)

Realiza procesos personalizados adicionales después de establecer un valor en la instancia de CollectionBase.

(Heredado de CollectionBase)
OnValidate(Object)

Realiza procesos de personalización adicionales al validar un valor.

(Heredado de CollectionBase)
Remove(XmlAnyElementAttribute)

Quita el objeto XmlAnyElementAttribute especificado de la colección.

RemoveAt(Int32)

Quita el elemento de la interfaz IList que se encuentra en el índice especificado.

RemoveAt(Int32)

Quita el elemento que se encuentra en el índice especificado de la instancia de CollectionBase. Este método no se puede reemplazar.

(Heredado de CollectionBase)
ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Implementaciones de interfaz explícitas

ICollection.CopyTo(Array, Int32)

Copia los elementos de ICollection en una matriz, a partir de un índice determinado.

ICollection.CopyTo(Array, Int32)

Copia la totalidad de CollectionBase en una matriz Array unidimensional compatible, comenzando en el índice especificado de la matriz de destino.

(Heredado de CollectionBase)
ICollection.IsSynchronized

Obtiene un valor que indica si el acceso a la interfaz ICollection está sincronizado (es seguro para subprocesos).

ICollection.IsSynchronized

Obtiene un valor que indica si el acceso a la interfaz CollectionBase está sincronizado (es seguro para subprocesos).

(Heredado de CollectionBase)
ICollection.SyncRoot

Obtiene un objeto que se puede usar para sincronizar el acceso a ICollection.

ICollection.SyncRoot

Obtiene un objeto que se puede usar para sincronizar el acceso a CollectionBase.

(Heredado de CollectionBase)
IList.Add(Object)

Agrega un elemento a IList.

IList.Add(Object)

Agrega un objeto al final de CollectionBase.

(Heredado de CollectionBase)
IList.Contains(Object)

Determina si IList contiene un valor específico.

IList.Contains(Object)

Determina si CollectionBase contiene un elemento específico.

(Heredado de CollectionBase)
IList.IndexOf(Object)

Determina el índice de un elemento específico de IList.

IList.IndexOf(Object)

Busca el objeto Object especificado y devuelve el índice de base cero de la primera aparición en toda la colección CollectionBase.

(Heredado de CollectionBase)
IList.Insert(Int32, Object)

Inserta un elemento en la interfaz IList, en el índice especificado.

IList.Insert(Int32, Object)

Inserta un elemento en CollectionBase en el índice especificado.

(Heredado de CollectionBase)
IList.IsFixedSize

Obtiene un valor que indica si la interfaz IList tiene un tamaño fijo.

IList.IsFixedSize

Obtiene un valor que indica si la interfaz CollectionBase tiene un tamaño fijo.

(Heredado de CollectionBase)
IList.IsReadOnly

Obtiene un valor que indica si IList es de solo lectura.

IList.IsReadOnly

Obtiene un valor que indica si CollectionBase es de solo lectura.

(Heredado de CollectionBase)
IList.Item[Int32]

Obtiene o establece el elemento en el índice especificado.

IList.Item[Int32]

Obtiene o establece el elemento en el índice especificado.

(Heredado de CollectionBase)
IList.Remove(Object)

Quita la primera aparición de un objeto específico de la interfaz IList.

IList.Remove(Object)

Quita la primera aparición de un objeto específico de la interfaz CollectionBase.

(Heredado de CollectionBase)

Métodos de extensión

Cast<TResult>(IEnumerable)

Convierte los elementos de IEnumerable en el tipo especificado.

OfType<TResult>(IEnumerable)

Filtra los elementos de IEnumerable en función de un tipo especificado.

AsParallel(IEnumerable)

Habilita la paralelización de una consulta.

AsQueryable(IEnumerable)

Convierte una interfaz IEnumerable en IQueryable.

Se aplica a