Why does the c# compiler create a PrivateImplementationDetails from this code?
<p>I've discovered that the following code:</p>

<pre><code>public static class MimeHelper
    {
     public static string GetMimeType(string strFileName)
     {
      string retval;
      switch (System.IO.Path.GetExtension(strFileName).ToLower())
      {
       case ".3dm": retval = "x-world/x-3dmf"; break;
       case ".3dmf": retval = "x-world/x-3dmf"; break;
       case ".a": retval = "application/octet-stream"; break;
       // etc...
       default: retval = "application/octet-stream"; break;
      }
      return retval;
     } 
    }
</code></pre>

<p>causes the compiler to create this namespaceless, internal class (copied from Reflector):</p>

<pre><code>&lt;PrivateImplementationDetails&gt;{621DEE27-4B15-4773-9203-D6658527CF2B}
    - $$method0x60000b0-1 : Dictionary&lt;String, Int32&gt;
    - Used By: MimeHelper.GetMimeType(String) : String
</code></pre>

<p>Why is that?
How would I change the above code so it doesn't happen (just out of interest)</p>

<p>Thanks</p>

<p>Andrew</p>
