/// <summary> /// Add policies to the <paramref name="policies"/> to configure the /// container to call this constructor with the appropriate parameter values. /// </summary> /// <param name="serviceType">Type of interface being registered. If no interface, /// this will be null. This parameter is ignored in this implementation.</param> /// <param name="implementationType">Type of concrete type being registered.</param> /// <param name="name">Name used to resolve the type object.</param> /// <param name="policies">Policy list to add policies to.</param> public override void AddPolicies(Type serviceType, Type implementationType, string name, IPolicyList policies) { var policy = new FactoryDelegateBuildPlanPolicy(factoryFunc); (policies ?? throw new ArgumentNullException(nameof(policies))).Set <IBuildPlanPolicy>(policy, new NamedTypeBuildKey(implementationType ?? throw new ArgumentNullException(nameof(implementationType)), name)); }
/// <summary> /// Add policies to the <paramref name="policies"/> to configure the /// container to call this constructor with the appropriate parameter values. /// </summary> /// <param name="serviceType">Type of interface being registered. If no interface, /// this will be null. This parameter is ignored in this implementation.</param> /// <param name="implementationType">Type of concrete type being registered.</param> /// <param name="name">Name used to resolve the type object.</param> /// <param name="policies">Policy list to add policies to.</param> public override void AddPolicies(Type serviceType, Type implementationType, string name, IPolicyList policies) { Guard.ArgumentNotNull(implementationType, "implementationType"); Guard.ArgumentNotNull(policies, "policies"); var policy = new FactoryDelegateBuildPlanPolicy(this.factoryFunc); policies.Set <IBuildPlanPolicy>(policy, new NamedTypeBuildKey(implementationType, name)); }