/// <summary> /// When overridden in a derived class, this method should reconfigure the container /// with the provided <paramref name="updatedRegistrations"/>. /// </summary> /// <param name="updatedRegistrations">The new type registrations to apply to the container.</param> protected override void RegisterUpdates(IEnumerable <TypeRegistration> updatedRegistrations) { EnterWriteLock(); try { foreach (TypeRegistration updatedRegistration in updatedRegistrations) { PolicyListAccessor policyListAccessor = this.container.Configure <PolicyListAccessor>(); policyListAccessor.ResetRegistration(updatedRegistration.ServiceType, updatedRegistration.ImplementationType, updatedRegistration.Name); if (ShouldReRegister(updatedRegistration)) { Register(updatedRegistration); } else if (updatedRegistration.IsDefault) { FixupDefaultRegistration(updatedRegistration); } } } finally { ExitWriteLock(); } }
public override void AddPolicies(Type serviceType, Type typeToCreate, string name, IPolicyList policies) { PolicyListAccessor.AddDefaultPolicy(ServiceType, typeToCreate, name, policies); }