/// <summary>
        /// Builds the step.
        /// </summary>
        /// <returns>the built step</returns>
        public IStep Build()
        {
            var injectionMembers = InjectionMembers.Concat(GetAdditionalInjectionMembers()).ToArray();

            Container.RegisterType(typeof(IStep), Type, Name, new ContainerControlledLifetimeManager(), injectionMembers);
            return(Container.Resolve <IStep>(Name));
        }
Beispiel #2
0
 public ExplicitRegistration(UnityContainer owner, string?name, Type?type, LifetimeManager lifetimeManager)
     : base(owner, name)
 {
     Next             = null;
     Type             = type;
     LifetimeManager  = lifetimeManager;
     InjectionMembers = null;
     BuildRequired    = null != InjectionMembers && InjectionMembers.Any(m => m.BuildRequired);
 }
Beispiel #3
0
 public ImplicitRegistration(UnityContainer owner, string?name, ImplicitRegistration factory)
     : base(owner)
 {
     Name             = name;
     BuildType        = factory.BuildType;
     Next             = factory.Next;
     LifetimeManager  = factory.LifetimeManager?.CreateLifetimePolicy() ?? new TransientLifetimeManager();
     InjectionMembers = factory.InjectionMembers;
     BuildRequired    = null != InjectionMembers && InjectionMembers.Any(m => m.BuildRequired);
 }
Beispiel #4
0
 public ExplicitRegistration(UnityContainer owner, string?name, Type?type, LifetimeManager lifetimeManager, params InjectionMember[] injectionMembers)
     : base(owner, name)
 {
     Type             = type;
     LifetimeManager  = lifetimeManager;
     Next             = owner.Defaults;
     InjectionMembers = null != injectionMembers && 0 < injectionMembers.Length ? injectionMembers : null;
     BuildRequired    = null != InjectionMembers && InjectionMembers.Any(m => m.BuildRequired) || lifetimeManager is PerResolveLifetimeManager;
     BuildType        = GetTypeConverter();
 }
Beispiel #5
0
        public ExplicitRegistration(UnityContainer owner, string?name, Type?type, LifetimeManager lifetimeManager)
            : base(owner, name, lifetimeManager)
        {
            Next             = null;
            Type             = type;
            InjectionMembers = null;
            BuildRequired    = null != InjectionMembers && InjectionMembers.Any(m => m.BuildRequired);

            if (lifetimeManager is ContainerControlledLifetimeManager manager)
            {
                manager.Scope = owner.Context;
            }
        }