title: Visual Studio Intellisense not showing methods on generic overload
body: <p>Given the following two interfaces (these are small examples, not my actual implementation):</p>
  
  <pre><code>public interface IAssertion&lt;T&gt; {
       IAssertion&lt;T&gt; IsNotNull();
       IAssertion&lt;T&gt; Evaluate(Predicate&lt;T&gt; predicate)
  }
  
  public interface IStringAssertion : IAssertion&lt;string&gt; {
       IStringAssertion IsNotNullOrEmpty();
  }
  </code></pre>
  
  <p>and a static factory that will return the appropriate interface, for example:</p>
  
  <pre><code>public static class Require {
       public static IAssertion&lt;T&gt; That&lt;T&gt;(T value) {
            ...
       }
  
       public static IStringAssertion That(string value) {
            ...
       }
  }
  </code></pre>
  
  <p>I should be able to do the following:</p>
  
  <pre><code>public void TestMethod(SomeClass a, string b) {
      Require.That(a).IsNotNull();
      Require.That(b).IsNotNullOrEmpty().Evaluate(SomeMethodThatAcceptsString);
  }
  </code></pre>
  
  <p>This code compiles and will actually run. I can even set up tests that pass, such as:</p>
  
  <pre><code>Assert.IsInstanceOf&lt;IStringAssertion&gt;(Require.That(string.Empty));
  Assert.IsNotInstanceOf&lt;IStringAssertion&gt;(Require.That(new object());
  </code></pre>
  
  <p>The problem I am running into and the whole point of this question, is that Visual Studio 2005 intellisense is not resolving the differences between the two.</p>
  
  <p>When I type <code>Require.That("...").</code> I should expect to see a list of </p>
  
  <pre>
  Evaluate(Predicate predicate)
  IsNull()
  IsNotNullOrEmpty()
  </pre>
  
  <p>but instead I see nothing.</p>
  
  <p>I would really like to keep the same method name for the overloads. I want to keep the generic overload because of the predicate in the Evaluate method of the IAssertion interface.</p>
  
  <p>Also, I know I can do something close to this using extension methods, but that is not an option because I still want to support .Net 2.0 and would like to keep the fluent api.</p>
  
  <p><strong>Updated:</strong></p>
  
  <p>There have been some good answers that involve third party add-ons to Visual Studio.  Unfortunately I am not in a position to either install or purchase add-on tools for Visual Studio due to the corporate red tape that I am developing under. (I hate politics!)</p>
  
  <p>I am looking for a code only option that will work in both Visual Studio 2005 and Visual Studio 2008.</p>
  
  <p><strong>Updated:</strong></p>
  
  <p>This works in Visual Studio 2008.  Thank you, <a href="https://stackoverflow.com/users/55847/luke">Luke</a>.  That only leaves Visual Studio 2005.</p>