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

Clase XmlArrayItemAttribute

 

Publicado: octubre de 2016

Representa un atributo que especifica los tipos derivados que la XmlSerializer puede colocar en una matriz serializada.

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

System.Object
  System.Attribute
    System.Xml.Serialization.XmlArrayItemAttribute

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

NombreDescripción
System_CAPS_pubmethodXmlArrayItemAttribute()

Inicializa una nueva instancia de la clase XmlArrayItemAttribute.

System_CAPS_pubmethodXmlArrayItemAttribute(String)

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

System_CAPS_pubmethodXmlArrayItemAttribute(String, Type)

Inicializa una nueva instancia de la XmlArrayItemAttribute clase y especifica el nombre del elemento XML generado en el documento XML y el Type que se pueden insertar en el documento XML generado.

System_CAPS_pubmethodXmlArrayItemAttribute(Type)

Inicializa una nueva instancia de la XmlArrayItemAttribute clase y especifica la Type que se pueden insertar en la matriz serializada.

NombreDescripción
System_CAPS_pubpropertyDataType

Obtiene o establece el tipo de datos XML del elemento XML generado.

System_CAPS_pubpropertyElementName

Obtiene o establece el nombre del elemento XML generado.

System_CAPS_pubpropertyForm

Obtiene o establece un valor que indica si el nombre del elemento XML generado está calificado.

System_CAPS_pubpropertyIsNullable

Obtiene o establece un valor que indica si el XmlSerializer debe serializar un miembro como una etiqueta XML vacía con el xsi:nil atributo establecido en true.

System_CAPS_pubpropertyNamespace

Obtiene o establece el espacio de nombres del elemento XML generado.

System_CAPS_pubpropertyNestingLevel

Obtiene o establece el nivel de una jerarquía de elementos XML que el XmlArrayItemAttribute afecta a.

System_CAPS_pubpropertyType

Obtiene o establece el tipo permitido en una matriz.

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 producto y no está diseñada para usarse directamente desde el 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()

Si se reemplaza en una clase derivada, indica si el valor de esta instancia es el valor predeterminado de 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()

Devuelve 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).

El XmlArrayItemAttribute pertenece a una familia de atributos que controla cómo el XmlSerializer serializa o deserializa un objeto. Para obtener una lista completa de atributos similares, vea Atributos que controlan la serialización XML.

Puede aplicar el XmlArrayItemAttribute a cualquier miembro público de lectura y escritura que devuelve una matriz o proporciona acceso a uno. Por ejemplo, un campo que devuelve una matriz de objetos, una colección, un ArrayList, o cualquier clase que implementa el IEnumerable interfaz.

El XmlArrayItemAttribute admite polimorfismo; en otras palabras, permite el XmlSerializer para agregar objetos derivados a una matriz. Por ejemplo, supongamos que una clase denominada Mammal se deriva de una clase base denominada Animal. Supongamos que una clase denominada MyAnimals contiene un campo que devuelve una matriz de Animal objetos. Para permitir el XmlSerializer para serializar tanto el Animal y Mammal Escriba, aplicar el XmlArrayItemAttribute al campo dos veces, especificando cada vez uno de los dos tipos aceptables.

System_CAPS_noteNota

Se pueden aplicar varias instancias de la XmlArrayItemAttribute o XmlElementAttribute para especificar los tipos de objetos que se pueden insertar en la matriz.

System_CAPS_noteNota

No se admite la serialización de un campo o propiedad que devuelve una interfaz o una matriz de interfaces.

Para obtener más información sobre el uso de atributos, vea Extender metadatos mediante atributos.

System_CAPS_noteNota

Puede utilizar la palabra XmlArrayItem en el código en lugar de más XmlArrayItemAttribute.

El siguiente ejemplo serializa una clase denominada Group que contiene un campo denominado Employees que devuelve una matriz de Employee objetos. El ejemplo se aplica el XmlArrayItemAttribute al campo, mientras se indica a la XmlSerializer que puede insertar objetos de la clase base (Employee) tipo y el tipo de clase derivada (Manager) en la matriz serializada.

using System;
using System.IO;
using System.Xml.Serialization;

public class Group
{  
   /* The XmlArrayItemAttribute allows the XmlSerializer to insert
      both the base type (Employee) and derived type (Manager) 
      into serialized arrays. */

   [XmlArrayItem(typeof(Manager)),
   XmlArrayItem(typeof(Employee))]
   public Employee[] Employees;

   /* Use the XmlArrayItemAttribute to specify types allowed
      in an array of Object items. */
   [XmlArray]
   [XmlArrayItem (typeof(int),
   ElementName = "MyNumber"),
   XmlArrayItem (typeof(string),
   ElementName = "MyString"),
   XmlArrayItem(typeof(Manager))]
   public object [] ExtraInfo;
}   

public class Employee
{
   public string Name;
}

public class Manager:Employee{
   public int Level;
}

public class Run
{
   public static void Main()
   {
      Run test = new Run();
      test.SerializeObject("TypeDoc.xml");
      test.DeserializeObject("TypeDoc.xml");
   }


   public void SerializeObject(string filename)
   {
      // Creates a new XmlSerializer.
      XmlSerializer s = new XmlSerializer(typeof(Group));

      // Writing the XML file to disk requires a TextWriter.
      TextWriter writer = new StreamWriter(filename);
      Group group = new Group();

      Manager manager = new Manager();
      Employee emp1 = new Employee();
      Employee emp2 = new Employee();
      manager.Name = "Consuela";
      manager.Level = 3;
      emp1.Name = "Seiko";
      emp2.Name = "Martina";
      Employee [] emps = new Employee[3]{manager, emp1, emp2};
      group.Employees = emps;

      // Creates an int and a string and assigns to ExtraInfo.
      group.ExtraInfo = new Object[3]{43, "Extra", manager};

      // Serializes the object, and closes the StreamWriter.
      s.Serialize(writer, group);
      writer.Close();
   }

   public void DeserializeObject(string filename)
   {
      FileStream fs = new FileStream(filename, FileMode.Open);
      XmlSerializer x = new XmlSerializer(typeof(Group));
      Group g = (Group) x.Deserialize(fs);
      Console.WriteLine("Members:");

      foreach(Employee e in g.Employees) 
      {
         Console.WriteLine("\t" + e.Name);
      }
   }
}

Plataforma universal de Windows
Disponible desde 8
.NET Framework
Disponible desde 1.1
Biblioteca de clases portable
Se admite en: plataformas portátiles de .NET
Silverlight
Disponible desde 2.0
Windows Phone Silverlight
Disponible desde 7.0
Windows Phone
Disponible desde 8.1

Cualquier miembro ( Compartido en Visual Basic) estático público de este tipo es seguro para subprocesos. No se garantiza que los miembros de instancia sean seguros para subprocesos.

Volver al principio
Mostrar: