Beispiel #1
0
        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));
        }
Beispiel #2
0
 /// <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;
        }
Beispiel #4
0
        /// <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);
            }
        }
Beispiel #5
0
        /// <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);
            }
        }
Beispiel #6
0
 /// <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);
 }