Leistungen
Leistungen
Überblick
Leistungsangebot
Kernkompetenzen
Schulungsthemen
In-House-Schulungen
Offene .NET-Seminare
Offene WPS-Seminare
Beratung
Coaching
Support
Softwareentwicklung
Entwickler-Vermittlung
.NET/Visual Studio
TFS/ALM/Scrum
Webprogrammierung
PowerShell
Konditionen
Anfrage/Kontakt
Beratung/Coaching
Beratung/Coaching
Beratungsthemen
Coaching
Unsere Berater
Referenzkunden
Konditionen
Angebotsanfrage
In-House-Schulungen
In-House-Schulungen
Überblick
Themen/Fachgebiete
Schulungskonfigurator
Konzepte
.NET/Visual Studio
C#
VB.NET
ASP.NET
Moderne Webanwendungen
TFS/ALM/Scrum
PowerShell
Konferenzvortraege
Referenzkunden
Unsere Trainer
Konditionen
Angebotsanfrage
Offene Schulungen
Offene Schulungen
Überblick .NET-Seminare
.NET/C#-Basisseminar
WPF (Desktop)
ASP.NET/AJAX (Web)
WCF/WF (SOA)
ADO.NET/EF (Data)
Windows PowerShell
.NET, C#, VB, Visual Studio
.NET, C#, VB, Visual Studio
Startseite
Beratung/Training
Offene .NET-Seminare
Einführung
Lexikon
Artikel
Bücher
Klassenreferenz
Programmiersprachen
Entwicklerwerkzeuge
Softwarekomponenten
World Wide Wings Demo
Codebeispiele
Scripting
ASP.NET
.NET 2.0
.NET 3.0/3.5
.NET 4.0/4.5
Community
Forum
Kommerzielle Leistungen
ASP.NET
ASP.NET
Startseite
Lexikon
Sicherheit
Konfiguration
Global.asax
Tracing
Technische Beiträge
Klassenreferenz
Programmiersprachen
Entwicklerwerkzeuge
Softwarekomponenten
PowerShell
PowerShell
Überblick
Beratung
In-House-Schulungen
Öffentliche Schulungen
Codebeispiele
Commandlet Extensions
Offene PowerShell-Seminare
Inhouse-Seminare
Windows
Windows
Startseite
Windows Runtime (WinRT)
Windows PowerShell
Windows Scripting
Windows-Schulungen
Windows-Lexikon
Windows-Forum
Windows Scripting
Windows Scripting
Startseite
Lexikon
FAQ
Buecher
Architektur
Skriptsprachen
Scripting-Hosts
Scripting-Komponenten
COM/DCOM/COM+
ADSI
WMI
Scripting-Tools
WSH-Editoren
Codebeispiele
ASP.NET
.NET-Scripting
Forum
Links
Kommerzielle Leistungen
Service
Service
Website-FAQ
Anmeldung/Login
Leser-Registrierung
Gast-Registrierung
Nachrichten/RSS
Newsletter
Foren
Weblog
Lexikon
Downloads
Support
Kontakt
Literaturtipps
Publikationen
Publikationen
Redaktionsbüro
Bücher
Fachartikel
Leser-Portal
Autoren gesucht!
Rezensionen
Über uns
Über uns
Holger Schwichtenberg
Team
Referenzkunden
Kundenaussagen
Referenzprojekte
Partner
Site Map
Weitere Websites
Tag Cloud
Impressum
Rechtliches

XML-Serialisieren in String
Codebeispiel für Visual Basic .NET (VB.NET) und CSharp (C#)

Liste aller Codebeispiele

XML-Serialisieren in String

Ein Beispiel zum Einsatz der Klasse System.Xml.Serialization.XmlSerializer aus der .NET-Klassenbibliothek.

Autor: Dr. Holger Schwichtenberg 

Beschreibung

Leider kann die Serialize()-Methode nur mit Stream- und Writer-Objekten, nicht aber nicht mit String-Objekten arbeiten. Zur In-Memory-Serialisierung in einen String muss die MemoryStream-Klasse verwendet werden. Da es hier aber keine direkte Methode gibt, um den Stream-Inhalt als String zu erhalten, gibt es zwei Wege:
1. Lesen des MemoryStreams über ein StreamReader-Objekt oder
2. Umwandeln des MemoryStreams in eine Byte-Folge, zeichenweise Umwandlung in ein Char-Objekt und Zusammensetzen zu einem String

Ein so gewonnener XML-String kann z.B. in eine Datenbank gespeichert werden.

Programmcodebeispiele Visual Basic .NET (VB.NET)

' ### XML-Serialisieren in String
  Function xml_serialize(ByVal obj As Object) As String
   Dim serializer As New XmlSerializer(obj.GetType)
   Dim s As String

   ' --- Serialisieren in MemoryStream
   Dim ms As New MemoryStream()
   serializer.Serialize(ms, obj)
   out("Objekt wurde serialisiert!")

   ' --- Stream in String umwandeln
   Dim r As StreamReader = New StreamReader(ms)
   r.BaseStream.Seek(0, SeekOrigin.Begin)
   s = r.ReadToEnd

   ' Alternative:
   'Dim b As Byte
   'Dim ba As Byte()
   'ba = ms.ToArray
   'For Each b In ba
   ' s = s & Convert.ToChar(b)
   'Next

   Return s
  End Function

Programmcodebeispiele CSharp (C#)

using System;
using System.Runtime.Serialization.Formatters.Binary;
using System.Runtime.Serialization.Formatters.Soap;
using System.Runtime.Serialization;
using System.IO;
using System.Xml.Serialization;
using System.Xml;
using System.Data;

namespace FCL_Buch._System_Runtime_Serialization {

  // Hilfsfunktionen für Serialisierung
  public class SerializationHelper {
public static string Xml_Serialize(object obj) {

   // XML-Serialisieren in String
   XmlSerializer serializer = new XmlSerializer(obj.GetType());

   // Serialisieren in MemoryStream
   MemoryStream ms = new MemoryStream();
   serializer.Serialize(ms, obj);
   FclOutput.PrintOut("Objekt wurde serialisiert!");

   // Stream in String umwandeln
   StreamReader r = new StreamReader(ms);
   r.BaseStream.Seek(0, SeekOrigin.Begin);

   return r.ReadToEnd();
   }


   public static string MS_To_String(MemoryStream ms) {

   // Zeichenweise Umwandlung eines Memory-Streams in einen String
   string s = String.Empty;
   byte[] ba = ms.ToArray();
   foreach (byte b in ba) {
   s += (char)b;
   }
   return s;
   }
}
}

Querverweise

Definition '.NET Framework Class Library'
Verfügbarkeit der Klasse 'System.Xml.Serialization'
Übersicht über den FCL-Namensraum 'System.Xml.Serialization'
Portal dotnetframework.de