Skip to content

.NET: XmlSerializer ohne dynamische Code-Generierung

2009 September 29
tags: , ,
by Haf

Unter C# kann man mittels XmlSerializer XML Daten zu Objekten deserialisieren oder den umgekehrten Weg, Objekte zu XML umwandeln.
Hier hat die Dokumentation jedoch eine beachtliche Lücke. XmlSerialiser generiert nämlich jedesmal on-the-fly eine DLL um den XML Stream typ-sicher umwandeln zu können. Hierfür wird eine C# Source-Datei generiert und csc.exe aufgerufen.

Die erstellten Dateien werden im %TEMP%-Verzeichnis erstellt und in der Standardeinstellung sofort wieder gelöscht, wenn sie nicht mehr benötigt werden.
Das automatische Löschen kann man umgehen, wenn man z.B. in WINDOWS\Microsoft.NET\Framework\v2.0...\CONFIG\maschine.config folgenden Eintrag hinzufügt:

Nun kann man entweder die .CS-Datei oder die generierte DLL-Datei in das eigene Projekt integrieren. Dann ist die direkte Nutzung von XmlSerializer nicht mehr notwendig.

Mit dieser Lösung wird zur Laufzeit die csc.exe nicht mehr benötigt und entsprechend die Performance verbessert.

Links:
– XmlSerializer: http://msdn.microsoft.com/en-us/library/system.xml.serialization.xmlserializer.aspx

Share it!
  •  
  •  
  •  
  •  
  •  
  •  
No comments yet

Leave a Reply

Note: You can use basic XHTML in your comments. Your email address will never be published.

Subscribe to this comment feed via RSS