System\ComponentModel\Composition\ConstraintServices.cs (11)
16private static readonly PropertyInfo _exportDefinitionContractNameProperty = typeof(ExportDefinition).GetProperty("ContractName")!;
17private static readonly PropertyInfo _exportDefinitionMetadataProperty = typeof(ExportDefinition).GetProperty("Metadata")!;
23public static Expression<Func<ExportDefinition, bool>> CreateConstraint(string contractName, string? requiredTypeIdentity, IEnumerable<KeyValuePair<string, Type>> requiredMetadata, CreationPolicy requiredCreationPolicy)
25ParameterExpression parameter = Expression.Parameter(typeof(ExportDefinition), "exportDefinition");
52Expression<Func<ExportDefinition, bool>> constraint = Expression.Lambda<Func<ExportDefinition, bool>>(constraintBody, parameter);
186public static Expression<Func<ExportDefinition, bool>> CreatePartCreatorConstraint(Expression<Func<ExportDefinition, bool>> baseConstraint, ImportDefinition productImportDefinition)
208Expression.Convert(productExportDefinitionExpression, typeof(ExportDefinition)));
213Expression<Func<ExportDefinition, bool>> constraint =
214Expression.Lambda<Func<ExportDefinition, bool>>(
System\ComponentModel\Composition\Hosting\CatalogExportProvider.cs (12)
343private Export CreateExport(ComposablePartDefinition partDefinition, ExportDefinition exportDefinition, bool isExportFactory, CreationPolicy importPolicy)
365private static ExportDefinition[] GetExportsFromPartDefinitions(IEnumerable<ComposablePartDefinition> partDefinitions)
367List<ExportDefinition> exports = new List<ExportDefinition>();
371foreach (var export in partDefinition.ExportDefinitions)
397IEnumerable<ExportDefinition> addedExports = GetExportsFromPartDefinitions(e.AddedDefinitions);
398IEnumerable<ExportDefinition> removedExports = GetExportsFromPartDefinitions(e.RemovedDefinitions);
508private object? GetExportedValue(CatalogPart part, ExportDefinition export, bool isSharedPart)
784private void UpdateRejections(IEnumerable<ExportDefinition> changedExports, AtomicComposition? atomicComposition)
818var resurrectedExports = new List<ExportDefinition>();
847new ExportsChangeEventArgs(resurrectedExports, Array.Empty<ExportDefinition>(), localAtomicComposition));
850new ExportsChangeEventArgs(resurrectedExports, Array.Empty<ExportDefinition>(), null)));
System\ComponentModel\Composition\Primitives\ComposablePartDefinition.cs (12)
16internal static readonly IEnumerable<Tuple<ComposablePartDefinition, ExportDefinition>> _EmptyExports = Enumerable.Empty<Tuple<ComposablePartDefinition, ExportDefinition>>();
30/// An <see cref="IEnumerable{T}"/> of <see cref="ExportDefinition"/> objects describing
42public abstract IEnumerable<ExportDefinition> ExportDefinitions { get; }
105internal virtual bool TryGetExports(ImportDefinition definition, out Tuple<ComposablePartDefinition, ExportDefinition>? singleMatch, out IEnumerable<Tuple<ComposablePartDefinition, ExportDefinition>>? multipleMatches)
110List<Tuple<ComposablePartDefinition, ExportDefinition>>? multipleExports = null;
111Tuple<ComposablePartDefinition, ExportDefinition>? singleExport = null;
113foreach (var export in ExportDefinitions)
120singleExport = new Tuple<ComposablePartDefinition, ExportDefinition>(this, export);
126multipleExports = new List<Tuple<ComposablePartDefinition, ExportDefinition>>();
129multipleExports.Add(new Tuple<ComposablePartDefinition, ExportDefinition>(this, export));
System\ComponentModel\Composition\Primitives\ImportDefinition.cs (8)
19private readonly Expression<Func<ExportDefinition, bool>>? _constraint;
24private Func<ExportDefinition, bool>? _compiledConstraint;
81public ImportDefinition(Expression<Func<ExportDefinition, bool>> constraint, string? contractName, ImportCardinality cardinality, bool isRecomposable, bool isPrerequisite)
89public ImportDefinition(Expression<Func<ExportDefinition, bool>> constraint, string? contractName, ImportCardinality cardinality, bool isRecomposable, bool isPrerequisite, IDictionary<string, object?>? metadata)
144/// <see cref="ExportDefinition"/>. The default is an empty, read-only
200public virtual Expression<Func<ExportDefinition, bool>> Constraint
242/// against a given <see cref="ExportDefinition"/> to determine if this
262public virtual bool IsConstraintSatisfiedBy(ExportDefinition exportDefinition)
System\ComponentModel\Composition\ReflectionModel\ReflectionComposablePartDefinition.cs (18)
19private volatile ExportDefinition[]? _exports;
55private ExportDefinition[] ExportDefinitionsInternal
61ExportDefinition[] exports = _creationInfo.GetExports().ToArray();
71public override IEnumerable<ExportDefinition> ExportDefinitions
141internal override bool TryGetExports(ImportDefinition definition, out Tuple<ComposablePartDefinition, ExportDefinition>? singleMatch, out IEnumerable<Tuple<ComposablePartDefinition, ExportDefinition>>? multipleMatches)
148List<Tuple<ComposablePartDefinition, ExportDefinition>>? exports = null;
192if (candidatePart.TryGetExports(definition, out Tuple<ComposablePartDefinition, ExportDefinition>? candidateSingleMatch, out IEnumerable<Tuple<ComposablePartDefinition, ExportDefinition>>? candidateMultipleMatches))
218private bool TryGetNonGenericExports(ImportDefinition definition, out Tuple<ComposablePartDefinition, ExportDefinition>? singleMatch, out IEnumerable<Tuple<ComposablePartDefinition, ExportDefinition>>? multipleMatches)
223List<Tuple<ComposablePartDefinition, ExportDefinition>>? multipleExports = null;
224Tuple<ComposablePartDefinition, ExportDefinition>? singleExport = null;
227foreach (var export in ExportDefinitionsInternal)
234singleExport = new Tuple<ComposablePartDefinition, ExportDefinition>(this, export);
240multipleExports = new List<Tuple<ComposablePartDefinition, ExportDefinition>>();
243multipleExports.Add(new Tuple<ComposablePartDefinition, ExportDefinition>(this, export));
267foreach (ExportDefinition export in ExportDefinitionsInternal)