Wie ein XML-Attribut überschrieben

June 3

Nutzung der "XmlAttributeOverrides" ist Klasse und ihre Methoden hilfreich, wenn Sie ein Attribut beim Serialisieren eines Objekts "XmlSerializer" überschreiben möchten. Dadurch können Sie die Serialisierung von Objekten in vielfältiger Weise von einem einzelnen serialisierbaren Klassen. Es ist auch möglich, nach einer serialisierbaren Klasse aus einer DLL zu erweitern, die Sie keinen Zugriff zu haben. Eine praktische Anwendung dieser ist Member der Instanz einer Klasse als XML-Attribute anstelle von XML-Elementen serialisieren.

Anweisungen

1 Öffnen Sie Ihren Code-Quelldatei in einem Editor, z. B. Microsoft Visual Studio Express.

2 Fügen Sie das "System", "System" und "Serialization" Bibliotheken an den Anfang der Datei. Dadurch können Sie die XML "Serialisierungsprogramm" Funktionen und Objekte zugreifen. In C++ wird dies durch Hinzufügen des Codes:

using Namespace System;

usingnamespace;

verwenden Serialization;

3 Definieren Sie drei öffentliche Klassen mit den XML-Funktionen verwenden. In C++ wird dies durch den folgenden Code am oberen Rand Ihrer Datei, bevor Sie Funktionen hinzufügen:

publicrefclass Obst

{

Öffentliche:

Zeichenfolge ^ Ripe_fruit;

};

publicrefclass Apple: öffentliche Obst

{

Öffentliche:

Int Amount_apples;

};

publicrefclass Korb

{

Öffentliche:

Array < Frucht ^ > ^ Früchte;

};

4 Erstellen Sie neuer "XmlAttributes" und initialisieren Sie "XmlElementAttribute" Objekte in Ihrer Funktion das Objekt "XmlElementAttribute", um die Ersatz-Klasse verwenden und fügen Sie dann das neue Element der Auflistung von Elementen. In C++ wird dies durch Hinzufügen des Codes:

XmlAttributes ^ My_attrs = Gcnew XmlAttributes;

XmlElementAttribute ^ My_attr = Gcnew XmlElementAttribute;

My_attr -> ElementName = "Apfel";

My_attr -> Type = Apple::typeid;

My_attrs -> XmlElements -> Add(my_attr);

5 Erstellen Sie ein neues Objekt "XmlAttributeOverrides" und rufen Sie die "Hinzufügen"-Methode, um die übergeordnete Klasse Typ und die "XmlAttributes"-Objekt, um es mit überschreiben hinzuzufügen. In C++ wird dies durch Hinzufügen des Codes:

XmlAttributeOverrides ^ My_attr_override = Gcnew XmlAttributeOverrides;

My_attr_override -> Add (Basket::typeid, "Fruits", Attrs);

6 Ein neues "XmlSerializer"-Objekt erstellen und es mit dem "XmlAttributeOverrides"-Objekt zu initialisieren. In C++ wird dies durch Hinzufügen des Codes:

XmlSerializer ^ My_serializer = Gcnew XmlSerializer (Basket::typeid, My_attr_override);

7 Erstellen Sie ein Objekt zu serialisieren. In C++ wird dies durch Hinzufügen des Codes:

Korb ^ My_basket = Gcnew Basket

8 Erstellen Sie ein neues Objekt mit der abgeleiteten Klasse. In C++ wird dies durch Hinzufügen des Codes:

Apple ^ ein = Gcnew Apple;

ein -> Ripe_fruit = "Leicht reif";

ein -> Amount_apples = 2;

Array < Frucht ^ > ^ My_Fruits = {a};

My_basket -> Früchte = My_Fruits;

9 Ein "TextWriter"-Objekt erstellen und dann das Objekt zu serialisieren. In C++ wird dies durch Hinzufügen des Codes:

TextWriter ^ Tw = Gcnew StreamWriter("file.txt");

My_serializer -> Serialize (Tw, My_basket);

TW -> Close();

Der Code überschrieben, die "Frucht"-Klasse, so dass das Feld, die "Apfel"-Klasse, zu akzeptieren, die von der "Frucht"-Klasse erbt.

10 Speichern Sie die Datei, kompilieren Sie und führen Sie das Programm die Attribute überschreiben.