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();
}
}