 <blockquote> <p>driver.cs(19.25):error 1061: 'calculator' does not contain a definition for 'addition' and no extension method 'addition' accepting a first argument of type 'calculator' could be found </blockquote> <p>As Matti Virkkunen has pointed already this is because method is <code>private</code>.</p> <p>Normally if method is <code>private</code> and it is in the same project as console app, you'll get compile time error : <em>"method is inaccesible due to its protection level"</em>.</p> <p>Because it's in another project it's not inaccessible but completely invisible for console app.</p> <p>P.S. You can still access your private method using reflection :</p> <pre><code> static void Main(string[] args) { calculator calc = new calculator(); var addition = calc.GetType().GetMethod("addition", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance); var result = addition.Invoke(calc, new object[] { 5, 10 }); Console.WriteLine(result); } </code></pre> <p>Output : <code>15</code></p>