Catel.IoC.ServiceLocator.RemoveAllTypes C# (CSharp) Method

RemoveAllTypes() public method

Removes all registered types of a certain service type.
The is null.
public RemoveAllTypes ( Type serviceType ) : void
serviceType System.Type The type of the service.
return void
        public void RemoveAllTypes(Type serviceType)
        {
            Argument.IsNotNull("serviceType", serviceType);

            lock (_lockObject)
            {
                // Instances
                for (int i = _registeredInstances.Count - 1; i >= 0; i--)
                {
                    var serviceInfo = _registeredInstances.Keys.ElementAt(i);
                    if (serviceInfo.Type == serviceType)
                    {
                        _registeredInstances.Remove(serviceInfo);
                    }
                }

                // Registration
                for (int i = _registeredTypes.Count - 1; i >= 0; i--)
                {
                    var serviceInfo = _registeredTypes.Keys.ElementAt(i);
                    if (serviceInfo.Type == serviceType)
                    {
                        _registeredTypes.Remove(serviceInfo);
                    }
                }
            }
        }
        #endregion