internal bool TryGetStreamHandler (string handlerKey, out IStreamedRequestHandler streamHandler)
{
string bestMatch = null;
lock (m_streamHandlers)
{
if (m_streamHandlers.TryGetValue (handlerKey, out streamHandler))
return true;
foreach (string pattern in m_streamHandlers.Keys)
{
if (handlerKey.StartsWith (pattern, StringComparison.Ordinal))
{
if (string.IsNullOrEmpty (bestMatch) || pattern.Length > bestMatch.Length)
{
bestMatch = pattern;
}
}
}
if (string.IsNullOrEmpty (bestMatch))
{
streamHandler = null;
return false;
}
streamHandler = m_streamHandlers [bestMatch];
return true;
}
}