title: C# Interfaces with optional methods
body: <p>I understand that interfaces are contracts and any changes (even additions) break any dependent code.  However, I could have sworn I read something a while back that one of the recent .NET versions (3, 3.5??) added a new attribute that could be applied to new interface members.  This attribute allowed versioning and/or making members optional.  It would have been something like:</p>
  
  <pre><code>interface ITest
  {
      void MethodOne();
  
      [InterfaceVersion(2)]
      void MethodTwo();
  }
  </code></pre>
  
  <p>I have looked high and low for this but just can't seem to find it.  I am wondering whether I simply misunderstood whatever I think I read and there is no such thing.  Does someone have any insight?</p>