serialisieren eines Array von Klassen

Gast #463377
Hi

ich habe hier einen C# codeausschnitt und versuche den in C++ .net um 
zuschreiben. Bis auf das Serialisieren des Arrays geht alles. Wenn ich 
aber den Arrayzeiger zum serialisieren übergebe kommt ne Fehlermeldung.

hier mal der C# Code:

{
  Person[] personen = new Person[2] { new ......}

  XMLSeriializer serializer = new XMLSerializer(typeof(Person[]));
  TextWriter tr = new StremWriter("A.xml");
  serializer.Serialize(tr, personen);
  tr.close();
}


public class Person
{
  public Person(string name, int alter)
 {
  ...
 }
}
Gast
Hi,

der äquivalente C++ .NET(2005) Code sollte so aussehen :

{
array<Person^> ^personen = gcnew array<Person^>(2) { gcnew ... };

XmlSerializer ^serializer = gcnew XmlSerializer(array<Person^>::typeid);
TextWriter ^tr = gcnew StreamWriter("A.xml");
serializer->Serialize(tr, personen);
tr->Close();
}

Gruß
Gast
also das serialisieren geht jetztsuper.
Leider habe ich ein ähnliches Problem be deserialisieren.
Ich hoffe harle hat auch dafür ne Idee.

Hier der C# Code

Person[] personen = (Person[])serializer.Derzerialize(tr);

mit array<Person^> personen = (array<Person^>) 
serializer->Derzerialize(tr);
gehts leider nicht


Power
meine Idee ...

XmlSerializer ^serializer = gcnew XmlSerializer(array<Person^>::typeid);
TextReader ^tr = gcnew StreamReader("B.xml");
array<Person^> ^personen = nullptr;
try
{
  personen = safe_cast<array<Person^>>( serializer->Deserialize(tr) );
}
catch(InvalidCastException^)
{
  Console::WriteLine("Cast hat nicht geklappt");
}


harle

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 19 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.