/// <summary>
        /// Returns the descriptor for accepting a type based on a condition.
        /// </summary>
        /// <param name="accepted">The accepting condition.</param>
        /// <returns>The descriptor for the type.</returns>
        public BasedOnDescriptor Where(Predicate <Type> accepted)
        {
            var descriptor = new BasedOnDescriptor(typeof(object), this).If(accepted);

            criterias.Add(descriptor);
            return(descriptor);
        }
Example #2
0
        /// <summary>
        ///   Returns the descriptor for accepting a type.
        /// </summary>
        /// <param name = "basedOn"> One or more base types. To be accepted a type must implement at least one of the given base types. </param>
        /// <returns> The descriptor for the type. </returns>
        public BasedOnDescriptor BasedOn(IEnumerable <Type> basedOn)
        {
            var descriptor = new BasedOnDescriptor(basedOn, this, additionalFilters);

            Criterias.Add(descriptor);
            return(descriptor);
        }
        /// <summary>
        /// Returns the descriptor for accepting a type.
        /// </summary>
        /// <param name="basedOn">The base type.</param>
        /// <returns>The descriptor for the type.</returns>
        public BasedOnDescriptor BasedOn(Type basedOn)
        {
            var descriptor = new BasedOnDescriptor(basedOn, this);

            criterias.Add(descriptor);
            return(descriptor);
        }
Example #4
0
 /// <summary>
 ///  Initializes a new instance of the ConfigureDescriptor.
 /// </summary>
 /// <param name="basedOn">The <see cref="BasedOnDescriptor"/></param>
 ///	<param name="baseType">The base type to match.</param>
 /// <param name="configurer">The configuration action.</param>
 public ConfigureDescriptor(BasedOnDescriptor basedOn, Type baseType,
                            Action <ComponentRegistration> configurer)
 {
     this.basedOn    = basedOn;
     this.baseType   = baseType;
     this.configurer = configurer;
 }
Example #5
0
        /// <summary>
        ///   Returns the descriptor for accepting a type based on a condition.
        /// </summary>
        /// <param name = "accepted"> The accepting condition. </param>
        /// <returns> The descriptor for the type. </returns>
        public BasedOnDescriptor Where(Predicate <Type> accepted)
        {
            var descriptor = new BasedOnDescriptor(new[] { typeof(object) }, this, additionalFilters).If(accepted);

            Criterias.Add(descriptor);
            return(descriptor);
        }
Example #6
0
        public static DecorationRegistration <BasedOnDescriptor> Decorated(this BasedOnDescriptor extended)
        {
            DecoratorApplier decoratorApplier = new DecoratorApplier();
            var decorationRegistration        = new DecorationRegistration <BasedOnDescriptor>(extended, decoratorApplier);

            extended.Configure(registration => registration.GetResolveExtensions().Add(decoratorApplier));

            return(decorationRegistration);
        }
        private static BasedOnDescriptor ApplyLifecycle(BasedOnDescriptor registration, Lifecycle lifecycle)
        {
            if (lifecycle.Name == Lifecycle.Singleton.Name)
                return registration.LifestyleSingleton();

            if (lifecycle.Name == Lifecycle.Transient.Name)
                return registration.LifestyleTransient();

            if (lifecycle.Name == Lifecycle.PerWebRequest.Name)
                return registration.LifestylePerWebRequest();

            if (lifecycle.Name == Lifecycle.Unmanaged.Name)
                return registration.LifestyleCustom<UnmanagedLifestyleManager>();

            if (lifecycle.Name == Lifecycle.Default.Name)
                return registration.LifestyleSingleton();

            if (lifecycle.Name == Lifecycle.ProviderDefault.Name)
                return registration;

            throw new ArgumentException(string.Format("Unknown Lifecycle : {0}", lifecycle), "lifecycle");
        }
Example #8
0
		internal ServiceDescriptor(BasedOnDescriptor basedOnDescriptor)
		{
			this.basedOnDescriptor = basedOnDescriptor;
		}
Example #9
0
 internal ServiceDescriptor(BasedOnDescriptor basedOnDescriptor)
 {
     this.basedOnDescriptor = basedOnDescriptor;
 }
 public static BasedOnDescriptor LifestylePerWebRequest(this BasedOnDescriptor descriptor)
 {
     return(descriptor.Configure(c => c.LifestylePerWebRequest()));
 }
Example #11
0
		private BasedOnDescriptor InitializeLifeStyle(IClass component, BasedOnDescriptor componentFor)
		{
			switch (component.LifeStyle)
			{
				case (LifeStyle.Singleton):
					return componentFor.LifestyleSingleton();
				case (LifeStyle.Transient):
					return componentFor.LifestyleTransient();
				case (LifeStyle.WebRequest):
					return componentFor.LifestylePerWebRequest();
				case (LifeStyle.Pooled):
					return componentFor.LifestylePooled();
				default:
					throw new ContainerException("LifeStyle not allowed " + component.LifeStyle);
			}
		}
Example #12
0
 /// <summary>
 ///  Initializes a new instance of the ConfigureDescriptor.
 /// </summary>
 /// <param name="basedOn">The <see cref="BasedOnDescriptor"/></param>
 /// <param name="configurer">The configuration action.</param>
 public ConfigureDescriptor(BasedOnDescriptor basedOn,
                            Action <ComponentRegistration> configurer)
     : this(basedOn, null, configurer)
 {
 }