La utilización de la clase "XmlAttributeOverrides" y sus métodos es útil cuando se desea reemplazar un atributo al serializar un objeto "XmlSerializer". Esto le permite serializar objetos en múltiples formas de un único conjunto de clases serializables. También es posible extender a una clase serializable de un DLL que no tiene acceso. Una aplicación práctica de esto es para serializar miembros de una instancia de clase como atributos XML en lugar de elementos XML.
ANULAR Atributos
Abra el archivo de origen de su código en un editor como Microsoft Visual Studio Express.
Añadir el "Sistema", "System :: IO" y "System :: Xml :: Serialization bibliotecas" en la parte superior de su archivo. Esto le permite acceder a las funciones XML "serializador" y objetos. En C + + esto se hace con el código:
using namespace System;
using namespace System :: IO;
using namespace System :: Xml :: serialización;
Definir tres clases públicas para utilizar con las funciones XML. En C + + esto se hace agregando el siguiente código en la parte superior de su archivo antes de sus funciones:
Fruit ref class pública
{
pública:
Cadena ^ ripe_fruit;
};
ref public class Manzana: Fruit pública
{
pública:
amount_apples int;
};
ref public class Cesta
{
pública:
arrayFruit ^ ^ Frutas;
};
Crear nuevos "XmlAttributes" y objetos "XmlElementAttribute" en su función, inicialice el objeto "XmlElementAttribute" para utilizar la clase de reemplazo y luego agregar el nuevo elemento a la colección de elementos. En C + + esto se hace con el código:
XmlAttributes ^ my_attrs = gcnew XmlAttributes;
XmlElementAttribute ^ my_attr = gcnew XmlElementAttribute;
my_attr-ElementName = "Apple";
my_attr-Tipo = Manzana :: typeid;
my_attrs-XmlElements-Add (my_attr);
Crear un nuevo objeto "XmlAttributeOverrides" y llamar a su método "Add" para añadir el tipo de la clase dominante y el objeto "XmlAttributes" para reemplazar con. En C + + esto se hace con el código:
XmlAttributeOverrides ^ my_attr_override = gcnew XmlAttributeOverrides;
my_attr_override-Add (Basket :: typeid, "Frutas", attrs);
Crear un nuevo objeto "XmlSerializer" e iniciar con el objeto "XmlAttributeOverrides". En C + + esto se hace con el código:
XmlSerializer ^ my_serializer = gcnew XmlSerializer (atletismo :: typeid, my_attr_override);
Crear un objeto a serializar. En C + + esto se hace con el código:
Basket ^ my_basket = gcnew Basket
Crear un nuevo objeto utilizando la clase derivada. En C + + esto se hace con el código:
Manzana ^ a = gcnew Apple;
a-ripe_fruit = "Un poco madura";
a-amount_apples = 2;
arrayFruit ^ ^ my_Fruits = {a};
my_basket-Fruits = my_Fruits;
Crear un objeto "TextWriter" y serializar el objeto. En C + + esto se hace con el código:
TextWriter ^ tw = gcnew StreamWriter ("archivo.txt");
my_serializer-serializar (tw, my_basket);
tw-Close ();
El código ha anulado la clase "fruta", permitiendo que el campo acepte la clase de "Apple", que se hereda de la clase "Fruit".
Guarde el archivo, compilar y ejecutar el programa para reemplazar los atributos.
No hay comentarios:
Publicar un comentario