System.ComponentModel.Composition.CompositionDumper.TouchCatalog C# (CSharp) Method

TouchCatalog() public static method

public static TouchCatalog ( ComposablePartCatalog composablePartCatalog ) : System.Threading.Tasks.Task
composablePartCatalog ComposablePartCatalog
return System.Threading.Tasks.Task
        public static async Task TouchCatalog(ComposablePartCatalog composablePartCatalog)
        {
            var aggregate = composablePartCatalog as AggregateCatalog;
            if (aggregate != null)
            {
                //foreach (var catalog in aggregate.Catalogs)
                //{
                //    TouchCatalog(catalog);
                //}

                var actionList = new List<Task>();
                foreach (var item in aggregate.Catalogs)
                {
                    actionList.Add(TouchCatalog(item));
                }

                await Task.WhenAll(actionList.ToArray());
            }
            else
            {
                var metadataAssemblyCatalog = composablePartCatalog as MetadataAssemblyCatalog;
                if (metadataAssemblyCatalog != null)
                {
                    await metadataAssemblyCatalog.Realize();
                }

                foreach (var part in composablePartCatalog.Parts)
                {
                    TouchPart(part);
                }
            }
        }