public IEnumerable<Framework> Expand()
{
XmlSerializer ser = new XmlSerializer(typeof(Framework));
MemoryStream ms = new MemoryStream();
ser.Serialize(ms, Template);
foreach (var n in Range.Split(Separator[0]))
{
ms.Seek(0, SeekOrigin.Begin);
Framework deepCopy = (Framework)ser.Deserialize(ms);
Expand(ref deepCopy.Name, n);
Expand(ref deepCopy.ID, n);
Expand(ref deepCopy.ProjectFolderName, n);
foreach (var job in deepCopy.CopyJobs)
{
Expand(ref job.SourceFolder, n);
Expand(ref job.TargetFolder, n);
Expand(ref job.FilesToCopy, n);
Expand(ref job.AdditionalIncludeDirs, n);
}
yield return deepCopy;
}
}