/// <summary> /// Load the composite http service list. /// </summary> /// <param name="create">Create the composition collection or release.</param> public void Compose(bool create = true) { if (create) { // Read from the configuration file // all the directories that contain // any composite services. Nequeo.Composite.Configuration.Reader reader = new Nequeo.Composite.Configuration.Reader(); string[] paths = reader.GetServicePaths(); AggregateCatalog catalog = new AggregateCatalog(); // For each directory found search for composite server assemplies // and add the reference of the assemblies into the handler collection foreach (string path in paths) { catalog.Catalogs.Add(new DirectoryCatalog(path, "*HttpService.dll")); } // Add the collection catalog to the composite container _container = new CompositionContainer(catalog); _container.ComposeParts(this); } else { // Release the exported composite services. _container.ReleaseExports <IHttpServerContext, IContentMetadata>(HttpServerContext); _container.Dispose(); // Release the handle. HttpServerContext = null; } }
/// <summary> /// Compose the MEF instance. /// </summary> internal virtual void Compose() { // Read from the configuration file // all the directories that contain // any composite services. Nequeo.Composite.Configuration.Reader reader = new Nequeo.Composite.Configuration.Reader(); string[] paths = reader.GetServicePaths(); AggregateCatalog catalog = new AggregateCatalog(); // For each directory found search for composite server assemplies // and add the reference of the assemblies into the handler collection foreach (string path in paths) { catalog.Catalogs.Add(new DirectoryCatalog(path, "*MessageCompositionAssembly.dll")); } // Add the collection catalog to the composite container var container = new CompositionContainer(catalog); container.ComposeParts(this); }