XmlAnyElementAttribute Clase
TOC
Collapse the table of content
Expand the table of content
Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

XmlAnyElementAttribute (Clase)

 

Especifica que el miembro (un campo que devuelve una matriz de objetos XmlElement o XmlNode) contiene objetos que representan los elementos XLM que no tienen un miembro correspondiente en el objeto que se está serializando o deserializando.

Espacio de nombres:   System.Xml.Serialization
Ensamblado:  System.Xml (en System.Xml.dll)

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

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

NombreDescripción
System_CAPS_pubmethodXmlAnyElementAttribute()

Inicializa una nueva instancia de la clase XmlAnyElementAttribute.

System_CAPS_pubmethodXmlAnyElementAttribute(String)

Inicializa una nueva instancia de la clase XmlAnyElementAttribute y especifica el nombre del elemento XML generado en el documento XML.

System_CAPS_pubmethodXmlAnyElementAttribute(String, String)

Inicializa una nueva instancia de la clase XmlAnyElementAttribute y especifica el nombre del elemento XML generado en el documento XML y su espacio de nombres XML.

NombreDescripción
System_CAPS_pubpropertyName

Obtiene o establece el nombre del elemento XML.

System_CAPS_pubpropertyNamespace

Obtiene o establece el espacio de nombres XML generado en el documento XML.

System_CAPS_pubpropertyOrder

Obtiene o establece el orden explícito en el que los elementos son serializados o deserializados.

System_CAPS_pubpropertyTypeId

Cuando se implementa en una clase derivada, obtiene un identificador único para este Attribute.(Heredado de Attribute.)

NombreDescripción
System_CAPS_pubmethodEquals(Object)

Esta API admite la infraestructura de product y no está pensada para usarse directamente desde su código. Devuelve un valor que indica si esta instancia equivale al objeto especificado. (Heredado de Attribute.)

System_CAPS_protmethodFinalize()

Permite que un objeto intente liberar recursos y realizar otras operaciones de limpieza antes de ser reclamado por el recolector de basura. (Heredado de Object.)

System_CAPS_pubmethodGetHashCode()

Devuelve el código hash de esta instancia.(Heredado de Attribute.)

System_CAPS_pubmethodGetType()

Obtiene el Type de la instancia actual. (Heredado de Object.)

System_CAPS_pubmethodIsDefaultAttribute()

Cuando se invalida en una clase derivada, indica si el valor de esta instancia es el valor predeterminado para la clase derivada.(Heredado de Attribute.)

System_CAPS_pubmethodMatch(Object)

Cuando se invalida en una clase derivada, devuelve un valor que indica si esta instancia es igual al objeto especificado. (Heredado de Attribute.)

System_CAPS_protmethodMemberwiseClone()

Crea una copia superficial del Object actual. (Heredado de Object.)

System_CAPS_pubmethodToString()

Retorna una cadena que representa al objeto actual. (Heredado de Object.)

NombreDescripción
System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Asigna un conjunto de nombres a un conjunto correspondiente de identificadores de envío.(Heredado de Attribute.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Obtiene la información del tipo de un objeto, que puede utilizarse para obtener la información del tipo de una interfaz. (Heredado de Attribute.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.GetTypeInfoCount(UInt32)

Recupera el número de interfaces de tipo de información que suministra un objeto (0 ó 1)

(Heredado de Attribute.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Proporciona acceso a las propiedades y los métodos expuestos por un objeto.(Heredado de Attribute.)

System_CAPS_tipSugerencia

Cuando trabaje en una biblioteca de clases portable, por ejemplo en Silverlight, Windows Phone o la Tienda Windows proyecto de la aplicación, y usa .NET Framework 4.0.3 y arriba, utilice XElement o XNode en lugar de XmlElement y XmlNode.

Utilice XmlAnyElementAttribute para incluir datos arbitrarios (como elementos XML) que puedan enviarse como parte de un documento XML, por ejemplo, metadatos enviados como parte del documento.

Aplique XmlAnyElementAttribute a un campo que devuelva una matriz de objetos XmlElement o XmlNode.Dicho campo puede utilizarse de dos maneras, dependiendo de si se está serializando o deserializando un objeto.Al serializar un objeto, éste se genera como elementos o nodos XML, aunque no tengan ningún miembro correspondiente en el objeto que se está deserializando.Si se especifica un valor de la propiedad Name al aplicar el atributo, todos los objetos XmlElement o XmlNode insertados en la matriz deberán tener el mismo nombre de elemento y el mismo espacio de nombres predeterminado; en caso contrario, se produce una excepción.Si se establece el valor de la propiedad Namespace, se deberá establecer también la propiedad Name y los objetos XmlElement o XmlNode también deberán tener los mismos valores de nombre y espacio de nombres.Si no se especifica ningún valor para la propiedad Name, los objetos XmlElement o XmlNode pueden tener cualquier nombre de elemento.

Cuando se llame al método Deserialize de la clase XmlSerializer, se recopilan en la matriz todos los atributos que no tengan un miembro correspondiente en el objeto que se está deserializando.Tras la deserialización, recorra en iteración la colección de elementos XmlElement para procesar los datos.Si se especifica un valor para la propiedad Name, la matriz incluye únicamente los elementos XML con dicho nombre.Si no se especifica ningún valor para la propiedad Name, la matriz contiene todos los elementos que no tengan un miembro correspondiente en la clase.Si una clase contiene más de un campo al que se ha aplicado el atributo, utilice las propiedades Name o Name y Namespace para diferenciar el contenido de las matrices.Si dicha clase (con varios campos) también contiene un campo que no tenga establecidos valores de propiedad diferenciadores (es decir, Name y Namespace), durante la deserialización, esta matriz incluye todos los elementos XML desconocidos no incluidos en las demás matrices.Si una clase contiene más de un campo que no tiene establecido un valor diferenciador para las propiedades Name o Name y Namespace, durante la deserialización no estará especificado el comportamiento.

Se puede aplicar asimismo XmlAnyElementAttribute a un campo que devuelve un solo objeto XmlElement.En este caso, se deben utilizar las propiedades y los métodos de la clase XmlElement para recorrer en iteración y de manera recursiva los elementos desconocidos.

Se pueden aplicar varias instancias de XmlAnyElementAttribute a un miembro de clase, pero cada instancia debe tener un valor distinto para la propiedad Name.O bien, si se ha establecido la misma propiedad Name para cada instancia, se deberá establecer un valor distinto de la propiedad Namespace para cada instancia.

No se producen los eventos UnknownNode y UnknownAttribute de XmlSerializer si se aplica XmlAnyElementAttribute a un miembro de una clase.

System_CAPS_noteNota

En el código, se puede utilizar la palabra XmlAnyElement en lugar de XmlAnyElementAttribute, que es más largo.

Para obtener más información sobre cómo utilizar atributos, vea Extending Metadata Using Attributes.

En el siguiente ejemplo se aplica XmlAnyElementAttribute a un campo denominado AllElements que devuelve una matriz de objetos 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);
   }
}

Universal Windows Platform
Disponible desde 4.5
.NET Framework
Disponible desde 1.1
Portable Class Library
Compatible con: portable .NET platforms
Silverlight
Disponible desde 2.0
Windows Phone Silverlight
Disponible desde 7.0
Windows Phone
Disponible desde 8.1

Los miembros estáticos públicos (Shared en Visual Basic) de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Volver al principio
Mostrar:
© 2016 Microsoft