title: What is a circular dependency and how can I solve it?
body: <h2>Scenario</h2>
  
  <hr>
  
  <p>I have a solution on which I have (more than) 2 projects.</p>
  
  <p>The first project has a project reference to the second project. The second project doesn't have a reference to the first project.</p>
  
  <p>Well, in the first project I defined a inheritable class-type on which I would like that some classes from the second project inherits from it.</p>
  
  <h2>Problem</h2>
  
  <hr>
  
  <p>Obviouslly, If I want to inherit the type defined in the first project, in the second project I need to add a project reference to the first project to be able see the type and go on.</p>
  
  <p>The problem is that when I try to add the project reference, I get this error message:</p>
  
  <p><a href="https://i.stack.imgur.com/dBsoo.png" rel="noreferrer"><img src="https://i.stack.imgur.com/dBsoo.png" alt="Circular dependency error"></a></p>
  
  <h2>Question</h2>
  
  <hr>
  
  <p>Someone could explain me with other simple words (maybe with a code example too in case of code is implied in the error) what is a circular dependency?, and the most important thing: what can I do to solve it? (<em>please read the last prhases of my research before answering</em>).</p>
  
  <h2>Research</h2>
  
  <hr>
  
  <p>Is the first time that I hear the term "<em>Circular dependency</em>"; I've read <strong><a href="https://msdn.microsoft.com/en-us/library/xxd1t65f%28v=vs.90%29.aspx" rel="noreferrer">this</a></strong> article from MSDN but I understood <strong>nothing</strong>.</p>
  
  <p>Anyways I seen many questions of circular dependencys like <strong><a href="https://stackoverflow.com/questions/2052579/circular-dependencies">this</a></strong>, and from what I've seen in that question seems that a circular dependency means that two projects cannot reference between them at the same time, just one of those two projects can reference the other; 
  and also all the people who answered in that question said things like "<em>Re-design is the solution</em>" or "<em>Circular dependencies are not good practices</em>", however, re-designing in my case will mean define the same type in both projects, which I don't think that could be good practices neither, and of course building an additional assembly/project just to store a single type to reference that assembly in both projects ...is the worst idea I think.</p>