Exemple #1
0
        private IHandler[] GetHandlersNoLock(Type service)
        {
            //we have 3 segments
            const int defaults  = 0;
            const int regulars  = 1;
            const int fallbacks = 2;
            var       handlers  = new SegmentedList <IHandler>(3);

            foreach (var handler in name2Handler.Values)
            {
                if (handler.Supports(service) == false)
                {
                    continue;
                }
                if (IsDefault(handler, service))
                {
                    handlers.AddFirst(defaults, handler);
                    continue;
                }
                if (IsFallback(handler, service))
                {
                    handlers.AddLast(fallbacks, handler);
                    continue;
                }
                handlers.AddLast(regulars, handler);
            }
            return(handlers.ToArray());
        }
		private IHandler[] GetHandlersNoLock(Type service)
		{
			//we have 3 segments
			const int defaults = 0;
			const int regulars = 1;
			const int fallbacks = 2;
			var handlers = new SegmentedList<IHandler>(3);
			foreach (var handler in name2Handler.Values)
			{
				if (handler.Supports(service) == false)
				{
					continue;
				}
				if (IsDefault(handler, service))
				{
					handlers.AddFirst(defaults, handler);
					continue;
				}
				if (IsFallback(handler, service))
				{
					handlers.AddLast(fallbacks, handler);
					continue;
				}
				handlers.AddLast(regulars, handler);
			}
			return handlers.ToArray();
		}