XmlAnyElementAttributes Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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
- 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:
Cree un XmlAnyElementAttributesobjeto .
Cree el conjunto de XmlAnyElementAttribute objetos y agregue cada objeto a la colección mediante el Add método .
Cree un XmlAttributesobjeto .
Establezca la XmlAnyElements propiedad en .XmlAnyElementAttributes
Cree un XmlAttributeOverridesobjeto .
XmlAttributes Agregue a XmlAttributeOverrides mediante el Add método .
Cree una instancia de XmlSerializer mediante XmlAttributeOverrides.
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. |