/// <summary> /// Initializes a new instance of the <see cref="TypeRegistration"/> class. /// </summary> /// <param name="instanceType">Type instance.</param> /// <param name="lifetime">Lifetime to consider for this type registration.</param> /// <param name="mode">Mode to use when searching for ctors.</param> /// <param name="registrationTypes">Registration types.</param> public TypeRegistration(Type instanceType, RegistrationLifetime lifetime, TypeResolutionMode mode, params Type[] registrationTypes) { InstanceType = instanceType ?? throw new ArgumentNullException(nameof(instanceType)); _abstractionTypes = registrationTypes?.ToList() ?? new List <Type>(); _abstractionTypes.Add(instanceType); Lifetime = lifetime; Mode = mode; }
/// <summary> /// Initializes a new instance of the <see cref="TypeRegistration"/> class. /// </summary> /// <param name="instanceType">Type instance.</param> /// <param name="forEverything">Flag that indicates if should register has everything possible.</param> /// <param name="lifetime">Lifetime to consider for this type registration.</param> /// <param name="mode">Mode to use when searching for ctors.</param> public TypeRegistration(Type instanceType, bool forEverything, RegistrationLifetime lifetime, TypeResolutionMode mode) { InstanceType = instanceType; if (forEverything) { _abstractionTypes.Add(instanceType); _abstractionTypes.AddRange(instanceType.GetInterfaces()); } Lifetime = lifetime; Mode = mode; }
/// <summary> /// Initializes a new <see cref="DefineTypeResolutionModeAttribute"/>. /// </summary> /// <param name="mode">Mode to use.</param> public DefineTypeResolutionModeAttribute( TypeResolutionMode mode) { Mode = mode; }
/// <summary> /// Initializes a new instance of the <see cref="TypeRegistration"/> class. /// </summary> /// <param name="forEverything">Flag that indicates if should register has everything possible.</param> /// <param name="lifetime">Lifetime to consider for this type registration.</param> /// <param name="mode">Mode to use when searching for ctors.</param> public TypeRegistration(bool forEverything, RegistrationLifetime lifetime, TypeResolutionMode mode) : base(typeof(T), forEverything, lifetime, mode) { }
/// <summary> /// Initializes a new instance of the <see cref="TypeRegistration"/> class. /// </summary> /// <param name="registrationTypes">Registration types.</param> /// <param name="lifetime">Lifetime to consider for this type registration.</param> /// <param name="mode">Mode to use when searching for ctors.</param> public TypeRegistration(RegistrationLifetime lifetime, TypeResolutionMode mode, params Type[] registrationTypes) : base(typeof(T), lifetime, mode, registrationTypes) { }