/// <summary> /// Remove the currently tracked resolvers from the given policy list. /// </summary> /// <param name="policies">Policy list to remove the resolvers from.</param> public void RemoveResolvers(IPolicyList policies) { foreach(object key in keys) { policies.Clear<IDependencyResolverPolicy>(key); } keys.Clear(); }
/// <summary> /// Add policies to the <paramref name="policies"/> to configure the container to use the represented /// <see cref="IInterceptor"/> for the supplied parameters. /// </summary> /// <param name="serviceType">Interface being registered.</param> /// <param name="implementationType">Type to register.</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 key = new NamedTypeBuildKey(implementationType, name); if(IsInstanceInterceptor) { var policy = CreateInstanceInterceptionPolicy(); policies.Set<IInstanceInterceptionPolicy>(policy, key); policies.Clear<ITypeInterceptionPolicy>(key); } else { var policy = CreateTypeInterceptionPolicy(); policies.Set<ITypeInterceptionPolicy>(policy, key); policies.Clear<IInstanceInterceptionPolicy>(key); } }
/// <summary> /// Remove the currently tracked resolvers from the given policy list. /// </summary> /// <param name="policies">Policy list to remove the resolvers from.</param> public void RemoveResolvers(IPolicyList policies) { var allKeys = new List<object>(); lock (this.keys) { allKeys.AddRange(this.keys); keys.Clear(); } foreach (object key in allKeys) { policies.Clear<IDependencyResolverPolicy>(key); } }
public void Clear(Type type, string name, Type policyInterface) { List.Clear(type, name, policyInterface); }
public static void Clear <TPolicyInterface>(this IPolicyList policies, object buildKey) where TPolicyInterface : IBuilderPolicy { Guard.ArgumentNotNull(policies, "policies"); policies.Clear(typeof(TPolicyInterface), buildKey); }
/// <summary> /// Removes an individual policy type for a build key. /// </summary> /// <typeparam name="TPolicyInterface">The type the policy was registered as.</typeparam> /// <param name="policies"><see cref="IPolicyList"/> to remove the policy from.</param> /// <param name="buildKey">The key the policy applies.</param> public static void Clear <TPolicyInterface>(this IPolicyList policies, object buildKey) where TPolicyInterface : IBuilderPolicy { policies.Clear(typeof(TPolicyInterface), buildKey); }