protected virtual CompositionContainer CreateCompositionContainer(IEnumerable <ComposablePartCatalog> catalogItems = default(IEnumerable <ComposablePartCatalog>)) { var catalog = new AggregateCatalog(); if (catalogItems != default(IEnumerable <ComposablePartCatalog>)) { catalogItems.ForEach(item => { catalog.Catalogs.Add(item); }); } catalog.Catalogs.Add(new AssemblyCatalog(Assembly.GetExecutingAssembly())); string binPath = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "bin"); if (!Directory.Exists(binPath)) { Directory.CreateDirectory(binPath); } catalog.Catalogs.Add(new DirectoryCatalog(binPath)); string basePath = AppDomain.CurrentDomain.BaseDirectory; basePath = basePath.Remove(basePath.Length - 1, 1); catalog.Catalogs.Add(new DirectoryCatalog(basePath)); //catalog.Catalogs.Add(new DirectoryCatalog(System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Comp"))); //var config = CompositionConfigurationSection.GetInstance(); //if (config != null && config.Catalogs != null) //{ // config.Catalogs // .Cast<CatalogConfigurationElement>() // .ForEach(c => // { // if (!string.IsNullOrEmpty(c.Path)) // { // string path = c.Path; // if (path.StartsWith("~")) // path = MapPath(path); // foreach (var directoryCatalog in GetDirectoryCatalogs(path)) // { // // Register our path for probing. // RegisterPath(directoryCatalog.FullPath); // // Add the catalog. // catalog.Catalogs.Add(directoryCatalog); // } // } // }); //} var provider = new DynamicInstantiationExportProvider(); var container = new CompositionContainer(catalog, provider); provider.SourceProvider = container; return(container); }
protected virtual CompositionContainer CreateCompositionContainer(IEnumerable<ComposablePartCatalog> catalogItems = default (IEnumerable<ComposablePartCatalog>)) { var catalog = new AggregateCatalog(); if (catalogItems != default(IEnumerable<ComposablePartCatalog>)) { catalogItems.ForEach(item => { catalog.Catalogs.Add(item); }); } catalog.Catalogs.Add(new AssemblyCatalog(Assembly.GetExecutingAssembly())); string binPath = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "bin"); if (!Directory.Exists(binPath)) { Directory.CreateDirectory(binPath); } catalog.Catalogs.Add(new DirectoryCatalog(binPath)); string basePath = AppDomain.CurrentDomain.BaseDirectory; basePath = basePath.Remove(basePath.Length - 1, 1); catalog.Catalogs.Add(new DirectoryCatalog(basePath)); //catalog.Catalogs.Add(new DirectoryCatalog(System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Comp"))); //var config = CompositionConfigurationSection.GetInstance(); //if (config != null && config.Catalogs != null) //{ // config.Catalogs // .Cast<CatalogConfigurationElement>() // .ForEach(c => // { // if (!string.IsNullOrEmpty(c.Path)) // { // string path = c.Path; // if (path.StartsWith("~")) // path = MapPath(path); // foreach (var directoryCatalog in GetDirectoryCatalogs(path)) // { // // Register our path for probing. // RegisterPath(directoryCatalog.FullPath); // // Add the catalog. // catalog.Catalogs.Add(directoryCatalog); // } // } // }); //} var provider = new DynamicInstantiationExportProvider(); var container = new CompositionContainer(catalog, provider); provider.SourceProvider = container; return container; }