title: Is this a bug? Activator.CreateInstance with private access modifier constructor?
body: <p>So I had this Singleton code</p>
  
  <pre><code>public class Foo
  {
      private static Foo instance;
      private Foo() { }
      public static Foo Instance
           {
               get
               {
                   if (instance == null) instance = Activator.CreateInstance&lt;Foo&gt;();
                      return instance;
               }
           }
  }
  </code></pre>
  
  <p>Which didn't work because Foo's constructor is set to private (throws an exception that no parameterless constructor for that class is found).</p>
  
  <p>Traditional <code>new Foo()</code> works there though (of course). I'm aware that Activator cannot access Foo's private constructor due to access restrictions, but I thought that every object instantiation was done by Activator: so why doesn't Activator work in that context?</p>
  
  <p>Thanks!</p>