public static TServiceType CreateObject <TServiceType>(IServiceProvider serviceProvider) { IBuilderConfigurator <BuilderStage> configurator = (IBuilderConfigurator <BuilderStage>)serviceProvider.GetService(typeof(IBuilderConfigurator <BuilderStage>)); Builder builder = (configurator == null) ? new Builder() : new Builder(configurator); return(builder.BuildUp <TServiceType>(new ServiceContainerLocator(serviceProvider), null, null)); }
/// <summary> /// Initializes a new instance of the <see cref="DependencyContainer"/> class. /// </summary> /// <param name="configurator">The container configurator.</param> public DependencyContainer(IBuilderConfigurator <BuilderStage> configurator) { builder = new BuilderBase <BuilderStage>(configurator); locator = new Locator(); lifetime = new LifetimeContainer(); locator.Add(typeof(ILifetimeContainer), lifetime); }
/// <summary> /// Initializes a new instance of the container using the specified configurator. /// </summary> /// <param name="configurator">The configurator that provides default /// strategies for the container.</param> public BuilderContainer(IBuilderConfigurator <BuilderStage> configurator) { Guard.ArgumentNotNull(configurator, "configurator"); lifetime = new LifetimeContainer(); locator = new Locator(); locator.Add(typeof(ILifetimeContainer), lifetime); builder = new BuilderBase <BuilderStage>(configurator); this.configurator = configurator; }
/// <summary> /// Initializes a new instance of the <see cref="WCSFBuilder"/> class using the provided /// configurator. /// </summary> /// <param name="configurator">The configurator that will configure the builder.</param> public WCSFBuilder(IBuilderConfigurator <WCSFBuilderStage> configurator) { Strategies.AddNew <TypeMappingStrategy>(WCSFBuilderStage.PreCreation); Strategies.AddNew <SimplifiedSingletonStrategy>(WCSFBuilderStage.PreCreation); Strategies.AddNew <BuildPlanStrategy>(WCSFBuilderStage.Creation); Strategies.AddNew <BuilderAwareStrategy>(WCSFBuilderStage.PostInitialization); Policies.SetDefault <ICreationPolicy>(new DefaultCreationPolicy()); Policies.SetDefault <IBuildPlanPolicy>(new BuildPlanPolicy()); Policies.SetDefault <IPlanBuilderPolicy>(CreatePlanBuilder()); if (configurator != null) { configurator.ApplyConfiguration(this); } }
/// <summary> /// Initializes a new instance of the <see cref="Builder"/> class using the provided /// configurator. /// </summary> /// <param name="configurator">The configurator that will configure the builder.</param> public Builder(IBuilderConfigurator <BuilderStage> configurator) { Strategies.AddNew <TypeMappingStrategy>(BuilderStage.PreCreation); Strategies.AddNew <SingletonStrategy>(BuilderStage.PreCreation); Strategies.AddNew <ConstructorReflectionStrategy>(BuilderStage.PreCreation); Strategies.AddNew <PropertyReflectionStrategy>(BuilderStage.PreCreation); Strategies.AddNew <MethodReflectionStrategy>(BuilderStage.PreCreation); Strategies.AddNew <CreationStrategy>(BuilderStage.Creation); Strategies.AddNew <PropertySetterStrategy>(BuilderStage.Initialization); Strategies.AddNew <MethodExecutionStrategy>(BuilderStage.Initialization); Strategies.AddNew <BuilderAwareStrategy>(BuilderStage.PostInitialization); Policies.SetDefault <ICreationPolicy>(new DefaultCreationPolicy()); if (configurator != null) { configurator.ApplyConfiguration(this); } }
/// <summary> /// Initializes a new instance of the <see cref="BuilderBase{T}"/> class using the /// provided configurator. /// </summary> /// <param name="configurator">The configurator that will configure the builder.</param> public BuilderBase(IBuilderConfigurator <TStageEnum> configurator) { configurator.ApplyConfiguration(this); }