internal static string ConstructorResolutionBehaviorReturnedNull(
     IConstructorResolutionBehavior selectionBehavior, Type serviceType, Type implementationType) => 
     string.Format(CultureInfo.InvariantCulture,
         "The {0} that was registered through Container.{5}.{6} returned a null reference after " +
         "its {7}(Type, Type) method was supplied with values '{1}' for serviceType and '{2}' for " +
         "implementationType. {3}.{7} implementations should never return null, but should throw " +
         "a {4} with an expressive message instead.",
         selectionBehavior.GetType().ToFriendlyName(),
         serviceType.ToFriendlyName(),
         implementationType.ToFriendlyName(),
         nameof(IConstructorResolutionBehavior),
         typeof(ActivationException).FullName,
         nameof(Container.Options),
         nameof(ContainerOptions.ConstructorResolutionBehavior),
         nameof(IConstructorResolutionBehavior.GetConstructor));
        internal ContainerOptions(Container container)
        {
            Requires.IsNotNull(container, nameof(container));

            this.Container = container;
            this.resolutionBehavior = new DefaultConstructorResolutionBehavior();
            this.injectionBehavior = new DefaultDependencyInjectionBehavior(container);
            this.propertyBehavior = new DefaultPropertySelectionBehavior();
            this.lifestyleBehavior = new DefaultLifestyleSelectionBehavior(Lifestyle.Transient);
        }
 /// <summary>
 ///   Initializes a new instance of the <see cref="SimpleInjectorContainerResolutionBehavior" /> class.
 /// </summary>
 /// <param name="originalBehavior">The original behavior.</param>
 public SimpleInjectorContainerResolutionBehavior(IConstructorResolutionBehavior originalBehavior)
 {
     _originalBehavior = originalBehavior;
 }
 public T4MvcControllerConstructorResolutionBehavior(IConstructorResolutionBehavior defaultBehavior)
 {
     _defaultBehavior = defaultBehavior;
 }