IDictionary <CompositionContract, ICollection <PrimitiveExport> > MapPrimitiveParts(ComposablePartCatalog catalog, Func <string, Type> typeNameResolver, Func <CreationPolicy, Tuple <bool, string> > creationPolicyMapping) { var result = new Dictionary <CompositionContract, ICollection <PrimitiveExport> >(); foreach (var part in catalog) { var primitivePart = new PrimitivePart(part, typeNameResolver, creationPolicyMapping); foreach (var export in part.ExportDefinitions) { var contract = MapExportedContract(export, typeNameResolver); ICollection <PrimitiveExport> existing; if (!result.TryGetValue(contract, out existing)) { existing = new List <PrimitiveExport>(); result.Add(contract, existing); } existing.Add(new PrimitiveExport(export, primitivePart)); } } return(result); }
public PrimitiveExport(ExportDefinition export, PrimitivePart part) { _export = export; _part = part; }