title: c#: public when debugging, private otherwise
body: <p>Is there a nice way to make it so that functions are public when I am testing with NUnit, but private otherwise?</p>
  
  <p>Not having to generate a lot of extraneous code would also be nice.</p>
  
  <p>------------------------Edit------------------------</p>
  
  <p>It seems the solutions fall under 3 types:</p>
  
  <ol>
  <li>don't do what I'm attempting to do.</li>
  <li>use compiler directives.</li>
  <li>try a clever solution (like using
  InternalsVisibleTo).</li>
  </ol>
  
  <p>Might there be a way to do this programmatically?  i.e. just create a new temporary app that makes all <code>protected/private/internal</code>functions <code>public</code>, plug that into NUnit, run the tests there, and then go back to using the private functions for the release version?</p>