none
XmlSerializer - Server - Client - Strukturfragen RRS feed

  • Frage

  • http://www.imagebanana.com/view/i5vmyshs/Strcuture_forSerial.png
    Hallo,

    Hallo Frank,
    Danke für den besten Tipp! :-)
    Ich könnte doch jede x-beliebige Struktur jetzt so übertragen.
    Sehe ich das richtig? Oder müsste ich was beachten?
    Server -- Serialize -- Client.

    Das selbst zu parsen, analysieren wäre richtig zeitaufwendig gewesen.

    Also nicht nur Listen oder einzelne Objekte.

    Wäre nett eine Antwort zu erhalten.
    Evtl. kannst Du kurz noch den Thread beantworten.
      - Neuverbinden -    http://social.msdn.microsoft.com/Forums/de-DE/visualcsharpde/thread/f2b53154-fb7a-4352-9758-4152014ae679

    Bis jetzt klappt es super.

    Schöne Woche noch....
    Grüße Andreas

    ~~~~~

    public Form1()
     {
      InitializeComponent();
      Animal a1 = new Animal { MyProperty = 42, MyProperty2 = 43 };
      Animal a2 = new Animal { MyProperty = 44, MyProperty2 = 45 };
      List<Animal> liste = new List<Animal> { a1, a2 };
      string serialized = SerializeObject(liste);
     }
    
     private String UTF8ByteArrayToString(Byte[] characters)
     {
      UTF8Encoding encoding = new UTF8Encoding();
      string constructedString = encoding.GetString(characters);
      return (constructedString);
     }
    
     public string SerializeObject<T>(List<T> pListe)
     {
      try
      {
      string xmlizedString = null;
      MemoryStream memoryStream = new MemoryStream();
      XmlSerializer xs = new XmlSerializer(typeof(List<T>));
      XmlTextWriter xmlTextWriter = new XmlTextWriter(memoryStream, Encoding.UTF8);
      xs.Serialize(xmlTextWriter, pListe);
      memoryStream = (MemoryStream)xmlTextWriter.BaseStream;
      return UTF8ByteArrayToString(memoryStream.ToArray());
      }
      catch (Exception e)
      {
      System.Console.WriteLine(e);
      return null;
      }
     }
    
    
    
    Montag, 28. Februar 2011 19:58

Antworten

  • Hallo Andreas,

    • Danke für den besten Tipp! :-)

    Du meintest, Deine Objekte über XML zu serialisieren. Ja, das spart sicher Zeit, freut mich, wenn es hilfreich war.

     

    • Ich könnte doch jede x-beliebige Struktur jetzt so übertragen.
      Sehe ich das richtig? Oder müsste ich was beachten?
      Server -- Serialize -- Client.
    • Das selbst zu parsen, analysieren wäre richtig zeitaufwendig gewesen.
    • Also nicht nur Listen oder einzelne Objekte.

    ja, im ~Prinzip (theoretisch) kannst Du jedes Objekt so (entsprechend) serialisieren, aber der XmlSerializer hat Grenzen, es müssen Typen sein, die "XML-serialisierbar" sind - und das sind nicht alle. Andere Serialisierungs-Klassen haben teilweise noch weitergehende Möglichkeiten, aber wenn Du die nicht benötigst, ist der XmlSerializer aber eine gute Wahl.

    [Einführung in die XML-Serialisierung]
    http://msdn.microsoft.com/de-de/library/182eeyhh.aspx

    Andere typische Serialisierungs-Klassen sind SoapFormatter, BinaryFormatter, DataContractSerializer und die IXmlSerializable Schnittstelle.

    • Evtl. kannst Du kurz noch den Thread beantworten.

    ich schau mal, kann aber noch dauern.


    ciao Frank
    Dienstag, 1. März 2011 09:05

Alle Antworten

  • Hallo Andreas,

    • Danke für den besten Tipp! :-)

    Du meintest, Deine Objekte über XML zu serialisieren. Ja, das spart sicher Zeit, freut mich, wenn es hilfreich war.

     

    • Ich könnte doch jede x-beliebige Struktur jetzt so übertragen.
      Sehe ich das richtig? Oder müsste ich was beachten?
      Server -- Serialize -- Client.
    • Das selbst zu parsen, analysieren wäre richtig zeitaufwendig gewesen.
    • Also nicht nur Listen oder einzelne Objekte.

    ja, im ~Prinzip (theoretisch) kannst Du jedes Objekt so (entsprechend) serialisieren, aber der XmlSerializer hat Grenzen, es müssen Typen sein, die "XML-serialisierbar" sind - und das sind nicht alle. Andere Serialisierungs-Klassen haben teilweise noch weitergehende Möglichkeiten, aber wenn Du die nicht benötigst, ist der XmlSerializer aber eine gute Wahl.

    [Einführung in die XML-Serialisierung]
    http://msdn.microsoft.com/de-de/library/182eeyhh.aspx

    Andere typische Serialisierungs-Klassen sind SoapFormatter, BinaryFormatter, DataContractSerializer und die IXmlSerializable Schnittstelle.

    • Evtl. kannst Du kurz noch den Thread beantworten.

    ich schau mal, kann aber noch dauern.


    ciao Frank
    Dienstag, 1. März 2011 09:05
  • Du kurz noch den Thread beantworten.

    ich schau mal, kann aber noch dauern.


    ciao Frank

    Hallo Frank,

    Danke.

    Gruß, Andreas

    Dienstag, 1. März 2011 10:08