Example #1
0
        private static CompositionResult <IEnumerable <Export> > TryGetExports(ExportProvider provider,
                                                                               ComposablePart part, ImportDefinition definition, AtomicComposition atomicComposition)
        {
            try
            {
                var exports = provider.GetExports(definition, atomicComposition).AsArray();
                return(new CompositionResult <IEnumerable <Export> >(exports));
            }
            catch (ImportCardinalityMismatchException ex)
            {
                // Either not enough or too many exports that match the definition
                CompositionException exception = new CompositionException(ErrorBuilder.CreateImportCardinalityMismatch(ex, definition));

                return(new CompositionResult <IEnumerable <Export> >(
                           ErrorBuilder.CreatePartCannotSetImport(part, definition, exception)));
            }
        }