serialisieren eines Array von Klassen

Gast #463377
Lesenswert?

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 #464307
Lesenswert?

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 #464378
Lesenswert?

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
#465848
Lesenswert?

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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren