<?xml version="1.0" encoding="UTF-8"?><item><title>Decompiler vs having source</title><description>&lt;DIV&gt;One of the big reasons it's cool to have the source code for something you're working with is so you can see what it's doing.&amp;nbsp; (How often do most people actually modify the source code to an open source program or library?&amp;nbsp; Very rarely compared to how often you use it).&amp;nbsp; But what if you could see what it's doing without having the source?&lt;/DIV&gt;&#13;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&#13;
&lt;DIV&gt;&lt;A href="http://www.aisto.com/roeder/dotnet/Download.aspx?File=Reflector.zip"&gt;http://www.aisto.com/roeder/dotnet/Download.aspx?File=Reflector.zip&lt;/A&gt;&lt;/DIV&gt;&#13;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&#13;
&lt;DIV&gt;Reflector now has&amp;nbsp;a C# code generator, that generates C# code based on the IL it finds.&amp;nbsp; It works amazingly well.&amp;nbsp; &lt;/DIV&gt;&#13;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&#13;
&lt;DIV&gt;&#13;
&lt;TABLE style="MARGIN-BOTTOM: 0px" cellSpacing=0 cellPadding=0 width="100%"&gt;&#13;
&lt;TBODY&gt;&#13;
&lt;TR&gt;&#13;
&lt;TD style="PADDING-RIGHT: 5px; PADDING-LEFT: 5px; PADDING-BOTTOM: 4px; PADDING-TOP: 4px" vAlign=top colSpan=2&gt;&lt;FONT color=#1000a0&gt;private&lt;/FONT&gt; &lt;A title=System.Void href="urn:object:1"&gt;&lt;FONT color=#006018&gt;void&lt;/FONT&gt;&lt;/A&gt; &lt;B&gt;CheckScope&lt;/B&gt;(&lt;A title=System.Xml.Serialization.TypeScope href="urn:object:2"&gt;&lt;FONT color=#006018&gt;TypeScope&lt;/FONT&gt;&lt;/A&gt; scope)&lt;BR&gt;{&lt;BR&gt;&#13;
&lt;TABLE cellSpacing=0 cellPadding=0&gt;&#13;
&lt;TBODY&gt;&#13;
&lt;TR&gt;&#13;
&lt;TD width=20&gt;&#13;
&lt;TD&gt;&lt;FONT color=#1000a0&gt;if&lt;/FONT&gt; (&lt;FONT color=#1000a0&gt;this&lt;/FONT&gt;.&lt;A title="TypeScope System.Xml.Serialization.XmlCodeExporter.scope;" href="urn:object:3"&gt;&lt;FONT color=#006018&gt;scope&lt;/FONT&gt;&lt;/A&gt; == &lt;FONT color=#800000&gt;null&lt;/FONT&gt;)&lt;BR&gt;{&lt;BR&gt;&#13;
&lt;TABLE cellSpacing=0 cellPadding=0&gt;&#13;
&lt;TBODY&gt;&#13;
&lt;TR&gt;&#13;
&lt;TD width=20&gt;&#13;
&lt;TD&gt;&lt;FONT color=#1000a0&gt;this&lt;/FONT&gt;.&lt;A title="TypeScope System.Xml.Serialization.XmlCodeExporter.scope;" href="urn:object:4"&gt;&lt;FONT color=#006018&gt;scope&lt;/FONT&gt;&lt;/A&gt; = &lt;A title="TypeScope scope; // Parameter"&gt;&lt;FONT color=#006018&gt;scope&lt;/FONT&gt;&lt;/A&gt;;&lt;BR&gt;&lt;FONT color=#1000a0&gt;return&lt;/FONT&gt;;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;}&lt;BR&gt;&lt;FONT color=#1000a0&gt;if&lt;/FONT&gt; (&lt;FONT color=#1000a0&gt;this&lt;/FONT&gt;.&lt;A title="TypeScope System.Xml.Serialization.XmlCodeExporter.scope;" href="urn:object:5"&gt;&lt;FONT color=#006018&gt;scope&lt;/FONT&gt;&lt;/A&gt; != &lt;A title="TypeScope scope; // Parameter"&gt;&lt;FONT color=#006018&gt;scope&lt;/FONT&gt;&lt;/A&gt;)&lt;BR&gt;{&lt;BR&gt;&#13;
&lt;TABLE cellSpacing=0 cellPadding=0&gt;&#13;
&lt;TBODY&gt;&#13;
&lt;TR&gt;&#13;
&lt;TD width=20&gt;&#13;
&lt;TD&gt;&lt;FONT color=#1000a0&gt;throw&lt;/FONT&gt; &lt;FONT color=#1000a0&gt;new&lt;/FONT&gt; &lt;A title=System.InvalidOperationException.InvalidOperationException(string); href="urn:object:6"&gt;&lt;FONT color=#006018&gt;InvalidOperationException&lt;/FONT&gt;&lt;/A&gt;(&lt;A title=System.Xml.Res href="urn:object:7"&gt;&lt;FONT color=#006018&gt;Res&lt;/FONT&gt;&lt;/A&gt;.&lt;A title="string System.Xml.Res.GetString(string name);" href="urn:object:8"&gt;&lt;FONT color=#006018&gt;GetString&lt;/FONT&gt;&lt;/A&gt;(&lt;FONT color=#800000&gt;"XmlMappingsScopeMismatch"&lt;/FONT&gt;));&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;}&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;}&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;&#13;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&#13;
&lt;DIV&gt;That's code generated by the decompiler.&amp;nbsp; It's awesome for answering &amp;#8220;I wonder what CheckScope does..&amp;#8220;&lt;/DIV&gt;&#13;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;</description><pubDate>Thu, 01 Sep 2005 19:17:07 GMT</pubDate></item>