How to define two dependent generic interfaces?
<p>I encountered a problem while using a generic interface. Initial condition was as follows:</p>

<pre><code>interface Itemplate1
{
    ...
}

interface Itemplate2&lt;T&gt; where T : Itemplate1
{
    ...
}
</code></pre>

<p>It works like a charm! But when I kept going to do rest of my application design, I noticed that <code>Itemplate1</code> members also need <code>Itemplate2</code>.</p>

<pre><code>interface Itemplate1&lt;T&gt; where T : Itemplate2&lt;?&gt;
{
    ...
}

interface Itemplate2&lt;T&gt; where T: Itemplate1&lt;?&gt;
{
    ...
}
</code></pre>

<p>How can I do it?
Many Thanks</p>
