title: The type arguments for method cannot be inferred from the usage
body: <p>Maybe I'm overworked, but this isn't compiling (CS0411). Why?</p>
  
  <pre><code>interface ISignatur&lt;T&gt;
  {
      Type Type { get; }
  }
  
  interface IAccess&lt;S, T&gt; where S : ISignatur&lt;T&gt;
  {
      S Signature { get; }    
      T Value { get; set; }
  }
  
  class Signatur : ISignatur&lt;bool&gt;
  {
      public Type Type
      {
          get { return typeof(bool); }
      }
  }
  
  class ServiceGate
  {
      public IAccess&lt;S, T&gt; Get&lt;S, T&gt;(S sig) where S : ISignatur&lt;T&gt;
      {
          throw new NotImplementedException();
      }
  }
  
  static class Test
  {
      static void Main()
      {
          ServiceGate service = new ServiceGate();
          var access = service.Get(new Signatur()); // CS4011 error
      }
  }
  </code></pre>
  
  <p>Anyone an idea why not? Or how to solve?</p>