If abstract base class contains parameterised constructor (and derived does not) why can't it be used? : <p>I have a DDD type solution with "domain model" classes which are constructed using a "DTO" class (i.e. raw data from DB). </p>

<p>The domain model classes all inherit from an abstract base class, which is intended to provide generic injecting/retrieving of the DTO data. Here is a sample:</p>

<pre><code>public abstract class DomainModelBase&lt;T&gt; where T : IDto, new()
{
    protected T _data;

    protected DomainModelBase()
    {
        _data = new T();
    }

    protected DomainModelBase(T data)
    {
        _data = data;
    }

    protected void SetData(T data)
    {
        _data = data;
    }

    public T GetData()
    {
        return _data;
    }
}

public class AttributeOption : DomainModelBase&lt;AttributeOptionData&gt;
{
    //public AttributeOption(AttributeOptionData data)
    //{
    //    SetData(data);
    //}
}
</code></pre>

<p>I thought (because DomainModelBase contains a parameterised constructor) I would be able to do this:</p>

<pre><code>        var data = new AttributeOptionData();
        var model = new AttributeOption(data);
</code></pre>

<p>However, the compiler says "Constructor 'AttributeOption' has zero parameters, but is invoked with one argument". The only way to make it work seems to be to create a parameterised constructor in the derived class (like the commented out one above).</p>

<p>Is there a way to make this work by modifying the base class, i.e. without the work of setting up parameterised constructors in every derived class?</p>
