title: Solve circular references without introducing a new project
body: <p>I have big, fat and ugly legacy program. One task I had to accomplish was adding a new class to <strong>project A</strong>. <strong>Project B</strong> references <strong>project A</strong>, but the functionality I need to add depends on a method of a class in <strong>project B</strong>. Of course, I can't reference <strong>project B</strong> from <strong>A</strong>, because that would create a circular reference. In a similar situation, my approach was to create <strong>project C</strong> and move the dependencies from <strong>A</strong> and <strong>B</strong> into it, and have both <strong>A</strong> and <strong>B</strong> reference it. </p>
  
  <p>But, for this particular task it would require moving so much code that it would create a huge mess in the solution.</p>
  
  <p>For now, I'm passing the instance of that needed class boxed in an <code>object</code> and using reflection to access the method I need at runtime.</p>
  
  <p>Is there any other (better) way to solve this without moving code to a project C?</p>