title: Changing property type in class that implements interface with object type property
body: <p>I'm writing a TemplateEngine that will allow me to use my own markup in text based files. I'm wanting to add controls as plugins as the application matures. Currently i've got a structure like the following:</p>
  
  <pre><code>interface IControl
      string Id
      object Value
  
  class Label : IControl
      string Id
      string Value
  
  class Repeater : IControl
      string Id
      List&lt;IControl&gt; Value
  </code></pre>
  
  <p>Now you'll see the strange part right away in the Repeater class with the Value property. I was hoping that having the Value type as object in the interface would allow me the flexibility to expand the controls as i go along. The compiler doesn't like this and for good reason i guess. </p>
  
  <p>Bottom line: I'm trying to get all control classes to implement the same interface but have different types for the Value property.</p>
  
  <p>Does anyone have any suggestions how to accomplish this?</p>
  
  <p>Note: Please don't go into suggesting things like use Spark View Engine for templating. There is a reason i'm creating extra work for myself.</p>