/// <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();
 }
示例#2
0
 /// <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);
            }
        }
示例#4
0
 public void Clear(Type type, string name, Type policyInterface)
 {
     List.Clear(type, name, policyInterface);
 }
示例#5
0
 public static void Clear <TPolicyInterface>(this IPolicyList policies, object buildKey)
     where TPolicyInterface : IBuilderPolicy
 {
     Guard.ArgumentNotNull(policies, "policies");
     policies.Clear(typeof(TPolicyInterface), buildKey);
 }
示例#6
0
 /// <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);
 }