/// <summary> /// Initializes a new instance of the <see cref="ContextFactoryConfiguration"/> class. /// </summary> /// <param name="contextProviderFactory"> /// The context provider factory. /// </param> /// <param name="currentContextHolder"> /// The current Context Holder. /// </param> public ContextFactoryConfiguration(IContextProviderFactory contextProviderFactory, ICurrentContextHolder currentContextHolder) { contextProviderFactory.ThrowIfNull("contextProviderFactory"); currentContextHolder.ThrowIfNull("currentContextHolder"); this.contextProviderFactory = contextProviderFactory; this.currentContextHolder = currentContextHolder; }
/// <summary> /// Starts the context factory. Must be called prior to anything. /// </summary> /// <param name="configuration"> /// The configuration. /// </param> /// <returns> /// The <see cref="IContextFactory"/>. /// </returns> public static IContextFactory Start(ContextFactoryConfiguration configuration) { if (configuration == null) { throw new ArgumentNullException("configuration"); } if (currentContextFactory != null) { Log.Warn(Resources.DiscardingCurrentContextFactory); currentContextFactory.Dispose(); } currentContextHolder = configuration.CurrentContextHolder; currentContextFactory = new ContextFactoryImpl(configuration); currentContextFactory.Start(); return currentContextFactory; }