title: When is a .NET namespace implemented by a .NET Framework component?
body: <p>(Yet another question from my "Clearly I'm the only idiot out here" series.)</p>
  
  <p>When I need to use a class from the .NET Framework, I dutifully look up the documentation to determine the corresponding namespace and then add a "using" directive to my source code:</p>
  
  <pre><code>using System.Text.RegularExpressions;
  </code></pre>
  
  <p>Usually I'm good to go at this point, but sometimes Intellisense doesn't recognize the new class and the project won't build.  A quick check in the Object Browser confirms that I have the right namespace.  Frustration ensues.</p>
  
  <p>Using <code>HttpUtility.UrlEncode()</code> involved adding the appropriate directive:</p>
  
  <pre><code>using System.Web;
  </code></pre>
  
  <p>But it also required adding a reference to .NET Framework Component for <code>System.Web</code>, i.e. right-click the project in Solution Explorer, select Add Reference and add System.Web from the .NET tab.</p>
  
  <p>How might I discern <em>from the documentation</em> whether a .NET namespace is implemented by a .NET Framework Component that must be referenced?  I'd rather not hunt through the available components every time I use a namespace on the off chance that a reference is needed.</p>
  
  <p>(For those who like to stay after class and clean the erasers: Will Organize Usings > Remove and Sort also remove references to componenents that are not used elsewhere in the project?  How do you clean up unnecessary references?)</p>