title: Generic type parameter error
body: <p>I have these 3 abstract classes:  </p>
  
  <pre><code>public abstract class DataObject {}
  public abstract class BusinessObject&lt;T&gt; where T : DataObject {}
  public abstract class UIObject&lt;T&gt; where T : BusinessObject&lt;DataObject&gt; {}
  </code></pre>
  
  <p>I am able to create a <strong>CustomerDataObject</strong> which derives from <code>DataObject</code>, a <strong>CustomerBusinessObject</strong> which derives from <code>BusinessObject&lt;CustomerDataObject&gt;</code> but I can't create the <strong>CustomerUIObject</strong> class:  </p>
  
  <blockquote>
    <p>The type <code>CustomerBusinessObject</code> cannot be used as type parameter <code>T</code>
    in the generic type or method <code>UIObject&lt;T&gt;</code>. There is no implicit
    reference conversion from <code>CustomerBusinessObject</code> to
    <code>BusinessObject&lt;DataObject&gt;</code>.</p>
  </blockquote>
  
  <p>What am I doing wrong?</p>