title: Internal abstract class: how to hide usage outside assembly?
body: <p>I have a common assembly/project that has an abstract base class, then several derived classes that I want to make public to other assemblies. </p>
  
  <p>I don't want the abstract base class to show up in these other assemblies in Intellisense, so I thought I'd make it <code>internal</code>, but I get this error:</p>
  
  <blockquote>
    <p>Inconsistent accessibility: base class 'Settings' is less accessible than class 'IrcSettings' ....</p>
  </blockquote>
  
  <p>I don't really get this. I am forced to make the abstract <code>Settings</code> class <code>public</code>, and thus visible outside this assembly. </p>
  
  <p>How can I make this class <code>internal</code> instead?</p>