private static void AddPrefixInternal(string p, HttpListener listener)
        {
            ListenerPrefix listenerPrefix = new ListenerPrefix(p);

            if (listenerPrefix.Path.IndexOf('%') != -1)
            {
                throw new HttpListenerException(400, "Invalid path.");
            }
            if (listenerPrefix.Path.IndexOf("//") != -1)
            {
                throw new HttpListenerException(400, "Invalid path.");
            }
            EndPointListener eplistener = EndPointManager.GetEPListener(IPAddress.Any, listenerPrefix.Port, listener, listenerPrefix.Secure);

            eplistener.AddPrefix(listenerPrefix, listener);
        }
        private static void RemovePrefixInternal(string prefix, HttpListener listener)
        {
            ListenerPrefix listenerPrefix = new ListenerPrefix(prefix);

            if (listenerPrefix.Path.IndexOf('%') != -1)
            {
                return;
            }
            if (listenerPrefix.Path.IndexOf("//") != -1)
            {
                return;
            }
            EndPointListener eplistener = EndPointManager.GetEPListener(IPAddress.Any, listenerPrefix.Port, listener, listenerPrefix.Secure);

            eplistener.RemovePrefix(listenerPrefix, listener);
        }