<PackageReference Include="Castle.Windsor" Version="5.1.1" />

Castle.MicroKernel.SubSystems.Naming.DefaultNamingSubSystem

namespace Castle.MicroKernel.SubSystems.Naming { public class DefaultNamingSubSystem : AbstractSubSystem, INamingSubSystem, ISubSystem { protected struct HandlerWithPriority { public IHandler Handler { get; } public HandlerWithPriority(int priority, IHandler handler); public bool Triumphs(HandlerWithPriority other); } protected readonly Lock lock; protected readonly Dictionary<string, IHandler> name2Handler; protected readonly Dictionary<Type, HandlerWithPriority> service2Handler; protected IList<IHandlersFilter> filters; protected IList<IHandlerSelector> selectors; protected readonly IDictionary<Type, IHandler[]> handlerListsByTypeCache; public virtual int ComponentCount { get; } protected IDictionary<string, IHandler> HandlerByNameCache { get; } protected IDictionary<Type, IHandler> HandlerByServiceCache { get; } public void AddHandlerSelector(IHandlerSelector selector); public void AddHandlersFilter(IHandlersFilter filter); public virtual bool Contains(string name); public virtual bool Contains(Type service); public virtual IHandler[] GetAllHandlers(); public virtual IHandler[] GetAssignableHandlers(Type service); public virtual IHandler GetHandler(string name); public virtual IHandler GetHandler(Type service); public virtual IHandler[] GetHandlers(Type service); public virtual void Register(IHandler handler); protected IHandler[] GetAssignableHandlersNoFiltering(Type service); protected virtual IHandler[] GetFiltersOpinion(Type service); protected virtual IHandler GetSelectorsOpinion(string name, Type type); protected void InvalidateCache(); public DefaultNamingSubSystem(); } }