Defining a property of type 'class1 : interface1' into another interface
<p>I have some classes which implement an interface as follows:</p>

<pre><code>class C1 : IpropTemplate { ... }

class C2 : IpropTemplate { ... }

:
</code></pre>

<p>Also there is some other class which implements another interface:</p>

<pre><code>class C3 : IclassTemplate { ... }
</code></pre>

<p>Now, I need to specify the signature of a property into the <code>IclassTemplate</code> that forces the <code>C3</code> to have a property which is implemented from <code>IpropTemplate</code>. (such as <code>C1</code> or <code>C2</code>, etc.)</p>

<p>I tried this:</p>

<pre><code>interface IclassTemplate
{
    ...
    IpropTemplate prop1 { get; set; }
}

class C3 : IclassTemplate
{
    ...
    public C1 prop1
    {
        get;
        set;
    }
}
</code></pre>

<p>In this case, compiler produces an error indicating that <code>C3</code> does not implement interface member <code>IclassTemplate.prop1</code> and that the <code>C3.prop1</code> cannot implement <code>IpropTemplate.prop1</code> because it does not have the matching return type of <code>IpropTemplate</code>.</p>

<p>What should I do?
Thanks</p>
