Initialization list on different subclasses
<p>I've got a large, abstract, class <code>InfoBase</code> with lots of properties. Then there are a few subclasses, which have a handful of properties. I will recieve an object with information to instansiate a subclass object of <code>InfoBase</code> which will then be returned, something like this:</p>

<pre><code>private static InfoBase CreateInfo(Dictionary&lt;string, string&gt; userInput) {
    InfoBase info;
    if(userInput["InfoType"] == "SomeInfo") {
        info = new SomeInfo {
            sharedData1 = Process(userInput["data1"]),
            sharedData2 = ProcessDifferently(userInput["data2"] + userInput["AuxData"]),
            // ...
            specialData1 = Something(userInput["blah"])
        };
    }
    else if(userInput["InfoType"] == "OtherInfo") {
    // ... And so on
    }
    return info;
}
</code></pre>

<p>Almost all the fields of the <code>info</code> object will be initialized in the same way, so I'd like to share that initialization instead of copy/pasting it, and just change the specifics. I'd like to do the shared initialization with an initialization list, instead of having twenty rows of <code>info.data1 = ...;</code>. Is this possible? Ideally, something like this:</p>

<pre><code>InfoBase info = WhateverMagicStuff { 
    sharedData1 = // ...
};
SomeInfo specificInfo = SomeInfo(info);
specificInfo.specialData1 = // ...
</code></pre>
