コード例 #1
0
        private static ContainerConfig GetContainerConfig(string configurationFilePath)
        {
            if (_config != null) return _config;

            try
            {
                _config = File.Exists(configurationFilePath)
                    ? JsonConvert.DeserializeObject<ContainerConfig>(File.ReadAllText(configurationFilePath)).Verify()
                    : new ContainerConfig();
            }
            catch
            {
                _log.Warn($"Error reading container configuration file: {configurationFilePath}");
                _config = new ContainerConfig();
            }

            return _config;
        }
コード例 #2
0
        /// <summary>
        /// Creates a composition container using the specified catalog.
        /// </summary>
        /// <param name="catalog">The catalog.</param>
        /// <param name="assemblyPath">The assembly path.</param>
        /// <returns>A composition container instance.</returns>
        public static IContainer Create(ComposablePartCatalog catalog, string assemblyPath = null)
        {
            ContainerConfig configuration = null;

            if (!string.IsNullOrWhiteSpace(assemblyPath))
            {
                var fullPath          = Path.Combine(assemblyPath, ConfigurationPath, ContainerConfigurationFileName);
                var configuredCatalog = new ConfiguredCatalog(catalog, fullPath);

                catalog       = configuredCatalog;
                configuration = configuredCatalog.Configuration;
            }

            var container = new CompositionContainer(catalog, true);
            var instance  = new Container(container, configuration);

            container.ComposeExportedValue <IContainer>(instance);

            return(instance);
        }
コード例 #3
0
 /// <summary>
 /// Initializes a new instance of the <see cref="Container"/> class.
 /// </summary>
 /// <param name="container">The container.</param>
 /// <param name="configuration">The container configuration.</param>
 internal Container(CompositionContainer container, ContainerConfig configuration = null)
 {
     _container    = container;
     Configuration = configuration ?? new ContainerConfig();
 }