<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Information Centre &#187; .net</title>
	<atom:link href="http://my.center-of.info/tag/net/feed/" rel="self" type="application/rss+xml" />
	<link>http://my.center-of.info</link>
	<description>“Wenn etwas schon da war, wie kann man es dann patentieren?” D.E.Knuth, 2002</description>
	<lastBuildDate>Sat, 22 Oct 2011 11:09:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>.NET: XmlSerializer ohne dynamische Code-Generierung</title>
		<link>http://my.center-of.info/2009/09/29/xmlserializer-pre-generation/</link>
		<comments>http://my.center-of.info/2009/09/29/xmlserializer-pre-generation/#comments</comments>
		<pubDate>Mon, 28 Sep 2009 23:02:50 +0000</pubDate>
		<dc:creator>Haf</dc:creator>
				<category><![CDATA[Notes]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://my.center-of.info/?p=149</guid>
		<description><![CDATA[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 [...]]]></description>
			<content:encoded><![CDATA[<p>Unter C# kann man mittels <a href="http://msdn.microsoft.com/en-us/library/system.xml.serialization.xmlserializer.aspx" target="_blank" title="MSDN: XmlSerializer Class">XmlSerializer</a> XML Daten zu Objekten deserialisieren oder den umgekehrten Weg, Objekte zu XML umwandeln.<br />
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 <a href="http://msdn.microsoft.com/en-us/library/78f4aasd.aspx" target="_blank" title="MSDN: Command-line Building With csc.exe">csc.exe</a> aufgerufen.<br />
<span id="more-149"></span><br />
Die erstellten Dateien werden im %TEMP%-Verzeichnis erstellt und in der Standardeinstellung sofort wieder gelöscht, wenn sie nicht mehr benötigt werden.<br />
Das automatische Löschen kann man umgehen, wenn man z.B. in <code>WINDOWS\Microsoft.NET\Framework\v2.0...\CONFIG\maschine.config</code> folgenden Eintrag hinzufügt:</p>
<pre class="brush: xml">
&lt;system.diagnostics&gt;
  &lt;switches&gt;
     &lt;add name=&quot;XmlSerialization.Compilation&quot; value=&quot;true&quot; /&gt;
  &lt;/switches&gt;
&lt;/system.diagnostics&gt;
</pre>
<p>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.</p>
<p>Mit dieser Lösung wird zur Laufzeit die csc.exe nicht mehr benötigt und entsprechend die Performance verbessert.</p>
<p>Links:<br />
- XmlSerializer: <a href="http://msdn.microsoft.com/en-us/library/system.xml.serialization.xmlserializer.aspx" target="_blank" title="MSDN: XmlSerializer Class">http://msdn.microsoft.com/en-us/library/system.xml.serialization.xmlserializer.aspx</a></p>
]]></content:encoded>
			<wfw:commentRss>http://my.center-of.info/2009/09/29/xmlserializer-pre-generation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

