.NET: XmlSerializer ohne dynamische Code-Generierung

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:

<system.diagnostics> </system.diagnostics>

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

comment

Comments

arrow_back

Previous

JPA: Dynamic Datasource Routing

Next

Spring AOP & Ehcache
arrow_forward