Adding additional properties without having to overwrite base properties
<p>I have a number of classes deriving from an abstract base class. The concrete classes are stored in a container by references to base class. The concrete classes have many properties which are used to bind to pages in a FixedDocument.</p>

<p>I want to add aditional properties to the concrete classes at runtime which will also bind to the FixedDocument pages. I looked into the decorator pattern but it seems i have to override all the concrete class properties in the decorator class for them to be visible. Is there a way of adding a wrapper that is derived from the concrete class that inherits the values of the base properties as follows:</p>

<pre><code>    class BaseClass
    {
        public string Name { get; set; }
    }

    class ConcreteClass : BaseClass
    {
        public int MyProperty { get; set; }
    }

    class ConcreteClassWrapper : ConcreteClass
    {
        public int AdditionalProperty { get; set; }

        public ConcreteClassWrapper(ConcreteClass cc) 
        {
            base = cc;
        }
    }

    private static void RunTime()
    {
        List&lt;BaseClass&gt; list = new List&lt;BaseClass&gt;();

        ConcreteClass cc = new ConcreteClass()
        {
            Name = "Original",
            MyProperty = 5
        };

        list.Add(cc);

        cc = new ConcreteClassWrapper(cc)
        {
            AdditionalProperty = 10
        };
    }
</code></pre>

<p>Obviously i cant just set 'base = cc'. Is there anyway to achieve this?</p>
