private IEnumerable<ComposablePartDefinition> CloneNonSharedParts()
{
return this.nonSharedParts
.AsParallel()
.Where(part => part != null)
.Select(def => ReflectionModelServices.CreatePartDefinition(
ReflectionModelServices.GetPartType(def),
true,
new Lazy<IEnumerable<ImportDefinition>>(() => def.ImportDefinitions),
new Lazy<IEnumerable<ExportDefinition>>(() => def.ExportDefinitions),
new Lazy<IDictionary<string, object>>(() => def.Metadata),
this));
}