EmbedIO.xml

<?xml version="1.0"?>
<doc>
    <assembly>
        <name>EmbedIO</name>
    </assembly>
    <members>
        <member name="T:EmbedIO.Actions.ActionModule">
            <summary>
            A module that passes requests to a callback.
            </summary>
            <seealso cref="T:EmbedIO.WebModuleBase" />
        </member>
        <member name="M:EmbedIO.Actions.ActionModule.#ctor(System.String,EmbedIO.HttpVerbs,EmbedIO.RequestHandlerCallback)">
            <summary>
            Initializes a new instance of the <see cref="T:EmbedIO.Actions.ActionModule" /> class.
            </summary>
            <param name="baseRoute">The base route.</param>
            <param name="verb">The HTTP verb that will be served by this module.</param>
            <param name="handler">The callback used to handle requests.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="handler"/> is <see langword="null"/>.</exception>
            <seealso cref="M:EmbedIO.WebModuleBase.#ctor(System.String)"/>
        </member>
        <member name="M:EmbedIO.Actions.ActionModule.#ctor(EmbedIO.RequestHandlerCallback)">
            <summary>
            Initializes a new instance of the <see cref="T:EmbedIO.Actions.ActionModule"/> class.
            </summary>
            <param name="handler">The handler.</param>
        </member>
        <member name="P:EmbedIO.Actions.ActionModule.IsFinalHandler">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.Actions.ActionModule.OnRequestAsync(EmbedIO.IHttpContext)">
            <inheritdoc />
        </member>
        <member name="T:EmbedIO.Actions.RedirectModule">
            <summary>
            A module that redirects requests.
            </summary>
            <seealso cref="T:EmbedIO.WebModuleBase" />
        </member>
        <member name="M:EmbedIO.Actions.RedirectModule.#ctor(System.String,System.String,System.Net.HttpStatusCode)">
            <summary>
            Initializes a new instance of the <see cref="T:EmbedIO.Actions.RedirectModule"/> class
            that will redirect all served requests.
            </summary>
            <param name="baseRoute">The base route.</param>
            <param name="redirectUrl">The redirect URL.</param>
            <param name="statusCode">The response status code; default is <c>302 - Found</c>.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="redirectUrl"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentException">
            <para><paramref name="redirectUrl"/> is not a valid URL.</para>
            <para>- or -</para>
            <para><paramref name="statusCode"/> is not a redirection (3xx) status code.</para>
            </exception>
            <seealso cref="M:EmbedIO.WebModuleBase.#ctor(System.String)"/>
        </member>
        <member name="M:EmbedIO.Actions.RedirectModule.#ctor(System.String,System.String,System.Func{EmbedIO.IHttpContext,System.Boolean},System.Net.HttpStatusCode)">
            <summary>
            Initializes a new instance of the <see cref="T:EmbedIO.Actions.RedirectModule"/> class
            that will redirect all requests for which the <paramref name="shouldRedirect"/> callback
            returns <see langword="true"/>.
            </summary>
            <param name="baseRoute">The base route.</param>
            <param name="redirectUrl">The redirect URL.</param>
            <param name="shouldRedirect">A callback function that returns <see langword="true"/>
            if a request must be redirected.</param>
            <param name="statusCode">The response status code; default is <c>302 - Found</c>.</param>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="redirectUrl"/> is <see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="shouldRedirect"/> is <see langword="null"/>.</para>
            </exception>
            <exception cref="T:System.ArgumentException">
            <para><paramref name="redirectUrl"/> is not a valid URL.</para>
            <para>- or -</para>
            <para><paramref name="statusCode"/> is not a redirection (3xx) status code.</para>
            </exception>
            <seealso cref="M:EmbedIO.WebModuleBase.#ctor(System.String)"/>
        </member>
        <member name="P:EmbedIO.Actions.RedirectModule.IsFinalHandler">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Actions.RedirectModule.RedirectUrl">
            <summary>
            Gets the redirect URL.
            </summary>
        </member>
        <member name="P:EmbedIO.Actions.RedirectModule.StatusCode">
            <summary>
            Gets the response status code.
            </summary>
        </member>
        <member name="M:EmbedIO.Actions.RedirectModule.OnRequestAsync(EmbedIO.IHttpContext)">
            <inheritdoc />
        </member>
        <member name="T:EmbedIO.Authentication.Auth">
            <summary>
            Provides useful authentication-related constants.
            </summary>
        </member>
        <member name="P:EmbedIO.Authentication.Auth.NoUser">
            <summary>
            Gets an <see cref="T:System.Security.Principal.IPrincipal"/> interface representing
            no user. To be used instead of <see langword="null"/>
            to initialize or set properties of type <see cref="T:System.Security.Principal.IPrincipal"/>.
            </summary>
        </member>
        <member name="M:EmbedIO.Authentication.Auth.CreateUnauthenticatedPrincipal(System.String)">
            <summary>
            Creates and returns an <see cref="T:System.Security.Principal.IPrincipal"/> interface
            representing an unauthenticated user, with the given
            authentication type.
            </summary>
            <param name="authenticationType">The type of authentication used to identify the user.</param>
            <returns>An <see cref="T:System.Security.Principal.IPrincipal"/> interface.</returns>
        </member>
        <member name="T:EmbedIO.Authentication.BasicAuthenticationModule">
            <summary>
            Simple HTTP basic authentication module that stores credentials
            in a <seealso cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/>.
            </summary>
        </member>
        <member name="M:EmbedIO.Authentication.BasicAuthenticationModule.#ctor(System.String,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:EmbedIO.Authentication.BasicAuthenticationModule"/> class.
            </summary>
            <param name="baseRoute">The base route.</param>
            <param name="realm">The authentication realm.</param>
            <remarks>
            <para>If <paramref name="realm"/> is <see langword="null"/> or the empty string,
            the <see cref="P:EmbedIO.Authentication.BasicAuthenticationModuleBase.Realm">Realm</see> property will be set equal to
            <see cref="P:EmbedIO.IWebModule.BaseRoute">BaseRoute</see>.</para>
            </remarks>
        </member>
        <member name="P:EmbedIO.Authentication.BasicAuthenticationModule.Accounts">
            <summary>
            Gets a dictionary of valid user names and passwords.
            </summary>
            <value>
            The accounts.
            </value>
        </member>
        <member name="M:EmbedIO.Authentication.BasicAuthenticationModule.VerifyCredentialsAsync(System.String,System.String,System.String,System.Threading.CancellationToken)">
            <inheritdoc />
        </member>
        <member name="T:EmbedIO.Authentication.BasicAuthenticationModuleBase">
            <summary>
            Implements <see href="https://tools.ietf.org/html/rfc7617">HTTP basic authentication</see>.
            </summary>
        </member>
        <member name="M:EmbedIO.Authentication.BasicAuthenticationModuleBase.#ctor(System.String,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:EmbedIO.Authentication.BasicAuthenticationModuleBase"/> class.
            </summary>
            <param name="baseRoute">The base URL path.</param>
            <param name="realm">The authentication realm.</param>
            <remarks>
            <para>If <paramref name="realm"/> is <see langword="null"/> or the empty string,
            the <see cref="P:EmbedIO.Authentication.BasicAuthenticationModuleBase.Realm"/> property will be set equal to
            <see cref="P:EmbedIO.IWebModule.BaseRoute">BaseRoute</see>.</para>
            </remarks>
        </member>
        <member name="P:EmbedIO.Authentication.BasicAuthenticationModuleBase.IsFinalHandler">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Authentication.BasicAuthenticationModuleBase.Realm">
            <summary>
            Gets the authentication realm.
            </summary>
        </member>
        <member name="M:EmbedIO.Authentication.BasicAuthenticationModuleBase.OnRequestAsync(EmbedIO.IHttpContext)">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.Authentication.BasicAuthenticationModuleBase.VerifyCredentialsAsync(System.String,System.String,System.String,System.Threading.CancellationToken)">
            <summary>
            Verifies the credentials given in the <c>Authentication</c> request header.
            </summary>
            <param name="path">The URL path requested by the client. Note that this is relative
            to the module's <see cref="P:EmbedIO.WebModuleBase.BaseRoute">BaseRoute</see>.</param>
            <param name="userName">The user name, or <see langword="null" /> if none has been given.</param>
            <param name="password">The password, or <see langword="null" /> if none has been given.</param>
            <param name="cancellationToken">A <see cref="T:System.Threading.CancellationToken" /> use to cancel the operation.</param>
            <returns>A <see cref="T:System.Threading.Tasks.Task`1"/> whose result will be <see langword="true" /> if the given credentials
            are valid, <see langword="false" /> if they are not.</returns>
        </member>
        <member name="T:EmbedIO.Authentication.BasicAuthenticationModuleExtensions">
            <summary>
            Provides extension methods for <see cref="T:EmbedIO.Authentication.BasicAuthenticationModule"/>.
            </summary>
        </member>
        <member name="M:EmbedIO.Authentication.BasicAuthenticationModuleExtensions.WithAccount(EmbedIO.Authentication.BasicAuthenticationModule,System.String,System.String)">
            <summary>
            Adds a username and password to the <see cref="P:EmbedIO.Authentication.BasicAuthenticationModule.Accounts">Accounts</see> dictionary.
            </summary>
            <param name="this">The <see cref="T:EmbedIO.Authentication.BasicAuthenticationModule"/> on which this method is called.</param>
            <param name="userName">The user name.</param>
            <param name="password">The password.</param>
            <returns><paramref name="this"/>, with the user name and password added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="userName"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.OverflowException">
            <para>The <see cref="P:EmbedIO.Authentication.BasicAuthenticationModule.Accounts">Accounts</see> dictionary already contains
            the maximum number of elements (<see cref="F:System.Int32.MaxValue">MaxValue</see>).</para>
            </exception>
            <remarks>
            <para>If a <paramref name="userName"/> account already exists,
            its password is replaced with <paramref name="password"/>.</para>
            </remarks>
        </member>
        <member name="T:EmbedIO.CompressionMethod">
            <summary>
            Specifies the compression method used to compress a message on
            the WebSocket connection.
            </summary>
            <remarks>
            The compression methods that can be used are defined in
            <see href="https://tools.ietf.org/html/rfc7692">
            Compression Extensions for WebSocket</see>.
            </remarks>
        </member>
        <member name="F:EmbedIO.CompressionMethod.None">
            <summary>
            Specifies no compression.
            </summary>
        </member>
        <member name="F:EmbedIO.CompressionMethod.Deflate">
            <summary>
            Specifies "Deflate" compression.
            </summary>
        </member>
        <member name="F:EmbedIO.CompressionMethod.Gzip">
            <summary>
            Specifies GZip compression.
            </summary>
        </member>
        <member name="T:EmbedIO.CompressionMethodNames">
            <summary>
            Exposes constants for possible values of the <c>Content-Encoding</c> HTTP header.
            </summary>
            <see cref="T:EmbedIO.CompressionMethod"/>
        </member>
        <member name="F:EmbedIO.CompressionMethodNames.None">
            <summary>
            Specifies no compression.
            </summary>
            <see cref="F:EmbedIO.CompressionMethod.None"/>
        </member>
        <member name="F:EmbedIO.CompressionMethodNames.Deflate">
            <summary>
            Specifies the "Deflate" compression method.
            </summary>
            <see cref="F:EmbedIO.CompressionMethod.Deflate"/>
        </member>
        <member name="F:EmbedIO.CompressionMethodNames.Gzip">
            <summary>
            Specifies the GZip compression method.
            </summary>
            <see cref="F:EmbedIO.CompressionMethod.Gzip"/>
        </member>
        <member name="T:EmbedIO.Cors.CorsModule">
            <summary>
            Cross-origin resource sharing (CORS) control Module.
            CORS is a mechanism that allows restricted resources (e.g. fonts)
            on a web page to be requested from another domain outside the domain from which the resource originated.
            </summary>
        </member>
        <member name="F:EmbedIO.Cors.CorsModule.All">
            <summary>
            A string meaning "All" in CORS headers.
            </summary>
        </member>
        <member name="M:EmbedIO.Cors.CorsModule.#ctor(System.String,System.String,System.String,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:EmbedIO.Cors.CorsModule" /> class.
            </summary>
            <param name="baseRoute">The base route.</param>
            <param name="origins">The valid origins. The default is <see cref="F:EmbedIO.Cors.CorsModule.All"/> (<c>*</c>).</param>
            <param name="headers">The valid headers. The default is <see cref="F:EmbedIO.Cors.CorsModule.All"/> (<c>*</c>).</param>
            <param name="methods">The valid methods. The default is <see cref="F:EmbedIO.Cors.CorsModule.All"/> (<c>*</c>).</param>
            <exception cref="T:System.ArgumentNullException">
            origins
            or
            headers
            or
            methods
            </exception>
        </member>
        <member name="P:EmbedIO.Cors.CorsModule.IsFinalHandler">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.Cors.CorsModule.OnRequestAsync(EmbedIO.IHttpContext)">
            <inheritdoc />
        </member>
        <member name="T:EmbedIO.EmbedIOInternalErrorException">
            <summary>
            <para>The exception that is thrown by EmbedIO's internal diagnostic checks to signal a condition
            most probably caused by an error in EmbedIO.</para>
            <para>This API supports the EmbedIO infrastructure and is not intended to be used directly from your code.</para>
            </summary>
        </member>
        <member name="M:EmbedIO.EmbedIOInternalErrorException.#ctor">
            <summary>
            <para>Initializes a new instance of the <see cref="T:EmbedIO.EmbedIOInternalErrorException"/> class.</para>
            <para>This API supports the EmbedIO infrastructure and is not intended to be used directly from your code.</para>
            </summary>
        </member>
        <member name="M:EmbedIO.EmbedIOInternalErrorException.#ctor(System.String)">
            <summary>
            <para>Initializes a new instance of the <see cref="T:EmbedIO.EmbedIOInternalErrorException"/> class.</para>
            <para>This API supports the EmbedIO infrastructure and is not intended to be used directly from your code.</para>
            </summary>
            <param name="message">The message that describes the error.</param>
        </member>
        <member name="M:EmbedIO.EmbedIOInternalErrorException.#ctor(System.String,System.Exception)">
            <summary>
            <para>Initializes a new instance of the <see cref="T:EmbedIO.EmbedIOInternalErrorException"/> class.</para>
            <para>This API supports the EmbedIO infrastructure and is not intended to be used directly from your code.</para>
            </summary>
            <param name="message">The error message that explains the reason for the exception.</param>
            <param name="innerException">The exception that is the cause of the current exception,
            or <see langword="null"/> if no inner exception is specified.</param>
        </member>
        <member name="M:EmbedIO.EmbedIOInternalErrorException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Initializes a new instance of the <see cref="T:EmbedIO.EmbedIOInternalErrorException"/> class.
            <para>This API supports the EmbedIO infrastructure and is not intended to be used directly from your code.</para>
            </summary>
            <param name="info">The <see cref="T:System.Runtime.Serialization.SerializationInfo"></see> that holds the serialized object data about the exception being thrown.</param>
            <param name="context">The <see cref="T:System.Runtime.Serialization.StreamingContext"></see> that contains contextual information about the source or destination.</param>
        </member>
        <member name="T:EmbedIO.ExceptionHandler">
            <summary>
            Provides standard handlers for unhandled exceptions at both module and server level.
            </summary>
            <seealso cref="P:EmbedIO.IWebServer.OnUnhandledException"/>
            <seealso cref="P:EmbedIO.IWebModule.OnUnhandledException"/>
        </member>
        <member name="F:EmbedIO.ExceptionHandler.ExceptionTypeHeaderName">
            <summary>
            The name of the response header used by the <see cref="M:EmbedIO.ExceptionHandler.EmptyResponseWithHeaders(EmbedIO.IHttpContext,System.Exception)" />
            handler to transmit the type of the exception to the client.
            </summary>
        </member>
        <member name="F:EmbedIO.ExceptionHandler.ExceptionMessageHeaderName">
            <summary>
            The name of the response header used by the <see cref="M:EmbedIO.ExceptionHandler.EmptyResponseWithHeaders(EmbedIO.IHttpContext,System.Exception)" />
            handler to transmit the message of the exception to the client.
            </summary>
        </member>
        <member name="P:EmbedIO.ExceptionHandler.ContactInformation">
            <summary>
            Gets or sets the contact information to include in exception responses.
            </summary>
        </member>
        <member name="P:EmbedIO.ExceptionHandler.IncludeStackTraces">
            <summary>
            Gets or sets a value indicating whether to include stack traces
            in exception responses.
            </summary>
        </member>
        <member name="P:EmbedIO.ExceptionHandler.Default">
            <summary>
            <para>Gets the default handler used by <see cref="T:EmbedIO.WebServerBase`1"/>.</para>
            <para>This is the same as <see cref="M:EmbedIO.ExceptionHandler.HtmlResponse(EmbedIO.IHttpContext,System.Exception)"/>.</para>
            </summary>
        </member>
        <member name="M:EmbedIO.ExceptionHandler.EmptyResponse(EmbedIO.IHttpContext,System.Exception)">
            <summary>
            Sends an empty <c>500 Internal Server Error</c> response.
            </summary>
            <param name="context">An <see cref="T:EmbedIO.IHttpContext" /> interface representing the context of the request.</param>
            <param name="exception">The unhandled exception.</param>
            <returns>A <see cref="T:System.Threading.Tasks.Task" /> representing the ongoing operation.</returns>
        </member>
        <member name="M:EmbedIO.ExceptionHandler.EmptyResponseWithHeaders(EmbedIO.IHttpContext,System.Exception)">
            <summary>
            <para>Sends an empty <c>500 Internal Server Error</c> response,
            with the following additional headers:</para>
            <list type="table">
              <listheader>
                <term>Header</term>
                <description>Value</description>
              </listheader>
              <item>
                <term><c>X-Exception-Type</c></term>
                <description>The name (without namespace) of the type of exception that was thrown.</description>
              </item>
              <item>
                <term><c>X-Exception-Message</c></term>
                <description>The <see cref="P:System.Exception.Message">Message</see> property of the exception.</description>
              </item>
            </list>
            <para>The aforementioned header names are available as the <see cref="F:EmbedIO.ExceptionHandler.ExceptionTypeHeaderName" /> and
            <see cref="F:EmbedIO.ExceptionHandler.ExceptionMessageHeaderName" /> properties, respectively.</para>
            </summary>
            <param name="context">An <see cref="T:EmbedIO.IHttpContext" /> interface representing the context of the request.</param>
            <param name="exception">The unhandled exception.</param>
            <returns>A <see cref="T:System.Threading.Tasks.Task" /> representing the ongoing operation.</returns>
        </member>
        <member name="M:EmbedIO.ExceptionHandler.HtmlResponse(EmbedIO.IHttpContext,System.Exception)">
            <summary>
            Sends a <c>500 Internal Server Error</c> response with a HTML payload
            briefly describing the error, including contact information and/or a stack trace
            if specified via the <see cref="P:EmbedIO.ExceptionHandler.ContactInformation"/> and <see cref="P:EmbedIO.ExceptionHandler.IncludeStackTraces"/>
            properties, respectively.
            </summary>
            <param name="context">An <see cref="T:EmbedIO.IHttpContext" /> interface representing the context of the request.</param>
            <param name="exception">The unhandled exception.</param>
            <returns>A <see cref="T:System.Threading.Tasks.Task" /> representing the ongoing operation.</returns>
        </member>
        <member name="T:EmbedIO.ExceptionHandlerCallback">
            <summary>
            A callback used to provide information about an unhandled exception occurred while processing a request.
            </summary>
            <param name="context">An <see cref="T:EmbedIO.IHttpContext" /> interface representing the context of the request.</param>
            <param name="exception">The unhandled exception.</param>
            <returns>A <see cref="T:System.Threading.Tasks.Task" /> representing the ongoing operation.</returns>
            <remarks>
            <para>When this delegate is called, the response's status code has already been set to
            <see cref="F:System.Net.HttpStatusCode.InternalServerError" />.</para>
            <para>Any exception thrown by a handler (even a HTTP exception) will go unhandled: the web server
            will not crash, but processing of the request will be aborted, and the response will be flushed as-is.
            In other words, it is not a good ides to <c>throw HttpException.NotFound()</c> (or similar)
            from a handler.</para>
            </remarks>
        </member>
        <member name="T:EmbedIO.Files.DirectoryLister">
            <summary>
            Provides standard directory listers for <see cref="T:EmbedIO.Files.FileModule"/>.
            </summary>
            <seealso cref="T:EmbedIO.Files.IDirectoryLister"/>
        </member>
        <member name="P:EmbedIO.Files.DirectoryLister.Html">
            <summary>
            <para>Gets an <see cref="T:EmbedIO.Files.IDirectoryLister"/> interface
            that produces a HTML listing of a directory.</para>
            <para>The output of the returned directory lister
            is the same as a directory listing obtained
            by EmbedIO version 2.</para>
            </summary>
        </member>
        <member name="T:EmbedIO.Files.FileCache">
            <summary>
            A cache where one or more instances of <see cref="T:EmbedIO.Files.FileModule"/> can store hashes and file contents.
            </summary>
        </member>
        <member name="F:EmbedIO.Files.FileCache.DefaultMaxSizeKb">
            <summary>
            The default value for the <see cref="P:EmbedIO.Files.FileCache.MaxSizeKb"/> property.
            </summary>
        </member>
        <member name="F:EmbedIO.Files.FileCache.DefaultMaxFileSizeKb">
            <summary>
            The default value for the <see cref="P:EmbedIO.Files.FileCache.MaxFileSizeKb"/> property.
            </summary>
        </member>
        <member name="P:EmbedIO.Files.FileCache.Default">
            <summary>
            Gets the default <see cref="T:EmbedIO.Files.FileCache"/> instance used by <see cref="T:EmbedIO.Files.FileModule"/>.
            </summary>
        </member>
        <member name="P:EmbedIO.Files.FileCache.MaxSizeKb">
            <summary>
            <para>Gets or sets the maximum total size of cached data in kilobytes (1 kilobyte = 1024 bytes).</para>
            <para>The default value for this property is stored in the <see cref="F:EmbedIO.Files.FileCache.DefaultMaxSizeKb"/> constant field.</para>
            <para>Setting this property to a value less lower han 1 has the same effect as setting it to 1.</para>
            </summary>
        </member>
        <member name="P:EmbedIO.Files.FileCache.MaxFileSizeKb">
            <summary>
            <para>Gets or sets the maximum size of a single cached file in kilobytes (1 kilobyte = 1024 bytes).</para>
            <para>A single file's contents may be present in a cache more than once, if the file
            is requested with different <c>Accept-Encoding</c> request headers. This property acts as a threshold
            for the uncompressed size of a file.</para>
            <para>The default value for this property is stored in the <see cref="F:EmbedIO.Files.FileCache.DefaultMaxFileSizeKb"/> constant field.</para>
            <para>Setting this property to a value lower than 0 has the same effect as setting it to 0, in fact
            completely disabling the caching of file contents for this cache.</para>
            <para>This property cannot be set to a value higher than 2097151; in other words, it is not possible
            to cache files bigger than two Gigabytes (1 Gigabyte = 1048576 kilobytes) minus 1 kilobyte.</para>
            </summary>
        </member>
        <member name="T:EmbedIO.Files.FileModule">
            <summary>
            A module serving files and directory listings from an <see cref="T:EmbedIO.Files.IFileProvider"/>.
            </summary>
            <seealso cref="T:EmbedIO.WebModuleBase" />
        </member>
        <member name="F:EmbedIO.Files.FileModule.DefaultDocumentName">
            <summary>
            <para>Default value for <see cref="P:EmbedIO.Files.FileModule.DefaultDocument"/>.</para>
            </summary>
        </member>
        <member name="M:EmbedIO.Files.FileModule.#ctor(System.String,EmbedIO.Files.IFileProvider)">
            <summary>
            Initializes a new instance of the <see cref="T:EmbedIO.Files.FileModule"/> class,
            using the specified cache.
            </summary>
            <param name="baseRoute">The base route.</param>
            <param name="provider">An <see cref="T:EmbedIO.Files.IFileProvider"/> interface that provides access
            to actual files and directories.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="provider"/> is <see langword="null"/>.</exception>
        </member>
        <member name="M:EmbedIO.Files.FileModule.Finalize">
            <summary>
            Finalizes an instance of the <see cref="T:EmbedIO.Files.FileModule"/> class.
            </summary>
        </member>
        <member name="P:EmbedIO.Files.FileModule.IsFinalHandler">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Files.FileModule.Provider">
            <summary>
            Gets the <see cref="T:EmbedIO.Files.IFileProvider"/>interface that provides access
            to actual files and directories served by this module.
            </summary>
        </member>
        <member name="P:EmbedIO.Files.FileModule.Cache">
            <summary>
            Gets or sets the <see cref="T:EmbedIO.Files.FileCache"/> used by this module to store hashes and,
            optionally, file contents and rendered directory listings.
            </summary>
            <exception cref="T:System.InvalidOperationException">The module's configuration is locked.</exception>
            <exception cref="T:System.ArgumentNullException">This property is being set to <see langword="null"/>.</exception>
        </member>
        <member name="P:EmbedIO.Files.FileModule.ContentCaching">
            <summary>
            <para>Gets or sets a value indicating whether this module caches the contents of files
            and directory listings.</para>
            <para>Note that the actual representations of files are stored in <see cref="T:EmbedIO.Files.FileCache"/>;
            thus, for example, if a file is always requested with an <c>Accept-Encoding</c> of <c>gzip</c>,
            only the gzipped contents of the file will be cached.</para>
            </summary>
            <exception cref="T:System.InvalidOperationException">The module's configuration is locked.</exception>
        </member>
        <member name="P:EmbedIO.Files.FileModule.DefaultDocument">
            <summary>
            <para>Gets or sets the name of the default document served, if it exists, instead of a directory listing
            when the path of a requested URL maps to a directory.</para>
            <para>The default value for this property is the <see cref="F:EmbedIO.Files.FileModule.DefaultDocumentName"/> constant.</para>
            </summary>
            <exception cref="T:System.InvalidOperationException">The module's configuration is locked.</exception>
        </member>
        <member name="P:EmbedIO.Files.FileModule.DefaultExtension">
            <summary>
            <para>Gets or sets the default extension appended to requested URL paths that do not map
            to any file or directory. Defaults to <see langword="null"/>.</para>
            </summary>
            <exception cref="T:System.InvalidOperationException">The module's configuration is locked.</exception>
            <exception cref="T:System.ArgumentException">This property is being set to a non-<see langword="null"/>,
            non-empty string that does not start with a period (<c>.</c>).</exception>
        </member>
        <member name="P:EmbedIO.Files.FileModule.DirectoryLister">
            <summary>
            <para>Gets or sets the <see cref="T:EmbedIO.Files.IDirectoryLister"/> interface used to generate
            directory listing in this module.</para>
            <para>A value of <see langword="null"/> (the default) disables the generation
            of directory listings.</para>
            </summary>
            <exception cref="T:System.InvalidOperationException">The module's configuration is locked.</exception>
        </member>
        <member name="P:EmbedIO.Files.FileModule.OnMappingFailed">
            <summary>
            <para>Gets or sets a <see cref="T:EmbedIO.Files.FileRequestHandlerCallback"/> that is called whenever
            the requested URL path could not be mapped to any file or directory.</para>
            <para>The default is <see cref="M:EmbedIO.Files.FileRequestHandler.ThrowNotFound(EmbedIO.IHttpContext,EmbedIO.Files.MappedResourceInfo)"/>.</para>
            </summary>
            <exception cref="T:System.InvalidOperationException">The module's configuration is locked.</exception>
            <exception cref="T:System.ArgumentNullException">This property is being set to <see langword="null"/>.</exception>
            <seealso cref="T:EmbedIO.Files.FileRequestHandler"/>
        </member>
        <member name="P:EmbedIO.Files.FileModule.OnDirectoryNotListable">
            <summary>
            <para>Gets or sets a <see cref="T:EmbedIO.Files.FileRequestHandlerCallback"/> that is called whenever
            the requested URL path has been mapped to a directory, but directory listing has been
            disabled by setting <see cref="P:EmbedIO.Files.FileModule.DirectoryLister"/> to <see langword="null"/>.</para>
            <para>The default is <see cref="M:EmbedIO.Files.FileRequestHandler.ThrowUnauthorized(EmbedIO.IHttpContext,EmbedIO.Files.MappedResourceInfo)"/>.</para>
            </summary>
            <exception cref="T:System.InvalidOperationException">The module's configuration is locked.</exception>
            <exception cref="T:System.ArgumentNullException">This property is being set to <see langword="null"/>.</exception>
            <seealso cref="T:EmbedIO.Files.FileRequestHandler"/>
        </member>
        <member name="P:EmbedIO.Files.FileModule.OnMethodNotAllowed">
            <summary>
            <para>Gets or sets a <see cref="T:EmbedIO.Files.FileRequestHandlerCallback"/> that is called whenever
            the requested URL path has been mapped to a file or directory, but the request's
            HTTP method is neither <c>GET</c> nor <c>HEAD</c>.</para>
            <para>The default is <see cref="M:EmbedIO.Files.FileRequestHandler.ThrowMethodNotAllowed(EmbedIO.IHttpContext,EmbedIO.Files.MappedResourceInfo)"/>.</para>
            </summary>
            <exception cref="T:System.InvalidOperationException">The module's configuration is locked.</exception>
            <exception cref="T:System.ArgumentNullException">This property is being set to <see langword="null"/>.</exception>
            <seealso cref="T:EmbedIO.Files.FileRequestHandler"/>
        </member>
        <member name="M:EmbedIO.Files.FileModule.Dispose">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.Files.FileModule.AddCustomMimeType(System.String,System.String)">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.Files.FileModule.PreferCompression(System.String,System.Boolean)">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.Files.FileModule.ClearCache">
            <summary>
            Clears the part of <see cref="P:EmbedIO.Files.FileModule.Cache"/> used by this module.
            </summary>
        </member>
        <member name="M:EmbedIO.Files.FileModule.Dispose(System.Boolean)">
            <summary>
            Releases unmanaged and - optionally - managed resources.
            </summary>
            <param name="disposing"><see langword="true"/> to release both managed and unmanaged resources;
            <see langword="false"/> to release only unmanaged resources.</param>
        </member>
        <member name="M:EmbedIO.Files.FileModule.OnBeforeLockConfiguration">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.Files.FileModule.OnStart(System.Threading.CancellationToken)">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.Files.FileModule.OnRequestAsync(EmbedIO.IHttpContext)">
            <inheritdoc />
        </member>
        <member name="T:EmbedIO.Files.FileModuleExtensions">
            <summary>
            Provides extension methods for <see cref="T:EmbedIO.Files.FileModule"/> and derived classes.
            </summary>
        </member>
        <member name="M:EmbedIO.Files.FileModuleExtensions.WithCache``1(``0,EmbedIO.Files.FileCache)">
            <summary>
            Sets the <see cref="T:EmbedIO.Files.FileCache"/> used by a module to store hashes and,
            optionally, file contents and rendered directory listings.
            </summary>
            <typeparam name="TModule">The type of the module on which this method is called.</typeparam>
            <param name="this">The module on which this method is called.</param>
            <param name="value">An instance of <see cref="T:EmbedIO.Files.FileCache"/>.</param>
            <returns><paramref name="this"/> with its <see cref="P:EmbedIO.Files.FileModule.Cache">Cache</see> property
            set to <paramref name="value"/>.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.InvalidOperationException">The configuration of <paramref name="this"/> is locked.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="value"/> is <see langword="null"/>.</exception>
            <seealso cref="P:EmbedIO.Files.FileModule.Cache"/>
        </member>
        <member name="M:EmbedIO.Files.FileModuleExtensions.WithContentCaching``1(``0,System.Boolean)">
            <summary>
            Sets a value indicating whether a module caches the contents of files
            and directory listings.
            </summary>
            <typeparam name="TModule">The type of the module on which this method is called.</typeparam>
            <param name="this">The module on which this method is called.</param>
            <param name="value"><see langword="true"/> to enable caching of contents;
            <see langword="false"/> to disable it.</param>
            <returns><paramref name="this"/> with its <see cref="P:EmbedIO.Files.FileModule.ContentCaching">ContentCaching</see> property
            set to <paramref name="value"/>.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.InvalidOperationException">The configuration of <paramref name="this"/> is locked.</exception>
            <seealso cref="P:EmbedIO.Files.FileModule.ContentCaching"/>
        </member>
        <member name="M:EmbedIO.Files.FileModuleExtensions.WithContentCaching``1(``0)">
            <summary>
            Enables caching of file contents and directory listings on a module.
            </summary>
            <typeparam name="TModule">The type of the module on which this method is called.</typeparam>
            <param name="this">The module on which this method is called.</param>
            <returns><paramref name="this"/> with its <see cref="P:EmbedIO.Files.FileModule.ContentCaching">ContentCaching</see> property
            set to <see langword="true"/>.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.InvalidOperationException">The configuration of <paramref name="this"/> is locked.</exception>
            <seealso cref="P:EmbedIO.Files.FileModule.ContentCaching"/>
        </member>
        <member name="M:EmbedIO.Files.FileModuleExtensions.WithContentCaching``1(``0,System.Int32,System.Int32)">
            <summary>
            Enables caching of file contents and directory listings on a module.
            </summary>
            <typeparam name="TModule">The type of the module on which this method is called.</typeparam>
            <param name="this">The module on which this method is called.</param>
            <param name="maxFileSizeKb"><see langword="true"/> sets the maximum size of a single cached file in kilobytes</param>
            <param name="maxSizeKb"><see langword="true"/> sets the maximum total size of cached data in kilobytes</param>
            <returns><paramref name="this"/> with its <see cref="P:EmbedIO.Files.FileModule.ContentCaching">ContentCaching</see> property
            set to <see langword="true"/>.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.InvalidOperationException">The configuration of <paramref name="this"/> is locked.</exception>
            <seealso cref="P:EmbedIO.Files.FileModule.ContentCaching"/>
        </member>
        <member name="M:EmbedIO.Files.FileModuleExtensions.WithoutContentCaching``1(``0)">
            <summary>
            Disables caching of file contents and directory listings on a module.
            </summary>
            <typeparam name="TModule">The type of the module on which this method is called.</typeparam>
            <param name="this">The module on which this method is called.</param>
            <returns><paramref name="this"/> with its <see cref="P:EmbedIO.Files.FileModule.ContentCaching">ContentCaching</see> property
            set to <see langword="false"/>.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.InvalidOperationException">The configuration of <paramref name="this"/> is locked.</exception>
            <seealso cref="P:EmbedIO.Files.FileModule.ContentCaching"/>
        </member>
        <member name="M:EmbedIO.Files.FileModuleExtensions.WithDefaultDocument``1(``0,System.String)">
            <summary>
            Sets the name of the default document served, if it exists, instead of a directory listing
            when the path of a requested URL maps to a directory.
            </summary>
            <typeparam name="TModule">The type of the module on which this method is called.</typeparam>
            <param name="this">The module on which this method is called.</param>
            <param name="value">The name of the default document.</param>
            <returns><paramref name="this"/> with its <see cref="P:EmbedIO.Files.FileModule.DefaultDocument">DefaultDocument</see> property
            set to <paramref name="value"/>.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.InvalidOperationException">The configuration of <paramref name="this"/> is locked.</exception>
            <seealso cref="P:EmbedIO.Files.FileModule.DefaultDocument"/>
        </member>
        <member name="M:EmbedIO.Files.FileModuleExtensions.WithoutDefaultDocument``1(``0)">
            <summary>
            Sets the name of the default document to <see langword="null"/>.
            </summary>
            <typeparam name="TModule">The type of the module on which this method is called.</typeparam>
            <param name="this">The module on which this method is called.</param>
            <returns><paramref name="this"/> with its <see cref="P:EmbedIO.Files.FileModule.DefaultDocument">DefaultDocument</see> property
            set to <see langword="null"/>.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.InvalidOperationException">The configuration of <paramref name="this"/> is locked.</exception>
            <seealso cref="P:EmbedIO.Files.FileModule.DefaultDocument"/>
        </member>
        <member name="M:EmbedIO.Files.FileModuleExtensions.WithDefaultExtension``1(``0,System.String)">
            <summary>
            Sets the default extension appended to requested URL paths that do not map
            to any file or directory.
            </summary>
            <typeparam name="TModule">The type of the module on which this method is called.</typeparam>
            <param name="this">The module on which this method is called.</param>
            <param name="value">The default extension.</param>
            <returns><paramref name="this"/> with its <see cref="P:EmbedIO.Files.FileModule.DefaultExtension">DefaultExtension</see> property
            set to <paramref name="value"/>.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.InvalidOperationException">The configuration of <paramref name="this"/> is locked.</exception>
            <exception cref="T:System.ArgumentException"><paramref name="value"/> is a non-<see langword="null"/>,
            non-empty string that does not start with a period (<c>.</c>).</exception>
            <seealso cref="P:EmbedIO.Files.FileModule.DefaultExtension"/>
        </member>
        <member name="M:EmbedIO.Files.FileModuleExtensions.WithoutDefaultExtension``1(``0)">
            <summary>
            Sets the default extension to <see langword="null"/>.
            </summary>
            <typeparam name="TModule">The type of the module on which this method is called.</typeparam>
            <param name="this">The module on which this method is called.</param>
            <returns><paramref name="this"/> with its <see cref="P:EmbedIO.Files.FileModule.DefaultExtension">DefaultExtension</see> property
            set to <see langword="null"/>.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.InvalidOperationException">The configuration of <paramref name="this"/> is locked.</exception>
            <seealso cref="P:EmbedIO.Files.FileModule.DefaultExtension"/>
        </member>
        <member name="M:EmbedIO.Files.FileModuleExtensions.WithDirectoryLister``1(``0,EmbedIO.Files.IDirectoryLister)">
            <summary>
            Sets the <see cref="T:EmbedIO.Files.IDirectoryLister"/> interface used to generate
            directory listing in a module.
            </summary>
            <typeparam name="TModule">The type of the module on which this method is called.</typeparam>
            <param name="this">The module on which this method is called.</param>
            <param name="value">An <see cref="T:EmbedIO.Files.IDirectoryLister"/> interface, or <see langword="null"/>
            to disable the generation of directory listings.</param>
            <returns><paramref name="this"/> with its <see cref="P:EmbedIO.Files.FileModule.DirectoryLister">DirectoryLister</see> property
            set to <paramref name="value"/>.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.InvalidOperationException">The configuration of <paramref name="this"/> is locked.</exception>
            <seealso cref="P:EmbedIO.Files.FileModule.DirectoryLister"/>
        </member>
        <member name="M:EmbedIO.Files.FileModuleExtensions.WithoutDirectoryLister``1(``0)">
            <summary>
            Sets a module's <see cref="P:EmbedIO.Files.FileModule.DirectoryLister">DirectoryLister</see> property
            to <see langword="null"/>, disabling the generation of directory listings.
            </summary>
            <typeparam name="TModule">The type of the module on which this method is called.</typeparam>
            <param name="this">The module on which this method is called.</param>
            <returns><paramref name="this"/> with its <see cref="P:EmbedIO.Files.FileModule.DirectoryLister">DirectoryLister</see> property
            set to <see langword="null"/>.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.InvalidOperationException">The configuration of <paramref name="this"/> is locked.</exception>
            <seealso cref="P:EmbedIO.Files.FileModule.DirectoryLister"/>
        </member>
        <member name="M:EmbedIO.Files.FileModuleExtensions.HandleMappingFailed``1(``0,EmbedIO.Files.FileRequestHandlerCallback)">
            <summary>
            Sets a <see cref="T:EmbedIO.Files.FileRequestHandlerCallback"/> that is called by a module whenever
            the requested URL path could not be mapped to any file or directory.
            </summary>
            <typeparam name="TModule">The type of the module on which this method is called.</typeparam>
            <param name="this">The module on which this method is called.</param>
            <param name="callback">The method to call.</param>
            <returns><paramref name="this"/> with its <see cref="P:EmbedIO.Files.FileModule.OnMappingFailed">OnMappingFailed</see> property
            set to <paramref name="callback"/>.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.InvalidOperationException">The configuration of <paramref name="this"/> is locked.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="callback"/> is <see langword="null"/>.</exception>
            <seealso cref="P:EmbedIO.Files.FileModule.OnMappingFailed"/>
            <seealso cref="T:EmbedIO.Files.FileRequestHandler"/>
        </member>
        <member name="M:EmbedIO.Files.FileModuleExtensions.HandleDirectoryNotListable``1(``0,EmbedIO.Files.FileRequestHandlerCallback)">
            <summary>
            Sets a <see cref="T:EmbedIO.Files.FileRequestHandlerCallback"/> that is called by a module whenever
            the requested URL path has been mapped to a directory, but directory listing has been
            disabled.
            </summary>
            <typeparam name="TModule">The type of the module on which this method is called.</typeparam>
            <param name="this">The module on which this method is called.</param>
            <param name="callback">The method to call.</param>
            <returns><paramref name="this"/> with its <see cref="P:EmbedIO.Files.FileModule.OnDirectoryNotListable">OnDirectoryNotListable</see> property
            set to <paramref name="callback"/>.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.InvalidOperationException">The configuration of <paramref name="this"/> is locked.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="callback"/> is <see langword="null"/>.</exception>
            <seealso cref="P:EmbedIO.Files.FileModule.OnDirectoryNotListable"/>
            <seealso cref="T:EmbedIO.Files.FileRequestHandler"/>
        </member>
        <member name="M:EmbedIO.Files.FileModuleExtensions.HandleMethodNotAllowed``1(``0,EmbedIO.Files.FileRequestHandlerCallback)">
            <summary>
            Sets a <see cref="T:EmbedIO.Files.FileRequestHandlerCallback"/> that is called by a module whenever
            the requested URL path has been mapped to a file or directory, but the request's
            HTTP method is neither <c>GET</c> nor <c>HEAD</c>.
            </summary>
            <typeparam name="TModule">The type of the module on which this method is called.</typeparam>
            <param name="this">The module on which this method is called.</param>
            <param name="callback">The method to call.</param>
            <returns><paramref name="this"/> with its <see cref="P:EmbedIO.Files.FileModule.OnMethodNotAllowed">OnMethodNotAllowed</see> property
            set to <paramref name="callback"/>.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.InvalidOperationException">The configuration of <paramref name="this"/> is locked.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="callback"/> is <see langword="null"/>.</exception>
            <seealso cref="P:EmbedIO.Files.FileModule.OnMethodNotAllowed"/>
            <seealso cref="T:EmbedIO.Files.FileRequestHandler"/>
        </member>
        <member name="T:EmbedIO.Files.FileRequestHandler">
            <summary>
            Provides standard handler callbacks for <see cref="T:EmbedIO.Files.FileModule"/>.
            </summary>
            <seealso cref="T:EmbedIO.Files.FileRequestHandlerCallback"/>
        </member>
        <member name="M:EmbedIO.Files.FileRequestHandler.PassThrough(EmbedIO.IHttpContext,EmbedIO.Files.MappedResourceInfo)">
            <summary>
            <para>Unconditionally passes a request down the module chain.</para>
            </summary>
            <param name="context">An <see cref="T:EmbedIO.IHttpContext"/> interface representing the context of the request.</param>
            <param name="info">If the requested path has been successfully mapped to a resource (file or directory), the result of the mapping;
            otherwise, <see langword="null"/>.</param>
            <returns>This method never returns; it throws an exception instead.</returns>
        </member>
        <member name="M:EmbedIO.Files.FileRequestHandler.ThrowUnauthorized(EmbedIO.IHttpContext,EmbedIO.Files.MappedResourceInfo)">
            <summary>
            <para>Unconditionally sends a <c>403 Unauthorized</c> response.</para>
            </summary>
            <param name="context">An <see cref="T:EmbedIO.IHttpContext"/> interface representing the context of the request.</param>
            <param name="info">If the requested path has been successfully mapped to a resource (file or directory), the result of the mapping;
            otherwise, <see langword="null"/>.</param>
            <returns>This method never returns; it throws a <see cref="T:EmbedIO.HttpException"/> instead.</returns>
        </member>
        <member name="M:EmbedIO.Files.FileRequestHandler.ThrowNotFound(EmbedIO.IHttpContext,EmbedIO.Files.MappedResourceInfo)">
            <summary>
            <para>Unconditionally sends a <c>404 Not Found</c> response.</para>
            </summary>
            <param name="context">An <see cref="T:EmbedIO.IHttpContext"/> interface representing the context of the request.</param>
            <param name="info">If the requested path has been successfully mapped to a resource (file or directory), the result of the mapping;
            otherwise, <see langword="null"/>.</param>
            <returns>This method never returns; it throws a <see cref="T:EmbedIO.HttpException"/> instead.</returns>
        </member>
        <member name="M:EmbedIO.Files.FileRequestHandler.ThrowMethodNotAllowed(EmbedIO.IHttpContext,EmbedIO.Files.MappedResourceInfo)">
            <summary>
            <para>Unconditionally sends a <c>405 Method Not Allowed</c> response.</para>
            </summary>
            <param name="context">An <see cref="T:EmbedIO.IHttpContext"/> interface representing the context of the request.</param>
            <param name="info">If the requested path has been successfully mapped to a resource (file or directory), the result of the mapping;
            otherwise, <see langword="null"/>.</param>
            <returns>This method never returns; it throws a <see cref="T:EmbedIO.HttpException"/> instead.</returns>
        </member>
        <member name="T:EmbedIO.Files.FileRequestHandlerCallback">
            <summary>
            A callback used to handle a request in <see cref="T:EmbedIO.Files.FileModule"/>.
            </summary>
            <param name="context">An <see cref="T:EmbedIO.IHttpContext"/> interface representing the context of the request.</param>
            <param name="info">If the requested path has been successfully mapped to a resource (file or directory), the result of the mapping;
            otherwise, <see langword="null"/>.</param>
            <returns>A <see cref="T:System.Threading.Tasks.Task"/> representing the ongoing operation.</returns>
        </member>
        <member name="T:EmbedIO.Files.FileSystemProvider">
            <summary>
            Provides access to the local file system to a <see cref="T:EmbedIO.Files.FileModule"/>.
            </summary>
            <seealso cref="T:EmbedIO.Files.IFileProvider" />
        </member>
        <member name="M:EmbedIO.Files.FileSystemProvider.#ctor(System.String,System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:EmbedIO.Files.FileSystemProvider"/> class.
            </summary>
            <remarks>
            OSX doesn't support <see cref="T:System.IO.FileSystemWatcher" />, the parameter <paramref name="isImmutable" /> will be always <see langword="true"/>.
            </remarks>
            <param name="fileSystemPath">The file system path.</param>
            <param name="isImmutable"><see langword="true"/> if files and directories in
            <paramref name="fileSystemPath"/> are not expected to change during a web server's
            lifetime; <see langword="false"/> otherwise.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="fileSystemPath"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentException"><paramref name="fileSystemPath"/> is not a valid local path.</exception>
            <seealso cref="M:EmbedIO.Utilities.Validate.LocalPath(System.String,System.String,System.Boolean)"/>
        </member>
        <member name="M:EmbedIO.Files.FileSystemProvider.Finalize">
            <summary>
            Finalizes an instance of the <see cref="T:EmbedIO.Files.FileSystemProvider"/> class.
            </summary>
        </member>
        <member name="E:EmbedIO.Files.FileSystemProvider.ResourceChanged">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Files.FileSystemProvider.FileSystemPath">
            <summary>
            Gets the file system path from which files are retrieved.
            </summary>
        </member>
        <member name="P:EmbedIO.Files.FileSystemProvider.IsImmutable">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.Files.FileSystemProvider.Dispose">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.Files.FileSystemProvider.Start(System.Threading.CancellationToken)">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.Files.FileSystemProvider.MapUrlPath(System.String,EmbedIO.IMimeTypeProvider)">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.Files.FileSystemProvider.OpenFile(System.String)">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.Files.FileSystemProvider.GetDirectoryEntries(System.String,EmbedIO.IMimeTypeProvider)">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.Files.FileSystemProvider.Dispose(System.Boolean)">
            <summary>
            Releases unmanaged and - optionally - managed resources.
            </summary>
            <param name="disposing"><see langword="true"/> to release both managed and unmanaged resources;
            <see langword="false"/> to release only unmanaged resources.</param>
        </member>
        <member name="T:EmbedIO.Files.IDirectoryLister">
            <summary>
            Represents an object that can render a directory listing to a stream.
            </summary>
        </member>
        <member name="P:EmbedIO.Files.IDirectoryLister.ContentType">
            <summary>
            Gets the MIME type of generated directory listings.
            </summary>
        </member>
        <member name="M:EmbedIO.Files.IDirectoryLister.ListDirectoryAsync(EmbedIO.Files.MappedResourceInfo,System.String,System.Collections.Generic.IEnumerable{EmbedIO.Files.MappedResourceInfo},System.IO.Stream,System.Threading.CancellationToken)">
            <summary>
            Asynchronously generate a directory listing.
            </summary>
            <param name="info">A <see cref="T:EmbedIO.Files.MappedResourceInfo"/> containing information about
            the directory which is to be listed.</param>
            <param name="absoluteUrlPath">The absolute URL path that was mapped to <paramref name="info"/>.</param>
            <param name="entries">An enumeration of the entries in the directory represented by <paramref name="info"/>.</param>
            <param name="stream">A <see cref="T:System.IO.Stream"/> to which the directory listing must be written.</param>
            <param name="cancellationToken">A <see cref="T:System.Threading.CancellationToken"/> used to cancel the operation.</param>
            <returns>A <see cref="T:System.Threading.Tasks.Task"/> representing the ongoing operation.</returns>
        </member>
        <member name="T:EmbedIO.Files.IFileProvider">
            <summary>
            Represents an object that can provide files and/or directories to be served by a <see cref="T:EmbedIO.Files.FileModule"/>.
            </summary>
        </member>
        <member name="E:EmbedIO.Files.IFileProvider.ResourceChanged">
            <summary>
            <para>Occurs when a file or directory provided by this instance is modified or removed.</para>
            <para>The event's parameter is the provider-specific path of the resource that changed.</para>
            </summary>
        </member>
        <member name="P:EmbedIO.Files.IFileProvider.IsImmutable">
            <summary>
            Gets a value indicating whether the files and directories provided by this instance
            will never change.
            </summary>
        </member>
        <member name="M:EmbedIO.Files.IFileProvider.Start(System.Threading.CancellationToken)">
            <summary>
            Signals a file provider that the web server is starting.
            </summary>
            <param name="cancellationToken">A <see cref="T:System.Threading.CancellationToken"/> used to stop the web server.</param>
        </member>
        <member name="M:EmbedIO.Files.IFileProvider.MapUrlPath(System.String,EmbedIO.IMimeTypeProvider)">
            <summary>
            Maps a URL path to a provider-specific path.
            </summary>
            <param name="urlPath">The URL path.</param>
            <param name="mimeTypeProvider">An <see cref="T:EmbedIO.IMimeTypeProvider"/> interface to use
            for determining the MIME type of a file.</param>
            <returns>A provider-specific path identifying a file or directory,
            or <see langword="null"/> if this instance cannot provide a resource associated
            to <paramref name="urlPath"/>.</returns>
        </member>
        <member name="M:EmbedIO.Files.IFileProvider.OpenFile(System.String)">
            <summary>
            Opens a file for reading.
            </summary>
            <param name="path">The provider-specific path for the file.</param>
            <returns>
            <para>A readable <see cref="T:System.IO.Stream"/> of the file's contents.</para>
            </returns>
        </member>
        <member name="M:EmbedIO.Files.IFileProvider.GetDirectoryEntries(System.String,EmbedIO.IMimeTypeProvider)">
            <summary>
            Returns an enumeration of the entries of a directory.
            </summary>
            <param name="path">The provider-specific path for the directory.</param>
            <param name="mimeTypeProvider">An <see cref="T:EmbedIO.IMimeTypeProvider"/> interface to use
            for determining the MIME type of files.</param>
            <returns>An enumeration of <see cref="T:EmbedIO.Files.MappedResourceInfo"/> objects identifying the entries
            in the directory identified by <paramref name="path"/>.</returns>
        </member>
        <member name="T:EmbedIO.Files.MappedResourceInfo">
            <summary>
            Contains information about a resource served via an <see cref="T:EmbedIO.Files.IFileProvider"/>.
            </summary>
        </member>
        <member name="P:EmbedIO.Files.MappedResourceInfo.IsDirectory">
            <summary>
            Gets a value indicating whether this instance represents a directory.
            </summary>
        </member>
        <member name="P:EmbedIO.Files.MappedResourceInfo.IsFile">
            <summary>
            Gets a value indicating whether this instance represents a file.
            </summary>
        </member>
        <member name="P:EmbedIO.Files.MappedResourceInfo.Path">
            <summary>
            Gets a unique, provider-specific path for the resource.
            </summary>
        </member>
        <member name="P:EmbedIO.Files.MappedResourceInfo.Name">
            <summary>
            Gets the name of the resource, as it would appear in a directory listing.
            </summary>
        </member>
        <member name="P:EmbedIO.Files.MappedResourceInfo.LastModifiedUtc">
            <summary>
            Gets the UTC date and time of the last modification made to the resource.
            </summary>
        </member>
        <member name="P:EmbedIO.Files.MappedResourceInfo.Length">
            <summary>
            <para>If <see cref="P:EmbedIO.Files.MappedResourceInfo.IsDirectory"/> is <see langword="false"/>, gets the length of the file, expressed in bytes.</para>
            <para>If <see cref="P:EmbedIO.Files.MappedResourceInfo.IsDirectory"/> is <see langword="true"/>, this property is always zero.</para>
            </summary>
        </member>
        <member name="P:EmbedIO.Files.MappedResourceInfo.ContentType">
            <summary>
            <para>If <see cref="P:EmbedIO.Files.MappedResourceInfo.IsDirectory"/> is <see langword="false"/>, gets a MIME type describing the kind of contents of the file.</para>
            <para>If <see cref="P:EmbedIO.Files.MappedResourceInfo.IsDirectory"/> is <see langword="true"/>, this property is always <see langword="null"/>.</para>
            </summary>
        </member>
        <member name="M:EmbedIO.Files.MappedResourceInfo.ForFile(System.String,System.String,System.DateTime,System.Int64,System.String)">
            <summary>
            Creates and returns a new instance of the <see cref="T:EmbedIO.Files.MappedResourceInfo"/> class,
            representing a file.
            </summary>
            <param name="path">A unique, provider-specific path for the file.</param>
            <param name="name">The name of the file, as it would appear in a directory listing.</param>
            <param name="lastModifiedUtc">The UTC date and time of the last modification made to the file.</param>
            <param name="size">The length of the file, expressed in bytes.</param>
            <param name="contentType">A MIME type describing the kind of contents of the file.</param>
            <returns>A newly-constructed instance of <see cref="T:EmbedIO.Files.MappedResourceInfo"/>.</returns>
        </member>
        <member name="M:EmbedIO.Files.MappedResourceInfo.ForDirectory(System.String,System.String,System.DateTime)">
            <summary>
            Creates and returns a new instance of the <see cref="T:EmbedIO.Files.MappedResourceInfo"/> class,
            representing a directory.
            </summary>
            <param name="path">A unique, provider-specific path for the directory.</param>
            <param name="name">The name of the directory, as it would appear in a directory listing.</param>
            <param name="lastModifiedUtc">The UTC date and time of the last modification made to the directory.</param>
            <returns>A newly-constructed instance of <see cref="T:EmbedIO.Files.MappedResourceInfo"/>.</returns>
        </member>
        <member name="T:EmbedIO.Files.ResourceFileProvider">
            <summary>
            Provides access to embedded resources to a <see cref="T:EmbedIO.Files.FileModule"/>.
            </summary>
            <seealso cref="T:EmbedIO.Files.IFileProvider" />
        </member>
        <member name="M:EmbedIO.Files.ResourceFileProvider.#ctor(System.Reflection.Assembly,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:EmbedIO.Files.ResourceFileProvider"/> class.
            </summary>
            <param name="assembly">The assembly where served files are contained as embedded resources.</param>
            <param name="pathPrefix">A string to prepend to provider-specific paths
            to form the name of a manifest resource in <paramref name="assembly"/>.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="assembly"/> is <see langword="null"/>.</exception>
        </member>
        <member name="E:EmbedIO.Files.ResourceFileProvider.ResourceChanged">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Files.ResourceFileProvider.Assembly">
            <summary>
            Gets the assembly where served files are contained as embedded resources.
            </summary>
        </member>
        <member name="P:EmbedIO.Files.ResourceFileProvider.PathPrefix">
            <summary>
            Gets a string that is prepended to provider-specific paths to form the name of a manifest resource in <see cref="P:EmbedIO.Files.ResourceFileProvider.Assembly"/>.
            </summary>
        </member>
        <member name="P:EmbedIO.Files.ResourceFileProvider.IsImmutable">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.Files.ResourceFileProvider.Start(System.Threading.CancellationToken)">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.Files.ResourceFileProvider.MapUrlPath(System.String,EmbedIO.IMimeTypeProvider)">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.Files.ResourceFileProvider.OpenFile(System.String)">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.Files.ResourceFileProvider.GetDirectoryEntries(System.String,EmbedIO.IMimeTypeProvider)">
            <inheritdoc />
        </member>
        <member name="T:EmbedIO.Files.ZipFileProvider">
            <summary>
            Provides access to files contained in a <c>.zip</c> file to a <see cref="T:EmbedIO.Files.FileModule"/>.
            </summary>
            <seealso cref="T:EmbedIO.Files.IFileProvider" />
        </member>
        <member name="M:EmbedIO.Files.ZipFileProvider.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:EmbedIO.Files.ZipFileProvider"/> class.
            </summary>
            <param name="zipFilePath">The zip file path.</param>
        </member>
        <member name="M:EmbedIO.Files.ZipFileProvider.#ctor(System.IO.Stream,System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:EmbedIO.Files.ZipFileProvider"/> class.
            </summary>
            <param name="stream">The stream that contains the archive.</param>
            <param name="leaveOpen"><see langword="true"/> to leave the stream open after the web server
            is disposed; otherwise, <see langword="false"/>.</param>
        </member>
        <member name="M:EmbedIO.Files.ZipFileProvider.Finalize">
            <summary>
            Finalizes an instance of the <see cref="T:EmbedIO.Files.ZipFileProvider"/> class.
            </summary>
        </member>
        <member name="E:EmbedIO.Files.ZipFileProvider.ResourceChanged">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Files.ZipFileProvider.IsImmutable">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.Files.ZipFileProvider.Dispose">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.Files.ZipFileProvider.Start(System.Threading.CancellationToken)">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.Files.ZipFileProvider.MapUrlPath(System.String,EmbedIO.IMimeTypeProvider)">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.Files.ZipFileProvider.OpenFile(System.String)">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.Files.ZipFileProvider.GetDirectoryEntries(System.String,EmbedIO.IMimeTypeProvider)">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.Files.ZipFileProvider.Dispose(System.Boolean)">
            <summary>
            Releases unmanaged and - optionally - managed resources.
            </summary>
            <param name="disposing"><see langword="true"/> to release both managed and unmanaged resources;
            <see langword="false"/> to release only unmanaged resources.</param>
        </member>
        <member name="T:EmbedIO.HttpContextExtensions">
            <summary>
            Provides extension methods for types implementing <see cref="T:EmbedIO.IHttpContext"/>.
            </summary>
        </member>
        <member name="M:EmbedIO.HttpContextExtensions.TryGetItem``1(EmbedIO.IHttpContext,System.Object,``0@)">
            <summary>Gets the item associated with the specified key.</summary>
            <typeparam name="T">The desired type of the item.</typeparam>
            <param name="this">The <see cref="T:EmbedIO.IHttpContext"/> on which this method is called.</param>
            <param name="key">The key whose value to get from the <see cref="P:EmbedIO.IHttpContext.Items">Items</see> dictionary.</param>
            <param name="value">
            <para>When this method returns, the item associated with the specified key,
            if the key is found in <see cref="P:EmbedIO.IHttpContext.Items">Items</see>
            and the associated value is of type <typeparamref name="T"/>;
            otherwise, the default value for <typeparamref name="T"/>.</para>
            <para>This parameter is passed uninitialized.</para>
            </param>
            <returns><see langword="true"/> if the item is found and is of type <typeparamref name="T"/>;
            otherwise, <see langword="false"/>.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is <see langword="null"/>.</exception>
        </member>
        <member name="M:EmbedIO.HttpContextExtensions.GetItem``1(EmbedIO.IHttpContext,System.Object)">
            <summary>Gets the item associated with the specified key.</summary>
            <typeparam name="T">The desired type of the item.</typeparam>
            <param name="this">The <see cref="T:EmbedIO.IHttpContext"/> on which this method is called.</param>
            <param name="key">The key whose value to get from the <see cref="P:EmbedIO.IHttpContext.Items">Items</see> dictionary.</param>
            <returns>The item associated with the specified key,
            if the key is found in <see cref="P:EmbedIO.IHttpContext.Items">Items</see>
            and the associated value is of type <typeparamref name="T"/>;
            otherwise, the default value for <typeparamref name="T"/>.</returns>
        </member>
        <member name="M:EmbedIO.HttpContextExtensions.Redirect(EmbedIO.IHttpContext,System.String,System.Int32)">
            <summary>
            Sets a redirection status code and adds a <c>Location</c> header to the response.
            </summary>
            <param name="this">The <see cref="T:EmbedIO.IHttpContext"/> interface on which this method is called.</param>
            <param name="location">The URL to which the user agent should be redirected.</param>
            <param name="statusCode">The status code to set on the response.</param>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="location"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentException">
            <para><paramref name="location"/> is not a valid relative or absolute URL.<see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="statusCode"/> is not a redirection (3xx) status code.</para>
            </exception>
        </member>
        <member name="M:EmbedIO.HttpContextExtensions.GetRequestBodyAsByteArrayAsync(EmbedIO.IHttpContext)">
            <summary>
            Asynchronously retrieves the request body as an array of <see langword="byte"/>s.
            </summary>
            <param name="this">The <see cref="T:EmbedIO.IHttpContext"/> on which this method is called.</param>
            <returns>A <see cref="T:System.Threading.Tasks.Task`1">Task</see>, representing the ongoing operation,
            whose result will be an array of <see cref="T:System.Byte"/>s containing the request body.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
        </member>
        <member name="M:EmbedIO.HttpContextExtensions.GetRequestBodyAsMemoryStreamAsync(EmbedIO.IHttpContext)">
            <summary>
            Asynchronously buffers the request body into a read-only <see cref="T:System.IO.MemoryStream"/>.
            </summary>
            <param name="this">The <see cref="T:EmbedIO.IHttpContext"/> on which this method is called.</param>
            <returns>A <see cref="T:System.Threading.Tasks.Task`1">Task</see>, representing the ongoing operation,
            whose result will be a read-only <see cref="T:System.IO.MemoryStream"/> containing the request body.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
        </member>
        <member name="M:EmbedIO.HttpContextExtensions.GetRequestBodyAsStringAsync(EmbedIO.IHttpContext)">
            <summary>
            Asynchronously retrieves the request body as a string.
            </summary>
            <param name="this">The <see cref="T:EmbedIO.IHttpContext"/> on which this method is called.</param>
            <returns>A <see cref="T:System.Threading.Tasks.Task`1">Task</see>, representing the ongoing operation,
            whose result will be a <see langword="string"/> representation of the request body.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
        </member>
        <member name="M:EmbedIO.HttpContextExtensions.GetRequestDataAsync``1(EmbedIO.IHttpContext)">
            <summary>
            <para>Asynchronously deserializes a request body, using the default request deserializer.</para>
            <para>As of EmbedIO version 3.0, the default response serializer has the same behavior of JSON
            request parsing methods of version 2.</para>
            </summary>
            <typeparam name="TData">The expected type of the deserialized data.</typeparam>
            <param name="this">The <see cref="T:EmbedIO.IHttpContext"/> on which this method is called.</param>
            <returns>A <see cref="T:System.Threading.Tasks.Task`1">Task</see>, representing the ongoing operation,
            whose result will be the deserialized data.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
        </member>
        <member name="M:EmbedIO.HttpContextExtensions.GetRequestDataAsync``1(EmbedIO.IHttpContext,EmbedIO.RequestDeserializerCallback{``0})">
            <summary>
            Asynchronously deserializes a request body, using the specified request deserializer.
            </summary>
            <typeparam name="TData">The expected type of the deserialized data.</typeparam>
            <param name="this">The <see cref="T:EmbedIO.IHttpContext"/> on which this method is called.</param>
            <param name="deserializer">A <see cref="T:EmbedIO.RequestDeserializerCallback`1"/> used to deserialize the request body.</param>
            <returns>A <see cref="T:System.Threading.Tasks.Task`1">Task</see>, representing the ongoing operation,
            whose result will be the deserialized data.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="deserializer"/> is <see langword="null"/>.</exception>
        </member>
        <member name="M:EmbedIO.HttpContextExtensions.GetRequestFormDataAsync(EmbedIO.IHttpContext)">
            <summary>
            Asynchronously parses a request body in <c>application/x-www-form-urlencoded</c> format.
            </summary>
            <param name="this">The <see cref="T:EmbedIO.IHttpContext"/> on which this method is called.</param>
            <returns>A <see cref="T:System.Threading.Tasks.Task`1">Task</see>, representing the ongoing operation,
            whose result will be a read-only <see cref="T:System.Collections.Specialized.NameValueCollection"/>of form field names and values.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <remarks>
            <para>This method may safely be called more than once for the same <see cref="T:EmbedIO.IHttpContext"/>:
            it will return the same collection instead of trying to parse the request body again.</para>
            </remarks>
        </member>
        <member name="M:EmbedIO.HttpContextExtensions.GetRequestQueryData(EmbedIO.IHttpContext)">
            <summary>
            Parses a request URL query. Note that this is different from getting the <see cref="P:EmbedIO.IHttpRequest.QueryString"/> property,
            in that fields without an equal sign are treated as if they have an empty value, instead of their keys being grouped
            as values of the <c>null</c> key.
            </summary>
            <param name="this">The <see cref="T:EmbedIO.IHttpContext"/> on which this method is called.</param>
            <returns>A read-only <see cref="T:System.Collections.Specialized.NameValueCollection"/>.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <remarks>
            <para>This method may safely be called more than once for the same <see cref="T:EmbedIO.IHttpContext"/>:
            it will return the same collection instead of trying to parse the request body again.</para>
            </remarks>
        </member>
        <member name="M:EmbedIO.HttpContextExtensions.OpenRequestStream(EmbedIO.IHttpContext)">
            <summary>
            <para>Wraps the request input stream and returns a <see cref="T:System.IO.Stream"/> that can be used directly.</para>
            <para>Decompression of compressed request bodies is implemented if specified in the web server's options.</para>
            </summary>
            <param name="this">The <see cref="T:EmbedIO.IHttpContext"/> on which this method is called.</param>
            <returns>
            <para>A <see cref="T:System.IO.Stream"/> that can be used to write response data.</para>
            <para>This stream MUST be disposed when finished writing.</para>
            </returns>
            <seealso cref="M:EmbedIO.HttpContextExtensions.OpenRequestText(EmbedIO.IHttpContext)"/>
            <seealso cref="P:EmbedIO.WebServerOptionsBase.SupportCompressedRequests"/>
        </member>
        <member name="M:EmbedIO.HttpContextExtensions.OpenRequestText(EmbedIO.IHttpContext)">
            <summary>
            <para>Wraps the request input stream and returns a <see cref="T:System.IO.TextReader" /> that can be used directly.</para>
            <para>Decompression of compressed request bodies is implemented if specified in the web server's options.</para>
            <para>If the request does not specify a content encoding,
            <see cref="P:System.Text.Encoding.UTF8">UTF-8</see> is used by default.</para>
            </summary>
            <param name="this">The <see cref="T:EmbedIO.IHttpContext" /> on which this method is called.</param>
            <returns>
            <para>A <see cref="T:System.IO.TextReader" /> that can be used to read the request body as text.</para>
            <para>This reader MUST be disposed when finished reading.</para>
            </returns>
            <seealso cref="M:EmbedIO.HttpContextExtensions.OpenRequestStream(EmbedIO.IHttpContext)"/>
            <seealso cref="P:EmbedIO.WebServerOptionsBase.SupportCompressedRequests"/>
        </member>
        <member name="M:EmbedIO.HttpContextExtensions.SendStringAsync(EmbedIO.IHttpContext,System.String,System.String,System.Text.Encoding)">
            <summary>
            Asynchronously sends a string as response.
            </summary>
            <param name="this">The <see cref="T:EmbedIO.IHttpResponse"/> interface on which this method is called.</param>
            <param name="content">The response content.</param>
            <param name="contentType">The MIME type of the content. If <see langword="null"/>, the content type will not be set.</param>
            <param name="encoding">The <see cref="T:System.Text.Encoding"/> to use.</param>
            <returns>A <see cref="T:System.Threading.Tasks.Task"/> representing the ongoing operation.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="content"/> is <see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="encoding"/> is <see langword="null"/>.</para>
            </exception>
        </member>
        <member name="M:EmbedIO.HttpContextExtensions.SendStandardHtmlAsync(EmbedIO.IHttpContext,System.Int32)">
            <summary>
            Asynchronously sends a standard HTML response for the specified status code.
            </summary>
            <param name="this">The <see cref="T:EmbedIO.IHttpContext"/> interface on which this method is called.</param>
            <param name="statusCode">The HTTP status code of the response.</param>
            <returns>A <see cref="T:System.Threading.Tasks.Task"/> representing the ongoing operation.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentException">There is no standard status description for <paramref name="statusCode"/>.</exception>
            <seealso cref="M:EmbedIO.HttpContextExtensions.SendStandardHtmlAsync(EmbedIO.IHttpContext,System.Int32,System.Action{System.IO.TextWriter})"/>
        </member>
        <member name="M:EmbedIO.HttpContextExtensions.SendStandardHtmlAsync(EmbedIO.IHttpContext,System.Int32,System.Action{System.IO.TextWriter})">
            <summary>
            Asynchronously sends a standard HTML response for the specified status code.
            </summary>
            <param name="this">The <see cref="T:EmbedIO.IHttpContext"/> interface on which this method is called.</param>
            <param name="statusCode">The HTTP status code of the response.</param>
            <param name="writeAdditionalHtml">A callback function that may write additional HTML code
            to a <see cref="T:System.IO.TextWriter"/> representing the response output.
            If not <see langword="null"/>, the callback is called immediately before closing the HTML <c>body</c> tag.</param>
            <returns>A <see cref="T:System.Threading.Tasks.Task"/> representing the ongoing operation.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentException">There is no standard status description for <paramref name="statusCode"/>.</exception>
            <seealso cref="M:EmbedIO.HttpContextExtensions.SendStandardHtmlAsync(EmbedIO.IHttpContext,System.Int32)"/>
        </member>
        <member name="M:EmbedIO.HttpContextExtensions.SendDataAsync(EmbedIO.IHttpContext,System.Object)">
            <summary>
            <para>Asynchronously sends serialized data as a response, using the default response serializer.</para>
            <para>As of EmbedIO version 3.0, the default response serializer has the same behavior of JSON
            response methods of version 2.</para>
            </summary>
            <param name="this">The <see cref="T:EmbedIO.IHttpContext"/> interface on which this method is called.</param>
            <param name="data">The data to serialize.</param>
            <returns>A <see cref="T:System.Threading.Tasks.Task"/> representing the ongoing operation.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <seealso cref="M:EmbedIO.HttpContextExtensions.SendDataAsync(EmbedIO.IHttpContext,EmbedIO.ResponseSerializerCallback,System.Object)"/>
            <seealso cref="F:EmbedIO.ResponseSerializer.Default"/>
        </member>
        <member name="M:EmbedIO.HttpContextExtensions.SendDataAsync(EmbedIO.IHttpContext,EmbedIO.ResponseSerializerCallback,System.Object)">
            <summary>
            <para>Asynchronously sends serialized data as a response, using the specified response serializer.</para>
            <para>As of EmbedIO version 3.0, the default response serializer has the same behavior of JSON
            response methods of version 2.</para>
            </summary>
            <param name="this">The <see cref="T:EmbedIO.IHttpContext"/> interface on which this method is called.</param>
            <param name="serializer">A <see cref="T:EmbedIO.ResponseSerializerCallback"/> used to prepare the response.</param>
            <param name="data">The data to serialize.</param>
            <returns>A <see cref="T:System.Threading.Tasks.Task"/> representing the ongoing operation.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="serializer"/> is <see langword="null"/>.</exception>
            <seealso cref="M:EmbedIO.HttpContextExtensions.SendDataAsync(EmbedIO.IHttpContext,EmbedIO.ResponseSerializerCallback,System.Object)"/>
            <seealso cref="F:EmbedIO.ResponseSerializer.Default"/>
        </member>
        <member name="M:EmbedIO.HttpContextExtensions.OpenResponseStream(EmbedIO.IHttpContext,System.Boolean,System.Boolean)">
            <summary>
            <para>Wraps the response output stream and returns a <see cref="T:System.IO.Stream"/> that can be used directly.</para>
            <para>Optional buffering is applied, so that the response may be sent as one instead of using chunked transfer.</para>
            <para>Proactive negotiation is performed to select the best compression method supported by the client.</para>
            </summary>
            <param name="this">The <see cref="T:EmbedIO.IHttpContext"/> on which this method is called.</param>
            <param name="buffered">If set to <see langword="true"/>, sent data is collected
            in a <see cref="T:System.IO.MemoryStream"/> and sent all at once when the returned <see cref="T:System.IO.Stream"/>
            is disposed; if set to <see langword="false"/> (the default), chunked transfer will be used.</param>
            <param name="preferCompression"><see langword="true"/> if sending compressed data is preferred over
            sending non-compressed data; otherwise, <see langword="false"/>.</param>
            <returns>
            <para>A <see cref="T:System.IO.Stream"/> that can be used to write response data.</para>
            <para>This stream MUST be disposed when finished writing.</para>
            </returns>
            <seealso cref="M:EmbedIO.HttpContextExtensions.OpenResponseText(EmbedIO.IHttpContext,System.Text.Encoding,System.Boolean,System.Boolean)"/>
        </member>
        <member name="M:EmbedIO.HttpContextExtensions.OpenResponseText(EmbedIO.IHttpContext,System.Text.Encoding,System.Boolean,System.Boolean)">
            <summary>
            <para>Wraps the response output stream and returns a <see cref="T:System.IO.TextWriter" /> that can be used directly.</para>
            <para>Optional buffering is applied, so that the response may be sent as one instead of using chunked transfer.</para>
            <para>Proactive negotiation is performed to select the best compression method supported by the client.</para>
            </summary>
            <param name="this">The <see cref="T:EmbedIO.IHttpContext" /> on which this method is called.</param>
            <param name="encoding">
            <para>The <see cref="T:System.Text.Encoding"/> to use to convert text to data bytes.</para>
            <para>If <see langword="null"/> (the default), <see cref="P:System.Text.Encoding.UTF8">UTF-8</see> is used.</para>
            </param>
            <param name="buffered">If set to <see langword="true" />, sent data is collected
            in a <see cref="T:System.IO.MemoryStream" /> and sent all at once when the returned <see cref="T:System.IO.Stream" />
            is disposed; if set to <see langword="false" /> (the default), chunked transfer will be used.</param>
            <param name="preferCompression"><see langword="true"/> if sending compressed data is preferred over
            sending non-compressed data; otherwise, <see langword="false"/>.</param>
            <returns>
            <para>A <see cref="T:System.IO.TextWriter" /> that can be used to write response data.</para>
            <para>This writer MUST be disposed when finished writing.</para>
            </returns>
            <seealso cref="M:EmbedIO.HttpContextExtensions.OpenResponseStream(EmbedIO.IHttpContext,System.Boolean,System.Boolean)"/>
        </member>
        <member name="M:EmbedIO.HttpContextExtensions.GetImplementation(EmbedIO.IHttpContext)">
            <summary>
            <para>Gets the underlying <see cref="T:EmbedIO.IHttpContextImpl"/> interface of an <see cref="T:EmbedIO.IHttpContext"/>.</para>
            <para>This API mainly supports the EmbedIO infrastructure; it is not intended to be used directly from your code,
            unless to fulfill very specific needs in the development of plug-ins (modules, etc.) for EmbedIO.</para>
            </summary>
            <param name="this">The <see cref="T:EmbedIO.IHttpContext"/> interface on which this method is called.</param>
            <returns>The underlying <see cref="T:EmbedIO.IHttpContextImpl"/> interface representing
            the HTTP context implementation.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="this"/> is <see langword="null"/>.
            </exception>
            <exception cref="T:EmbedIO.EmbedIOInternalErrorException">
            <paramref name="this"/> does not implement <see cref="T:EmbedIO.IHttpContextImpl"/>.
            </exception>
        </member>
        <member name="T:EmbedIO.HttpException">
            <summary>
            When thrown, breaks the request handling control flow
            and sends an error response to the client.
            </summary>
        </member>
        <member name="M:EmbedIO.HttpException.InternalServerError(System.String,System.Object)">
            <summary>
            Returns a new instance of <see cref="T:EmbedIO.HttpException" /> that, when thrown,
            will break the request handling control flow and send a <c>500 Internal Server Error</c>
            response to the client.
            </summary>
            <param name="message">A message to include in the response.</param>
            <param name="data">The data object to include in the response.</param>
            <returns>
            A newly-created <see cref="T:EmbedIO.HttpException" />.
            </returns>
        </member>
        <member name="M:EmbedIO.HttpException.Unauthorized(System.String,System.Object)">
            <summary>
            Returns a new instance of <see cref="T:EmbedIO.HttpException" /> that, when thrown,
            will break the request handling control flow and send a <c>401 Unauthorized</c>
            response to the client.
            </summary>
            <param name="message">A message to include in the response.</param>
            <param name="data">The data object to include in the response.</param>
            <returns>
            A newly-created <see cref="T:EmbedIO.HttpException" />.
            </returns>
        </member>
        <member name="M:EmbedIO.HttpException.Forbidden(System.String,System.Object)">
            <summary>
            Returns a new instance of <see cref="T:EmbedIO.HttpException"/> that, when thrown,
            will break the request handling control flow and send a <c>403 Forbidden</c>
            response to the client.
            </summary>
            <param name="message">A message to include in the response.</param>
            <param name="data">The data object to include in the response.</param>
            <returns>A newly-created <see cref="T:EmbedIO.HttpException"/>.</returns>
        </member>
        <member name="M:EmbedIO.HttpException.BadRequest(System.String,System.Object)">
            <summary>
            Returns a new instance of <see cref="T:EmbedIO.HttpException"/> that, when thrown,
            will break the request handling control flow and send a <c>400 Bad Request</c>
            response to the client.
            </summary>
            <param name="message">A message to include in the response.</param>
            <param name="data">The data object to include in the response.</param>
            <returns>A newly-created <see cref="T:EmbedIO.HttpException"/>.</returns>
        </member>
        <member name="M:EmbedIO.HttpException.NotFound(System.String,System.Object)">
            <summary>
            Returns a new instance of <see cref="T:EmbedIO.HttpException"/> that, when thrown,
            will break the request handling control flow and send a <c>404 Not Found</c>
            response to the client.
            </summary>
            <param name="message">A message to include in the response.</param>
            <param name="data">The data object to include in the response.</param>
            <returns>A newly-created <see cref="T:EmbedIO.HttpException"/>.</returns>
        </member>
        <member name="M:EmbedIO.HttpException.MethodNotAllowed(System.String,System.Object)">
            <summary>
            Returns a new instance of <see cref="T:EmbedIO.HttpException"/> that, when thrown,
            will break the request handling control flow and send a <c>405 Method Not Allowed</c>
            response to the client.
            </summary>
            <param name="message">A message to include in the response.</param>
            <param name="data">The data object to include in the response.</param>
            <returns>A newly-created <see cref="T:EmbedIO.HttpException"/>.</returns>
        </member>
        <member name="M:EmbedIO.HttpException.NotAcceptable">
            <summary>
            Returns a new instance of <see cref="T:EmbedIO.HttpNotAcceptableException"/> that, when thrown,
            will break the request handling control flow and send a <c>406 Not Acceptable</c>
            response to the client.
            </summary>
            <returns>A newly-created <see cref="T:EmbedIO.HttpNotAcceptableException"/>.</returns>
            <seealso cref="M:EmbedIO.HttpNotAcceptableException.#ctor"/>
        </member>
        <member name="M:EmbedIO.HttpException.NotAcceptable(System.String)">
            <summary>
            <para>Returns a new instance of <see cref="T:EmbedIO.HttpNotAcceptableException"/> that, when thrown,
            will break the request handling control flow and send a <c>406 Not Acceptable</c>
            response to the client.</para>
            </summary>
            <param name="vary">A value, or a comma-separated list of values, to set the response's <c>Vary</c> header to.</param>
            <returns>A newly-created <see cref="T:EmbedIO.HttpNotAcceptableException"/>.</returns>
            <seealso cref="M:EmbedIO.HttpNotAcceptableException.#ctor(System.String)"/>
        </member>
        <member name="M:EmbedIO.HttpException.RangeNotSatisfiable">
            <summary>
            Returns a new instance of <see cref="T:EmbedIO.HttpRangeNotSatisfiableException"/> that, when thrown,
            will break the request handling control flow and send a <c>416 Range Not Satisfiable</c>
            response to the client.
            </summary>
            <returns>A newly-created <see cref="T:EmbedIO.HttpRangeNotSatisfiableException"/>.</returns>
            <seealso cref="M:EmbedIO.HttpRangeNotSatisfiableException.#ctor"/>
        </member>
        <member name="M:EmbedIO.HttpException.RangeNotSatisfiable(System.Nullable{System.Int64})">
            <summary>
            Returns a new instance of <see cref="T:EmbedIO.HttpRangeNotSatisfiableException"/> that, when thrown,
            will break the request handling control flow and send a <c>416 Range Not Satisfiable</c>
            response to the client.
            </summary>
            <param name="contentLength">The total length of the requested resource, expressed in bytes,
            or <see langword="null"/> to omit the <c>Content-Range</c> header in the response.</param>
            <returns>A newly-created <see cref="T:EmbedIO.HttpRangeNotSatisfiableException"/>.</returns>
            <seealso cref="M:EmbedIO.HttpRangeNotSatisfiableException.#ctor"/>
        </member>
        <member name="M:EmbedIO.HttpException.Redirect(System.String)">
            <summary>
            Returns a new instance of <see cref="T:EmbedIO.HttpRedirectException" /> that, when thrown,
            will break the request handling control flow and redirect the client
            to the specified location, using response status code 302.
            </summary>
            <param name="location">The redirection target.</param>
            <returns>
            A newly-created <see cref="T:EmbedIO.HttpRedirectException" />.
            </returns>
        </member>
        <member name="M:EmbedIO.HttpException.Redirect(System.String,System.Int32)">
            <summary>
            Returns a new instance of <see cref="T:EmbedIO.HttpRedirectException" /> that, when thrown,
            will break the request handling control flow and redirect the client
            to the specified location, using the specified response status code.
            </summary>
            <param name="location">The redirection target.</param>
            <param name="statusCode">The status code to set on the response, in the range from 300 to 399.</param>
            <returns>
            A newly-created <see cref="T:EmbedIO.HttpRedirectException" />.
            </returns>
            <exception cref="T:System.ArgumentException"><paramref name="statusCode"/> is not in the 300-399 range.</exception>
        </member>
        <member name="M:EmbedIO.HttpException.Redirect(System.String,System.Net.HttpStatusCode)">
            <summary>
            Returns a new instance of <see cref="T:EmbedIO.HttpRedirectException" /> that, when thrown,
            will break the request handling control flow and redirect the client
            to the specified location, using the specified response status code.
            </summary>
            <param name="location">The redirection target.</param>
            <param name="statusCode">One of the redirection status codes, to be set on the response.</param>
            <returns>
            A newly-created <see cref="T:EmbedIO.HttpRedirectException" />.
            </returns>
            <exception cref="T:System.ArgumentException"><paramref name="statusCode"/> is not a redirection status code.</exception>
        </member>
        <member name="M:EmbedIO.HttpException.#ctor(System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:EmbedIO.HttpException"/> class,
            with no message to include in the response.
            </summary>
            <param name="statusCode">The status code to set on the response.</param>
        </member>
        <member name="M:EmbedIO.HttpException.#ctor(System.Net.HttpStatusCode)">
            <summary>
            Initializes a new instance of the <see cref="T:EmbedIO.HttpException"/> class,
            with no message to include in the response.
            </summary>
            <param name="statusCode">The status code to set on the response.</param>
        </member>
        <member name="M:EmbedIO.HttpException.#ctor(System.Int32,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:EmbedIO.HttpException"/> class,
            with a message to include in the response.
            </summary>
            <param name="statusCode">The status code to set on the response.</param>
            <param name="message">A message to include in the response as plain text.</param>
        </member>
        <member name="M:EmbedIO.HttpException.#ctor(System.Net.HttpStatusCode,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:EmbedIO.HttpException"/> class,
            with a message to include in the response.
            </summary>
            <param name="statusCode">The status code to set on the response.</param>
            <param name="message">A message to include in the response as plain text.</param>
        </member>
        <member name="M:EmbedIO.HttpException.#ctor(System.Int32,System.String,System.Object)">
            <summary>
            Initializes a new instance of the <see cref="T:EmbedIO.HttpException" /> class,
            with a message and a data object to include in the response.
            </summary>
            <param name="statusCode">The status code to set on the response.</param>
            <param name="message">A message to include in the response as plain text.</param>
            <param name="data">The data object to include in the response.</param>
        </member>
        <member name="M:EmbedIO.HttpException.#ctor(System.Net.HttpStatusCode,System.String,System.Object)">
            <summary>
            Initializes a new instance of the <see cref="T:EmbedIO.HttpException" /> class,
            with a message and a data object to include in the response.
            </summary>
            <param name="statusCode">The status code to set on the response.</param>
            <param name="message">A message to include in the response as plain text.</param>
            <param name="data">The data object to include in the response.</param>
        </member>
        <member name="P:EmbedIO.HttpException.StatusCode">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.HttpException.DataObject">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.HttpException.EmbedIO#IHttpException#Message">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.HttpException.PrepareResponse(EmbedIO.IHttpContext)">
            <inheritdoc />
            <remarks>
            <para>This method does nothing; there is no need to call
            <c>base.PrepareResponse</c> in overrides of this method.</para>
            </remarks>
        </member>
        <member name="T:EmbedIO.HttpExceptionHandler">
            <summary>
            Provides standard handlers for HTTP exceptions at both module and server level.
            </summary>
            <remarks>
            <para>Where applicable, HTTP exception handlers defined in this class
            use the <see cref="P:EmbedIO.ExceptionHandler.ContactInformation"/> and
            <see cref="P:EmbedIO.ExceptionHandler.IncludeStackTraces"/> properties to customize
            their behavior.</para>
            </remarks>
            <seealso cref="P:EmbedIO.IWebServer.OnHttpException"/>
            <seealso cref="P:EmbedIO.IWebModule.OnHttpException"/>
        </member>
        <member name="P:EmbedIO.HttpExceptionHandler.Default">
            <summary>
            <para>Gets the default handler used by <see cref="T:EmbedIO.WebServerBase`1"/>.</para>
            <para>This is the same as <see cref="M:EmbedIO.HttpExceptionHandler.HtmlResponse(EmbedIO.IHttpContext,EmbedIO.IHttpException)"/>.</para>
            </summary>
        </member>
        <member name="M:EmbedIO.HttpExceptionHandler.EmptyResponse(EmbedIO.IHttpContext,EmbedIO.IHttpException)">
            <summary>
            Sends an empty response.
            </summary>
            <param name="context">An <see cref="T:EmbedIO.IHttpContext" /> interface representing the context of the request.</param>
            <param name="httpException">The HTTP exception.</param>
            <returns>A <see cref="T:System.Threading.Tasks.Task" /> representing the ongoing operation.</returns>
        </member>
        <member name="M:EmbedIO.HttpExceptionHandler.PlainTextResponse(EmbedIO.IHttpContext,EmbedIO.IHttpException)">
            <summary>
            <para>Sends a HTTP exception's <see cref="P:EmbedIO.IHttpException.Message">Message</see> property
            as a plain text response.</para>
            <para>This handler does not use the <see cref="P:EmbedIO.IHttpException.DataObject">DataObject</see> property.</para>
            </summary>
            <param name="context">An <see cref="T:EmbedIO.IHttpContext" /> interface representing the context of the request.</param>
            <param name="httpException">The HTTP exception.</param>
            <returns>A <see cref="T:System.Threading.Tasks.Task" /> representing the ongoing operation.</returns>
        </member>
        <member name="M:EmbedIO.HttpExceptionHandler.HtmlResponse(EmbedIO.IHttpContext,EmbedIO.IHttpException)">
            <summary>
            <para>Sends a response with a HTML payload
            briefly describing the error, including contact information and/or a stack trace
            if specified via the <see cref="P:EmbedIO.ExceptionHandler.ContactInformation"/>
            and <see cref="P:EmbedIO.ExceptionHandler.IncludeStackTraces"/> properties, respectively.</para>
            <para>This handler does not use the <see cref="P:EmbedIO.IHttpException.DataObject">DataObject</see> property.</para>
            </summary>
            <param name="context">An <see cref="T:EmbedIO.IHttpContext" /> interface representing the context of the request.</param>
            <param name="httpException">The HTTP exception.</param>
            <returns>A <see cref="T:System.Threading.Tasks.Task" /> representing the ongoing operation.</returns>
        </member>
        <member name="M:EmbedIO.HttpExceptionHandler.DataResponse(EmbedIO.ResponseSerializerCallback)">
            <summary>
            <para>Gets a <see cref="T:EmbedIO.HttpExceptionHandlerCallback" /> that will serialize a HTTP exception's
            <see cref="P:EmbedIO.IHttpException.DataObject">DataObject</see> property and send it as a JSON response.</para>
            </summary>
            <param name="serializerCallback">A <see cref="T:EmbedIO.ResponseSerializerCallback" /> used to serialize data and send it to the client.</param>
            <returns>A <see cref="T:EmbedIO.HttpExceptionHandlerCallback" />.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="serializerCallback"/> is <see langword="null"/>.</exception>
        </member>
        <member name="M:EmbedIO.HttpExceptionHandler.FullDataResponse(EmbedIO.ResponseSerializerCallback)">
            <summary>
            <para>Gets a <see cref="T:EmbedIO.HttpExceptionHandlerCallback" /> that will serialize a HTTP exception's
            <see cref="P:EmbedIO.IHttpException.Message">Message</see> and <see cref="P:EmbedIO.IHttpException.DataObject">DataObject</see> properties
            and send them as a JSON response.</para>
            <para>The response will be a JSON object with a <c>message</c> property and a <c>data</c> property.</para>
            </summary>
            <param name="serializerCallback">A <see cref="T:EmbedIO.ResponseSerializerCallback" /> used to serialize data and send it to the client.</param>
            <returns>A <see cref="T:EmbedIO.HttpExceptionHandlerCallback" />.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="serializerCallback"/> is <see langword="null"/>.</exception>
        </member>
        <member name="T:EmbedIO.HttpExceptionHandlerCallback">
            <summary>
            A callback used to build the contents of the response for an <see cref="T:EmbedIO.IHttpException" />.
            </summary>
            <param name="context">An <see cref="T:EmbedIO.IHttpContext" /> interface representing the context of the request.</param>
            <param name="httpException">An <see cref="T:EmbedIO.IHttpException" /> interface.</param>
            <returns>A <see cref="T:System.Threading.Tasks.Task" /> representing the ongoing operation.</returns>
            <remarks>
            <para>When this delegate is called, the response's status code has already been set and the <see cref="M:EmbedIO.IHttpException.PrepareResponse(EmbedIO.IHttpContext)"/>
            method has already been called. The only thing left to do is preparing the response's content, according
            to the <see cref="P:EmbedIO.IHttpException.Message"/> property.</para>
            <para>Any exception thrown by a handler (even a HTTP exception) will go unhandled: the web server
            will not crash, but processing of the request will be aborted, and the response will be flushed as-is.
            In other words, it is not a good ides to <c>throw HttpException.NotFound()</c> (or similar)
            from a handler.</para>
            </remarks>
        </member>
        <member name="T:EmbedIO.HttpHeaderNames">
            <summary>
            Exposes known HTTP header names.
            </summary>
            <remarks>
            <para>The constants in this class have been extracted from a list of known HTTP header names.
            The presence of a header name in this class is not a guarantee that EmbedIO supports,
            or even recognizes, it. Refer to the documentation for each module for information about supported
            headers.</para>
            </remarks>
        </member>
        <member name="F:EmbedIO.HttpHeaderNames.Accept">
            <summary>
            The <c>Accept</c> HTTP header.
            </summary>
        </member>
        <member name="F:EmbedIO.HttpHeaderNames.AcceptCharset">
            <summary>
            The <c>Accept-Charset</c> HTTP header.
            </summary>
        </member>
        <member name="F:EmbedIO.HttpHeaderNames.AcceptEncoding">
            <summary>
            The <c>Accept-Encoding</c> HTTP header.
            </summary>
        </member>
        <member name="F:EmbedIO.HttpHeaderNames.AcceptLanguage">
            <summary>
            The <c>Accept-Language</c> HTTP header.
            </summary>
        </member>
        <member name="F:EmbedIO.HttpHeaderNames.AcceptPatch">
            <summary>
            The <c>Accept-Patch</c> HTTP header.
            </summary>
        </member>
        <member name="F:EmbedIO.HttpHeaderNames.AcceptRanges">
            <summary>
            The <c>Accept-Ranges</c> HTTP header.
            </summary>
        </member>
        <member name="F:EmbedIO.HttpHeaderNames.AccessControlAllowCredentials">
            <summary>
            The <c>Access-Control-Allow-Credentials</c> HTTP header.
            </summary>
        </member>
        <member name="F:EmbedIO.HttpHeaderNames.AccessControlAllowHeaders">
            <summary>
            The <c>Access-Control-Allow-Headers</c> HTTP header.
            </summary>
        </member>
        <member name="F:EmbedIO.HttpHeaderNames.AccessControlAllowMethods">
            <summary>
            The <c>Access-Control-Allow-Methods</c> HTTP header.
            </summary>
        </member>
        <member name="F:EmbedIO.HttpHeaderNames.AccessControlAllowOrigin">
            <summary>
            The <c>Access-Control-Allow-Origin</c> HTTP header.
            </summary>
        </member>
        <member name="F:EmbedIO.HttpHeaderNames.AccessControlExposeHeaders">
            <summary>
            The <c>Access-Control-Expose-Headers</c> HTTP header.
            </summary>
        </member>
        <member name="F:EmbedIO.HttpHeaderNames.AccessControlMaxAge">
            <summary>
            The <c>Access-Control-Max-Age</c> HTTP header.
            </summary>
        </member>
        <member name="F:EmbedIO.HttpHeaderNames.AccessControlRequestHeaders">
            <summary>
            The <c>Access-Control-Request-Headers</c> HTTP header.
            </summary>
        </member>
        <member name="F:EmbedIO.HttpHeaderNames.AccessControlRequestMethod">
            <summary>
            The <c>Access-Control-Request-Method</c> HTTP header.
            </summary>
        </member>
        <member name="F:EmbedIO.HttpHeaderNames.Age">
            <summary>
            The <c>Age</c> HTTP header.
            </summary>
        </member>
        <member name="F:EmbedIO.HttpHeaderNames.Allow">
            <summary>
            The <c>Allow</c> HTTP header.
            </summary>
        </member>
        <member name="F:EmbedIO.HttpHeaderNames.AltSvc">
            <summary>
            The <c>Alt-Svc</c> HTTP header.
            </summary>
        </member>
        <member name="F:EmbedIO.HttpHeaderNames.Authorization">
            <summary>
            The <c>Authorization</c> HTTP header.
            </summary>
        </member>
        <member name="F:EmbedIO.HttpHeaderNames.CacheControl">
            <summary>
            The <c>Cache-Control</c> HTTP header.
            </summary>
        </member>
        <member name="F:EmbedIO.HttpHeaderNames.Connection">
            <summary>
            The <c>Connection</c> HTTP header.
            </summary>
        </member>
        <member name="F:EmbedIO.HttpHeaderNames.ContentDisposition">
            <summary>
            The <c>Content-Disposition</c> HTTP header.
            </summary>
        </member>
        <member name="F:EmbedIO.HttpHeaderNames.ContentEncoding">
            <summary>
            The <c>Content-Encoding</c> HTTP header.
            </summary>
        </member>
        <member name="F:EmbedIO.HttpHeaderNames.ContentLanguage">
            <summary>
            The <c>Content-Language</c> HTTP header.
            </summary>
        </member>
        <member name="F:EmbedIO.HttpHeaderNames.ContentLength">
            <summary>
            The <c>Content-Length</c> HTTP header.
            </summary>
        </member>
        <member name="F:EmbedIO.HttpHeaderNames.ContentLocation">
            <summary>
            The <c>Content-Location</c> HTTP header.
            </summary>
        </member>
        <member name="F:EmbedIO.HttpHeaderNames.ContentMD5">
            <summary>
            The <c>Content-MD5</c> HTTP header.
            </summary>
        </member>
        <member name="F:EmbedIO.HttpHeaderNames.ContentRange">
            <summary>
            The <c>Content-Range</c> HTTP header.
            </summary>
        </member>
        <member name="F:EmbedIO.HttpHeaderNames.ContentSecurityPolicy">
            <summary>
            The <c>Content-Security-Policy</c> HTTP header.
            </summary>
        </member>
        <member name="F:EmbedIO.HttpHeaderNames.ContentType">
            <summary>
            The <c>Content-Type</c> HTTP header.
            </summary>
        </member>
        <member name="F:EmbedIO.HttpHeaderNames.Cookie">
            <summary>
            The <c>Cookie</c> HTTP header.
            </summary>
        </member>
        <member name="F:EmbedIO.HttpHeaderNames.Cookie2">
            <summary>
            The <c>Cookie2</c> HTTP header.
            </summary>
        </member>
        <member name="F:EmbedIO.HttpHeaderNames.Date">
            <summary>
            The <c>Date</c> HTTP header.
            </summary>
        </member>
        <member name="F:EmbedIO.HttpHeaderNames.ETag">
            <summary>
            The <c>ETag</c> HTTP header.
            </summary>
        </member>
        <member name="F:EmbedIO.HttpHeaderNames.Expect">
            <summary>
            The <c>Expect</c> HTTP header.
            </summary>
        </member>
        <member name="F:EmbedIO.HttpHeaderNames.Expires">
            <summary>
            The <c>Expires</c> HTTP header.
            </summary>
        </member>
        <member name="F:EmbedIO.HttpHeaderNames.From">
            <summary>
            The <c>From</c> HTTP header.
            </summary>
        </member>
        <member name="F:EmbedIO.HttpHeaderNames.Host">
            <summary>
            The <c>Host</c> HTTP header.
            </summary>
        </member>
        <member name="F:EmbedIO.HttpHeaderNames.IfMatch">
            <summary>
            The <c>If-Match</c> HTTP header.
            </summary>
        </member>
        <member name="F:EmbedIO.HttpHeaderNames.IfModifiedSince">
            <summary>
            The <c>If-Modified-Since</c> HTTP header.
            </summary>
        </member>
        <member name="F:EmbedIO.HttpHeaderNames.IfNoneMatch">
            <summary>
            The <c>If-None-Match</c> HTTP header.
            </summary>
        </member>
        <member name="F:EmbedIO.HttpHeaderNames.IfRange">
            <summary>
            The <c>If-Range</c> HTTP header.
            </summary>
        </member>
        <member name="F:EmbedIO.HttpHeaderNames.IfUnmodifiedSince">
            <summary>
            The <c>If-Unmodified-Since</c> HTTP header.
            </summary>
        </member>
        <member name="F:EmbedIO.HttpHeaderNames.KeepAlive">
            <summary>
            The <c>Keep-Alive</c> HTTP header.
            </summary>
        </member>
        <member name="F:EmbedIO.HttpHeaderNames.LastModified">
            <summary>
            The <c>Last-Modified</c> HTTP header.
            </summary>
        </member>
        <member name="F:EmbedIO.HttpHeaderNames.Link">
            <summary>
            The <c>Link</c> HTTP header.
            </summary>
        </member>
        <member name="F:EmbedIO.HttpHeaderNames.Location">
            <summary>
            The <c>Location</c> HTTP header.
            </summary>
        </member>
        <member name="F:EmbedIO.HttpHeaderNames.MaxForwards">
            <summary>
            The <c>Max-Forwards</c> HTTP header.
            </summary>
        </member>
        <member name="F:EmbedIO.HttpHeaderNames.Origin">
            <summary>
            The <c>Origin</c> HTTP header.
            </summary>
        </member>
        <member name="F:EmbedIO.HttpHeaderNames.P3P">
            <summary>
            The <c>P3P</c> HTTP header.
            </summary>
        </member>
        <member name="F:EmbedIO.HttpHeaderNames.Pragma">
            <summary>
            The <c>Pragma</c> HTTP header.
            </summary>
        </member>
        <member name="F:EmbedIO.HttpHeaderNames.ProxyAuthenticate">
            <summary>
            The <c>Proxy-Authenticate</c> HTTP header.
            </summary>
        </member>
        <member name="F:EmbedIO.HttpHeaderNames.ProxyAuthorization">
            <summary>
            The <c>Proxy-Authorization</c> HTTP header.
            </summary>
        </member>
        <member name="F:EmbedIO.HttpHeaderNames.ProxyConnection">
            <summary>
            The <c>Proxy-Connection</c> HTTP header.
            </summary>
        </member>
        <member name="F:EmbedIO.HttpHeaderNames.PublicKeyPins">
            <summary>
            The <c>Public-Key-Pins</c> HTTP header.
            </summary>
        </member>
        <member name="F:EmbedIO.HttpHeaderNames.Range">
            <summary>
            The <c>Range</c> HTTP header.
            </summary>
        </member>
        <member name="F:EmbedIO.HttpHeaderNames.Referer">
            <summary>
            The <c>Referer</c> HTTP header.
            </summary>
            <remarks>
            <para>The incorrect spelling ("Referer" instead of "Referrer") is intentional
            and has historical reasons.</para>
            <para>See the "Etymology" section of <a href="https://en.wikipedia.org/wiki/HTTP_referer">the Wikipedia article</a>
            on this header for more information.</para>
            </remarks>
        </member>
        <member name="F:EmbedIO.HttpHeaderNames.RetryAfter">
            <summary>
            The <c>Retry-After</c> HTTP header.
            </summary>
        </member>
        <member name="F:EmbedIO.HttpHeaderNames.SecWebSocketAccept">
            <summary>
            The <c>Sec-WebSocket-Accept</c> HTTP header.
            </summary>
        </member>
        <member name="F:EmbedIO.HttpHeaderNames.SecWebSocketExtensions">
            <summary>
            The <c>Sec-WebSocket-Extensions</c> HTTP header.
            </summary>
        </member>
        <member name="F:EmbedIO.HttpHeaderNames.SecWebSocketKey">
            <summary>
            The <c>Sec-WebSocket-Key</c> HTTP header.
            </summary>
        </member>
        <member name="F:EmbedIO.HttpHeaderNames.SecWebSocketProtocol">
            <summary>
            The <c>Sec-WebSocket-Protocol</c> HTTP header.
            </summary>
        </member>
        <member name="F:EmbedIO.HttpHeaderNames.SecWebSocketVersion">
            <summary>
            The <c>Sec-WebSocket-Version</c> HTTP header.
            </summary>
        </member>
        <member name="F:EmbedIO.HttpHeaderNames.Server">
            <summary>
            The <c>Server</c> HTTP header.
            </summary>
        </member>
        <member name="F:EmbedIO.HttpHeaderNames.SetCookie">
            <summary>
            The <c>Set-Cookie</c> HTTP header.
            </summary>
        </member>
        <member name="F:EmbedIO.HttpHeaderNames.SetCookie2">
            <summary>
            The <c>Set-Cookie2</c> HTTP header.
            </summary>
        </member>
        <member name="F:EmbedIO.HttpHeaderNames.StrictTransportSecurity">
            <summary>
            The <c>Strict-Transport-Security</c> HTTP header.
            </summary>
        </member>
        <member name="F:EmbedIO.HttpHeaderNames.TE">
            <summary>
            The <c>TE</c> HTTP header.
            </summary>
        </member>
        <member name="F:EmbedIO.HttpHeaderNames.TSV">
            <summary>
            The <c>TSV</c> HTTP header.
            </summary>
        </member>
        <member name="F:EmbedIO.HttpHeaderNames.Trailer">
            <summary>
            The <c>Trailer</c> HTTP header.
            </summary>
        </member>
        <member name="F:EmbedIO.HttpHeaderNames.TransferEncoding">
            <summary>
            The <c>Transfer-Encoding</c> HTTP header.
            </summary>
        </member>
        <member name="F:EmbedIO.HttpHeaderNames.Upgrade">
            <summary>
            The <c>Upgrade</c> HTTP header.
            </summary>
        </member>
        <member name="F:EmbedIO.HttpHeaderNames.UpgradeInsecureRequests">
            <summary>
            The <c>Upgrade-Insecure-Requests</c> HTTP header.
            </summary>
        </member>
        <member name="F:EmbedIO.HttpHeaderNames.UserAgent">
            <summary>
            The <c>User-Agent</c> HTTP header.
            </summary>
        </member>
        <member name="F:EmbedIO.HttpHeaderNames.Vary">
            <summary>
            The <c>Vary</c> HTTP header.
            </summary>
        </member>
        <member name="F:EmbedIO.HttpHeaderNames.Via">
            <summary>
            The <c>Via</c> HTTP header.
            </summary>
        </member>
        <member name="F:EmbedIO.HttpHeaderNames.WWWAuthenticate">
            <summary>
            The <c>WWW-Authenticate</c> HTTP header.
            </summary>
        </member>
        <member name="F:EmbedIO.HttpHeaderNames.Warning">
            <summary>
            The <c>Warning</c> HTTP header.
            </summary>
        </member>
        <member name="F:EmbedIO.HttpHeaderNames.XAspNetVersion">
            <summary>
            The <c>X-AspNet-Version</c> HTTP header.
            </summary>
        </member>
        <member name="F:EmbedIO.HttpHeaderNames.XContentDuration">
            <summary>
            The <c>X-Content-Duration</c> HTTP header.
            </summary>
        </member>
        <member name="F:EmbedIO.HttpHeaderNames.XContentTypeOptions">
            <summary>
            The <c>X-Content-Type-Options</c> HTTP header.
            </summary>
        </member>
        <member name="F:EmbedIO.HttpHeaderNames.XFrameOptions">
            <summary>
            The <c>X-Frame-Options</c> HTTP header.
            </summary>
        </member>
        <member name="F:EmbedIO.HttpHeaderNames.XMSEdgeRef">
            <summary>
            The <c>X-MSEdge-Ref</c> HTTP header.
            </summary>
        </member>
        <member name="F:EmbedIO.HttpHeaderNames.XPoweredBy">
            <summary>
            The <c>X-Powered-By</c> HTTP header.
            </summary>
        </member>
        <member name="F:EmbedIO.HttpHeaderNames.XRequestID">
            <summary>
            The <c>X-Request-ID</c> HTTP header.
            </summary>
        </member>
        <member name="F:EmbedIO.HttpHeaderNames.XUACompatible">
            <summary>
            The <c>X-UA-Compatible</c> HTTP header.
            </summary>
        </member>
        <member name="T:EmbedIO.HttpListenerMode">
            <summary>
            Defines the HTTP listeners available for use in a <see cref="T:EmbedIO.WebServer"/>.
            </summary>
        </member>
        <member name="F:EmbedIO.HttpListenerMode.EmbedIO">
            <summary>
            Use EmbedIO's internal HTTP listener implementation,
            based on Mono's <c>System.Net.HttpListener</c>.
            </summary>
        </member>
        <member name="F:EmbedIO.HttpListenerMode.Microsoft">
            <summary>
            Use the <see cref="T:System.Net.HttpListener"/> class
            provided by the .NET runtime in use.
            </summary>
        </member>
        <member name="T:EmbedIO.HttpNotAcceptableException">
            <summary>
            When thrown, breaks the request handling control flow
            and sends a redirection response to the client.
            </summary>
        </member>
        <member name="M:EmbedIO.HttpNotAcceptableException.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:EmbedIO.HttpNotAcceptableException"/> class,
            without specifying a value for the response's <c>Vary</c> header.
            </summary>
        </member>
        <member name="M:EmbedIO.HttpNotAcceptableException.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:EmbedIO.HttpNotAcceptableException"/> class.
            </summary>
            <param name="vary">
            <para>A value, or a comma-separated list of values, to set the response's <c>Vary</c> header to.</para>
            <para>Although not specified in <see href="https://tools.ietf.org/html/rfc7231#section-6.5.6">RFC7231</see>,
            this may help the client to understand why the request has been rejected.</para>
            <para>If this parameter is <see langword="null"/> or the empty string, the response's <c>Vary</c> header
            is not set.</para>
            </param>
        </member>
        <member name="P:EmbedIO.HttpNotAcceptableException.Vary">
            <summary>
            Gets the value, or comma-separated list of values, to be set
            on the response's <c>Vary</c> header.
            </summary>
            <remarks>
            <para>If the empty string has been passed to the <see cref="M:EmbedIO.HttpNotAcceptableException.#ctor(System.String)"/>
            constructor, the value of this property is <see langword="null"/>.</para>
            </remarks>
        </member>
        <member name="M:EmbedIO.HttpNotAcceptableException.PrepareResponse(EmbedIO.IHttpContext)">
            <inheritdoc />
        </member>
        <member name="T:EmbedIO.HttpRangeNotSatisfiableException">
            <summary>
            When thrown, breaks the request handling control flow
            and sends a redirection response to the client.
            </summary>
        </member>
        <member name="M:EmbedIO.HttpRangeNotSatisfiableException.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:EmbedIO.HttpRangeNotSatisfiableException"/> class.
            without specifying a value for the response's <c>Content-Range</c> header.
            </summary>
        </member>
        <member name="M:EmbedIO.HttpRangeNotSatisfiableException.#ctor(System.Nullable{System.Int64})">
            <summary>
            Initializes a new instance of the <see cref="T:EmbedIO.HttpRangeNotSatisfiableException"/> class.
            </summary>
            <param name="contentLength">The total length of the requested resource, expressed in bytes,
            or <see langword="null"/> to omit the <c>Content-Range</c> header in the response.</param>
        </member>
        <member name="P:EmbedIO.HttpRangeNotSatisfiableException.ContentLength">
            <summary>
            Gets the total content length to be specified
            on the response's <c>Content-Range</c> header.
            </summary>
        </member>
        <member name="M:EmbedIO.HttpRangeNotSatisfiableException.PrepareResponse(EmbedIO.IHttpContext)">
            <inheritdoc />
        </member>
        <member name="T:EmbedIO.HttpRedirectException">
            <summary>
            When thrown, breaks the request handling control flow
            and sends a redirection response to the client.
            </summary>
        </member>
        <member name="M:EmbedIO.HttpRedirectException.#ctor(System.String,System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:EmbedIO.HttpRedirectException"/> class.
            </summary>
            <param name="location">The redirection target.</param>
            <param name="statusCode">
            <para>The status code to set on the response, in the range from 300 to 399.</para>
            <para>By default, status code 302 (<c>Found</c>) is used.</para>
            </param>
            <exception cref="T:System.ArgumentException"><paramref name="statusCode"/> is not in the 300-399 range.</exception>
        </member>
        <member name="M:EmbedIO.HttpRedirectException.#ctor(System.String,System.Net.HttpStatusCode)">
            <summary>
            Initializes a new instance of the <see cref="T:EmbedIO.HttpRedirectException"/> class.
            </summary>
            <param name="location">The redirection target.</param>
            <param name="statusCode">One of the redirection status codes, to be set on the response.</param>
            <exception cref="T:System.ArgumentException"><paramref name="statusCode"/> is not a redirection status code.</exception>
        </member>
        <member name="P:EmbedIO.HttpRedirectException.Location">
            <summary>
            Gets the URL where the client will be redirected.
            </summary>
        </member>
        <member name="M:EmbedIO.HttpRedirectException.PrepareResponse(EmbedIO.IHttpContext)">
            <inheritdoc />
        </member>
        <member name="T:EmbedIO.HttpRequestExtensions">
            <summary>
            Provides extension methods for types implementing <see cref="T:EmbedIO.IHttpRequest"/>.
            </summary>
        </member>
        <member name="M:EmbedIO.HttpRequestExtensions.SafeGetRemoteEndpointStr(EmbedIO.IHttpRequest)">
            <summary>
            <para>Returns a string representing the remote IP address and port of an <see cref="T:EmbedIO.IHttpRequest"/> interface.</para>
            <para>This method can be called even on a <see langword="null"/> interface, or one that has no
            remote end point, or no remote address; it will always return a non-<see langword="null"/>,
            non-empty string.</para>
            </summary>
            <param name="this">The <see cref="T:EmbedIO.IHttpRequest"/> on which this method is called.</param>
            <returns>
            If <paramref name="this"/> is <see langword="null"/>, or its <see cref="P:EmbedIO.IHttpRequest.RemoteEndPoint">RemoteEndPoint</see>
            is <see langword="null"/>, the string <c>"&lt;null&gt;</c>; otherwise, the remote end point's
            <see cref="P:System.Net.IPEndPoint.Address">Address</see> (or the string <c>"&lt;???&gt;"</c> if it is <see langword="null"/>)
            followed by a colon and the <see cref="P:System.Net.IPEndPoint.Port">Port</see> number.
            </returns>
        </member>
        <member name="M:EmbedIO.HttpRequestExtensions.TryNegotiateContentEncoding(EmbedIO.IHttpRequest,System.Boolean,EmbedIO.CompressionMethod@,System.Action{EmbedIO.IHttpResponse}@)">
            <summary>
            <para>Attempts to proactively negotiate a compression method for a response,
            based on a request's <c>Accept-Encoding</c> header (or lack of it).</para>
            </summary>
            <param name="this">The <see cref="T:EmbedIO.IHttpRequest"/> on which this method is called.</param>
            <param name="preferCompression"><see langword="true"/> if sending compressed data is preferred over
            sending non-compressed data; otherwise, <see langword="false"/>.</param>
            <param name="compressionMethod">When this method returns, the compression method to use for the response,
            if content negotiation is successful. This parameter is passed uninitialized.</param>
            <param name="prepareResponse">When this method returns, a callback that prepares data in an <see cref="T:EmbedIO.IHttpResponse"/>
            according to the result of content negotiation. This parameter is passed uninitialized.</param>
            <returns><see langword="true"/> if content negotiation is successful;
            otherwise, <see langword="false"/>.</returns>
            <remarks>
            <para>If this method returns <see langword="true"/>, the <paramref name="prepareResponse"/> callback
            will set appropriate response headers to reflect the results of content negotiation.</para>
            <para>If this method returns <see langword="false"/>, the <paramref name="prepareResponse"/> callback
            will throw a <see cref="T:EmbedIO.HttpNotAcceptableException"/> to send a <c>406 Not Acceptable</c> response
            with the <c>Vary</c> header set to <c>Accept-Encoding</c>,
            so that the client may know the reason why the request has been rejected.</para>
            <para>If <paramref name="this"/> has no<c>Accept-Encoding</c> header, this method
            always returns <see langword="true"/> and sets <paramref name="compressionMethod"/>
            to <see cref="F:EmbedIO.CompressionMethod.None"/>.</para>
            </remarks>
            <seealso cref="M:EmbedIO.HttpNotAcceptableException.#ctor(System.String)"/>
        </member>
        <member name="M:EmbedIO.HttpRequestExtensions.CheckIfNoneMatch(EmbedIO.IHttpRequest,System.String,System.Boolean@)">
            <summary>
            <para>Checks whether an <c>If-None-Match</c> header exists in a request
            and, if so, whether it contains a given entity tag.</para>
            <para>See <see href="https://tools.ietf.org/html/rfc7232#section-3.2">RFC7232, Section 3.2</see>
            for a normative reference; however, see the Remarks section for more information
            about the RFC compliance of this method.</para>
            </summary>
            <param name="this">The <see cref="T:EmbedIO.IHttpRequest"/> on which this method is called.</param>
            <param name="entityTag">The entity tag.</param>
            <param name="headerExists">When this method returns, a value that indicates whether an
            <c>If-None-Match</c> header is present in <paramref name="this"/>, regardless of the method's
            return value. This parameter is passed uninitialized.</param>
            <returns><see langword="true"/> if an <c>If-None-Match</c> header is present in
            <paramref name="this"/> and one of the entity tags listed in it is equal to <paramref name="entityTag"/>;
            <see langword="false"/> otherwise.</returns>
            <remarks>
            <para><see href="https://tools.ietf.org/html/rfc7232#section-3.2">RFC7232, Section 3.2</see>
            states that a weak comparison function (as defined in
            <see href="https://tools.ietf.org/html/rfc7232#section-2.3.2">RFC7232, Section 2.3.2</see>)
            must be used for <c>If-None-Match</c>. That would mean parsing every entity tag, at least minimally,
            to determine whether it is a "weak" or "strong" tag. Since EmbedIO currently generates only
            "strong" tags, this method uses the default string comparer instead.</para>
            <para>The behavior of this method is thus not, strictly speaking, RFC7232-compliant;
            it works, though, with entity tags generated by EmbedIO.</para>
            </remarks>
        </member>
        <member name="M:EmbedIO.HttpRequestExtensions.CheckIfModifiedSince(EmbedIO.IHttpRequest,System.DateTime,System.Boolean@)">
            <summary>
            <para>Checks whether an <c>If-Modified-Since</c> header exists in a request
            and, if so, whether its value is a date and time more recent or equal to
            a given <see cref="T:System.DateTime"/>.</para>
            <para>See <see href="https://tools.ietf.org/html/rfc7232#section-3.3">RFC7232, Section 3.3</see>
            for a normative reference.</para>
            </summary>
            <param name="this">The <see cref="T:EmbedIO.IHttpRequest"/> on which this method is called.</param>
            <param name="lastModifiedUtc">A date and time value, in Coordinated Universal Time,
            expressing the last time a resource was modified.</param>
            <param name="headerExists">When this method returns, a value that indicates whether an
            <c>If-Modified-Since</c> header is present in <paramref name="this"/>, regardless of the method's
            return value. This parameter is passed uninitialized.</param>
            <returns><see langword="true"/> if an <c>If-Modified-Since</c> header is present in
            <paramref name="this"/> and its value is a date and time more recent or equal to <paramref name="lastModifiedUtc"/>;
            <see langword="false"/> otherwise.</returns>
        </member>
        <member name="M:EmbedIO.HttpRequestExtensions.IsRangeRequest(EmbedIO.IHttpRequest,System.Int64,System.String,System.DateTime,System.Int64@,System.Int64@)">
            <summary>
            <para>Checks whether a <c>Range</c> header exists in a request
            and, if so, determines whether it is possible to send a <c>206 Partial Content</c> response.</para>
            <para>See <see href="https://tools.ietf.org/html/rfc7233">RFC7233</see>
            for a normative reference; however, see the Remarks section for more information
            about the RFC compliance of this method.</para>
            </summary>
            <param name="this">The <see cref="T:EmbedIO.IHttpRequest"/> on which this method is called.</param>
            <param name="contentLength">The total length, in bytes, of the response entity, i.e.
            what would be sent in a <c>200 OK</c> response.</param>
            <param name="entityTag">An entity tag representing the response entity. This value is checked against
            the <c>If-Range</c> header, if it is present.</param>
            <param name="lastModifiedUtc">The date and time value, in Coordinated Universal Time,
            expressing the last modification time of the resource entity. This value is checked against
            the <c>If-Range</c> header, if it is present.</param>
            <param name="start">When this method returns <see langword="true"/>, the start of the requested byte range.
            This parameter is passed uninitialized.</param>
            <param name="upperBound">
            <para>When this method returns <see langword="true"/>, the upper bound of the requested byte range.
            This parameter is passed uninitialized.</para>
            <para>Note that the upper bound of a range is NOT the sum of the range's start and length;
            for example, a range expressed as <c>bytes=0-99</c> has a start of 0, an upper bound of 99,
            and a length of 100 bytes.</para>
            </param>
            <returns>
            <para>This method returns <see langword="true"/> if the following conditions are satisfied:</para>
            <list type="bullet">
            <item><description>>the request's HTTP method is <c>GET</c>;</description></item>
            <item><description>>a <c>Range</c> header is present in the request;</description></item>
            <item><description>>either no <c>If-Range</c> header is present in the request, or it
            specifies an entity tag equal to <paramref name="entityTag"/>, or a UTC date and time
            equal to <paramref name="lastModifiedUtc"/>;</description></item>
            <item><description>>the <c>Range</c> header specifies exactly one range;</description></item>
            <item><description>>the specified range is entirely contained in the range from 0 to <paramref name="contentLength"/> - 1.</description></item>
            </list>
            <para>If the last condition is not satisfied, i.e. the specified range start and/or upper bound
            are out of the range from 0 to <paramref name="contentLength"/> - 1, this method does not return;
            it throws a <see cref="T:EmbedIO.HttpRangeNotSatisfiableException"/> instead.</para>
            <para>If any of the other conditions are not satisfied, this method returns <see langword="false"/>.</para>
            </returns>
            <remarks>
            <para>According to <see href="https://tools.ietf.org/html/rfc7233#section-3.1">RFC7233, Section 3.1</see>,
            there are several conditions under which a server may ignore or reject a range request; therefore,
            clients are (or should be) prepared to receive a <c>200 OK</c> response with the whole response
            entity instead of the requested range(s). For this reason, until the generation of
            <c>multipart/byteranges</c> responses is implemented in EmbedIO, this method will ignore
            range requests specifying more than one range, even if this behavior is not, strictly speaking,
            RFC7233-compliant.</para>
            <para>To make clients aware that range requests are accepted for a resource, every <c>200 OK</c>
            (or <c>304 Not Modified</c>) response for the same resource should include an <c>Accept-Ranges</c>
            header with the string <c>bytes</c> as value.</para>
            </remarks>
        </member>
        <member name="T:EmbedIO.HttpResponseExtensions">
            <summary>
            Provides extension methods for types implementing <see cref="T:EmbedIO.IHttpResponse"/>.
            </summary>
        </member>
        <member name="M:EmbedIO.HttpResponseExtensions.DisableCaching(EmbedIO.IHttpResponse)">
            <summary>
            Sets the necessary headers to disable caching of a response on the client side.
            </summary>
            <param name="this">The <see cref="T:EmbedIO.IHttpResponse"/> interface on which this method is called.</param>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
        </member>
        <member name="M:EmbedIO.HttpResponseExtensions.SetEmptyResponse(EmbedIO.IHttpResponse,System.Int32)">
            <summary>
            Prepares a standard response without a body for the specified status code.
            </summary>
            <param name="this">The <see cref="T:EmbedIO.IHttpResponse"/> interface on which this method is called.</param>
            <param name="statusCode">The HTTP status code of the response.</param>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentException">There is no standard status description for <paramref name="statusCode"/>.</exception>
        </member>
        <member name="T:EmbedIO.HttpStatusDescription">
            <summary>
            <para>Provides standard HTTP status descriptions.</para>
            <para>Data contained in this class comes from the following sources:</para>
            <list type="bullet">
            <item><description><see href="https://tools.ietf.org/html/rfc7231#section-6">RFC7231 Section 6</see> (HTTP/1.1 Semantics and Content)</description></item>
            <item><description><see href="https://tools.ietf.org/html/rfc6585">RFC6585</see> (Additional HTTP Status Codes)</description></item>
            <item><description><see href="https://tools.ietf.org/html/rfc2774#section-7">RFC2774 Section 7</see> (An HTTP Extension Framework)</description></item>
            <item><description><see href="https://tools.ietf.org/html/rfc7540#section-9.1.2">RFC7540 Section 9.1.2</see> (HTTP/2)</description></item>
            <item><description><see href="https://tools.ietf.org/html/rfc4918#section-11">RFC4918 Section 11</see> (WebDAV)</description></item>
            <item><description><see href="https://tools.ietf.org/html/rfc5842#section-7">RFC5842 Section 7</see> (Binding Extensions to WebDAV)</description></item>
            <item><description><see href="https://tools.ietf.org/html/rfc7538#section-3">RFC7538 Section 3</see> (HTTP Status Code 308)</description></item>
            <item><description><see href="https://tools.ietf.org/html/rfc3229#section-10.4.1">RFC3229 Section 10.4.1</see> (Delta encoding in HTTP)</description></item>
            <item><description><see href="https://tools.ietf.org/html/rfc8297#section-2">RFC8297 Section 2</see> (Early Hints)</description></item>
            <item><description><see href="https://tools.ietf.org/html/rfc7725#section-3">RFC7725 Section 3</see> (HTTP-status-451)</description></item>
            <item><description><see href="https://tools.ietf.org/html/rfc2295#section-8.1">RFC2295 Section 8.1</see> (Transparent Content Negotiation)</description></item>
            </list>
            </summary>
        </member>
        <member name="M:EmbedIO.HttpStatusDescription.TryGet(System.Net.HttpStatusCode,System.String@)">
            <summary>
            Attempts to get the standard status description for a <see cref="T:System.Net.HttpStatusCode"/>.
            </summary>
            <param name="code">The HTTP status code for which the standard description
            is to be retrieved.</param>
            <param name="description">When this method returns, the standard HTTP status description
            for the specified <paramref name="code"/> if it was found, or <see langword="null"/>
            if it was not found. This parameter is passed uninitialized.</param>
            <returns><see langword="true"/> if the specified <paramref name="code"/> was found
            in the list of HTTP status codes for which the standard description is known;
            otherwise, <see langword="false"/>.</returns>
            <seealso cref="M:EmbedIO.HttpStatusDescription.TryGet(System.Int32,System.String@)"/>
            <seealso cref="M:EmbedIO.HttpStatusDescription.Get(System.Net.HttpStatusCode)"/>
        </member>
        <member name="M:EmbedIO.HttpStatusDescription.TryGet(System.Int32,System.String@)">
            <summary>
            Attempts to get the standard status description for a HTTP status code
            specified as an <see langword="int"/>.
            </summary>
            <param name="code">The HTTP status code for which the standard description
            is to be retrieved.</param>
            <param name="description">When this method returns, the standard HTTP status description
            for the specified <paramref name="code"/> if it was found, or <see langword="null"/>
            if it was not found. This parameter is passed uninitialized.</param>
            <returns><see langword="true"/> if the specified <paramref name="code"/> was found
            in the list of HTTP status codes for which the standard description is known;
            otherwise, <see langword="false"/>.</returns>
            <seealso cref="M:EmbedIO.HttpStatusDescription.TryGet(System.Net.HttpStatusCode,System.String@)"/>
            <seealso cref="M:EmbedIO.HttpStatusDescription.Get(System.Int32)"/>
        </member>
        <member name="M:EmbedIO.HttpStatusDescription.Get(System.Net.HttpStatusCode)">
            <summary>
            Returns the standard status description for a <see cref="T:System.Net.HttpStatusCode"/>.
            </summary>
            <param name="code">The HTTP status code for which the standard description
            is to be retrieved.</param>
            <returns>The standard HTTP status description for the specified <paramref name="code"/>
            if it was found, or <see langword="null"/> if it was not found.</returns>
        </member>
        <member name="M:EmbedIO.HttpStatusDescription.Get(System.Int32)">
            <summary>
            Returns the standard status description for a HTTP status code
            specified as an <see langword="int"/>.
            </summary>
            <param name="code">The HTTP status code for which the standard description
            is to be retrieved.</param>
            <returns>The standard HTTP status description for the specified <paramref name="code"/>
            if it was found, or <see langword="null"/> if it was not found.</returns>
        </member>
        <member name="T:EmbedIO.HttpVerbs">
            <summary>
            Enumerates the different HTTP Verbs.
            </summary>
        </member>
        <member name="F:EmbedIO.HttpVerbs.Any">
            <summary>
            Wildcard Method
            </summary>
        </member>
        <member name="F:EmbedIO.HttpVerbs.Delete">
            <summary>
            DELETE Method
            </summary>
        </member>
        <member name="F:EmbedIO.HttpVerbs.Get">
            <summary>
            GET Method
            </summary>
        </member>
        <member name="F:EmbedIO.HttpVerbs.Head">
            <summary>
            HEAD method
            </summary>
        </member>
        <member name="F:EmbedIO.HttpVerbs.Options">
            <summary>
            OPTIONS method
            </summary>
        </member>
        <member name="F:EmbedIO.HttpVerbs.Patch">
            <summary>
            PATCH method
            </summary>
        </member>
        <member name="F:EmbedIO.HttpVerbs.Post">
            <summary>
            POST method
            </summary>
        </member>
        <member name="F:EmbedIO.HttpVerbs.Put">
            <summary>
            PUT method
            </summary>
        </member>
        <member name="T:EmbedIO.ICookieCollection">
            <summary>
            Interface for Cookie Collection.
            </summary>
            <seealso cref="T:System.Collections.ICollection" />
        </member>
        <member name="P:EmbedIO.ICookieCollection.Item(System.String)">
            <summary>
            Gets the <see cref="T:System.Net.Cookie"/> with the specified name.
            </summary>
            <value>
            The <see cref="T:System.Net.Cookie"/>.
            </value>
            <param name="name">The name.</param>
            <returns>The cookie matching the specified name.</returns>
        </member>
        <member name="M:EmbedIO.ICookieCollection.Contains(System.Net.Cookie)">
            <summary>
            Determines whether this <see cref="T:EmbedIO.ICookieCollection"/> contains the specified <see cref="T:System.Net.Cookie"/>.
            </summary>
            <param name="cookie">The cookie to find in the <see cref="T:EmbedIO.ICookieCollection"/>.</param>
            <returns>
            <see langword="true"/> if this <see cref="T:EmbedIO.ICookieCollection"/> contains the specified <paramref name="cookie"/>;
            otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="M:EmbedIO.ICookieCollection.CopyTo(System.Net.Cookie[],System.Int32)">
            <summary>
            Copies the elements of this <see cref="T:EmbedIO.ICookieCollection"/> to a <see cref="T:System.Net.Cookie"/> array
            starting at the specified index of the target array.
            </summary>
            <param name="array">The target <see cref="T:System.Net.Cookie"/> array to which the <see cref="T:EmbedIO.ICookieCollection"/> will be copied.</param>
            <param name="index">The zero-based index in the target <paramref name="array"/> where copying begins.</param>
        </member>
        <member name="M:EmbedIO.ICookieCollection.Add(System.Net.Cookie)">
            <summary>
            Adds the specified cookie.
            </summary>
            <param name="cookie">The cookie.</param>
        </member>
        <member name="T:EmbedIO.IHttpContext">
            <summary>
            Represents the context of a HTTP(s) request being handled by a web server.
            </summary>
        </member>
        <member name="P:EmbedIO.IHttpContext.Id">
            <summary>
            Gets a unique identifier for a HTTP context.
            </summary>
        </member>
        <member name="P:EmbedIO.IHttpContext.CancellationToken">
            <summary>
            Gets a <see cref="P:EmbedIO.IHttpContext.CancellationToken" /> used to stop processing of this context.
            </summary>
        </member>
        <member name="P:EmbedIO.IHttpContext.LocalEndPoint">
            <summary>
            Gets the server IP address and port number to which the request is directed.
            </summary>
        </member>
        <member name="P:EmbedIO.IHttpContext.RemoteEndPoint">
            <summary>
            Gets the client IP address and port number from which the request originated.
            </summary>
        </member>
        <member name="P:EmbedIO.IHttpContext.Request">
            <summary>
            Gets the HTTP request.
            </summary>
        </member>
        <member name="P:EmbedIO.IHttpContext.Route">
            <summary>
            Gets the route matched by the requested URL path.
            </summary>
        </member>
        <member name="P:EmbedIO.IHttpContext.RequestedPath">
            <summary>
            Gets the requested path, relative to the innermost module's base path.
            </summary>
            <remarks>
            <para>This property derives from the path specified in the requested URL, stripped of the
            <see cref="P:EmbedIO.IWebModule.BaseRoute">BaseRoute</see> of the handling module.</para>
            <para>This property is in itself a valid URL path, including an initial
            slash (<c>/</c>) character.</para>
            </remarks>
        </member>
        <member name="P:EmbedIO.IHttpContext.Response">
            <summary>
            Gets the HTTP response object.
            </summary>
        </member>
        <member name="P:EmbedIO.IHttpContext.User">
            <summary>
            Gets the user.
            </summary>
        </member>
        <member name="P:EmbedIO.IHttpContext.Session">
            <summary>
            Gets the session proxy associated with this context.
            </summary>
        </member>
        <member name="P:EmbedIO.IHttpContext.SupportCompressedRequests">
            <summary>
            Gets a value indicating whether compressed request bodies are supported.
            </summary>
            <seealso cref="P:EmbedIO.WebServerOptionsBase.SupportCompressedRequests"/>
        </member>
        <member name="P:EmbedIO.IHttpContext.Items">
            <summary>
            Gets the dictionary of data to pass trough the EmbedIO pipeline.
            </summary>
        </member>
        <member name="P:EmbedIO.IHttpContext.Age">
            <summary>
            Gets the elapsed time, expressed in milliseconds, since the creation of this context.
            </summary>
        </member>
        <member name="P:EmbedIO.IHttpContext.IsHandled">
            <summary>
            <para>Gets a value indicating whether this <see cref="T:EmbedIO.IHttpContext"/>
            has been completely handled, so that no further processing is required.</para>
            <para>When a HTTP context is created, this property is <see langword="false" />;
            as soon as it is set to <see langword="true" />, the context is not
            passed to any further module's handler for processing.</para>
            <para>Once it becomes <see langword="true" />, this property is guaranteed
            to never become <see langword="false" /> again.</para>
            </summary>
            <remarks>
            <para>When a module's <see cref="P:EmbedIO.IWebModule.IsFinalHandler">IsFinalHandler</see> property is
            <see langword="true" />, this property is set to <see langword="true" /> after the <see cref="T:System.Threading.Tasks.Task" />
            returned by the module's <see cref="M:EmbedIO.IWebModule.HandleRequestAsync(EmbedIO.IHttpContext)">HandleRequestAsync</see> method
            is completed.</para>
            </remarks>
            <seealso cref="M:EmbedIO.IHttpContext.SetHandled" />
            <seealso cref="P:EmbedIO.IWebModule.IsFinalHandler"/>
        </member>
        <member name="M:EmbedIO.IHttpContext.SetHandled">
            <summary>
            <para>Marks this context as handled, so that it will not be
            processed by any further module.</para>
            </summary>
            <remarks>
            <para>Calling this method from the <see cref="M:EmbedIO.IWebModule.HandleRequestAsync(EmbedIO.IHttpContext)" />
            or <see cref="M:EmbedIO.WebModuleBase.OnRequestAsync(EmbedIO.IHttpContext)" /> of a module whose
            <see cref="P:EmbedIO.IWebModule.IsFinalHandler" /> property is <see langword="true" />
            is redundant and has no effect.</para>
            </remarks>
            <seealso cref="P:EmbedIO.IHttpContext.IsHandled"/>
            <seealso cref="P:EmbedIO.IWebModule.IsFinalHandler"/>
        </member>
        <member name="M:EmbedIO.IHttpContext.OnClose(System.Action{EmbedIO.IHttpContext})">
            <summary>
            Registers a callback to be called when processing is finished on a context.
            </summary>
            <param name="callback">The callback.</param>
        </member>
        <member name="T:EmbedIO.IHttpContextHandler">
            <summary>
            <para>Represents an object that can handle a HTTP context.</para>
            <para>This API supports the EmbedIO infrastructure and is not intended to be used directly from your code.</para>
            </summary>
        </member>
        <member name="M:EmbedIO.IHttpContextHandler.HandleContextAsync(EmbedIO.IHttpContextImpl)">
            <summary>
            <para>Asynchronously handles a HTTP context, generating a suitable response
            for an incoming request.</para>
            <para>This API supports the EmbedIO infrastructure and is not intended to be used directly from your code.</para>
            </summary>
            <param name="context">The HTTP context.</param>
            <returns>A <see cref="T:System.Threading.Tasks.Task"/> representing the ongoing operation.</returns>
        </member>
        <member name="T:EmbedIO.IHttpContextImpl">
            <summary>
            <para>Represents a HTTP context implementation, i.e. a HTTP context as seen internally by EmbedIO.</para>
            <para>This API mainly supports the EmbedIO infrastructure; it is not intended to be used directly from your code,
            unless to address specific needs in the implementation of EmbedIO plug-ins (e.g. modules).</para>
            </summary>
            <seealso cref="T:EmbedIO.IHttpContext" />
        </member>
        <member name="P:EmbedIO.IHttpContextImpl.CancellationToken">
            <summary>
            <para>Gets or sets a <see cref="P:EmbedIO.IHttpContextImpl.CancellationToken" /> used to stop processing of this context.</para>
            <para>This API supports the EmbedIO infrastructure and is not intended to be used directly from your code.</para>
            </summary>
        </member>
        <member name="P:EmbedIO.IHttpContextImpl.Route">
            <summary>
            Gets or sets the route matched by the requested URL path.
            </summary>
        </member>
        <member name="P:EmbedIO.IHttpContextImpl.Session">
            <summary>
            <para>Gets or sets the session proxy associated with this context.</para>
            <para>This API supports the EmbedIO infrastructure and is not intended to be used directly from your code.</para>
            </summary>
            <value>
            An <see cref="T:EmbedIO.Sessions.ISessionProxy"/> interface.
            </value>
        </member>
        <member name="P:EmbedIO.IHttpContextImpl.User">
            <summary>
            <para>Gets or sets the user.</para>
            <para>This API supports the EmbedIO infrastructure and is not intended to be used directly from your code.</para>
            </summary>
        </member>
        <member name="P:EmbedIO.IHttpContextImpl.SupportCompressedRequests">
            <summary>
            <para>Gets or sets a value indicating whether compressed request bodies are supported.</para>
            <para>This API supports the EmbedIO infrastructure and is not intended to be used directly from your code.</para>
            </summary>
            <seealso cref="P:EmbedIO.WebServerOptionsBase.SupportCompressedRequests"/>
        </member>
        <member name="P:EmbedIO.IHttpContextImpl.MimeTypeProviders">
            <summary>
            <para>Gets the MIME type providers.</para>
            <para>This API supports the EmbedIO infrastructure and is not intended to be used directly from your code.</para>
            </summary>
        </member>
        <member name="M:EmbedIO.IHttpContextImpl.Close">
            <summary>
            <para>Flushes and closes the response stream, then calls any registered close callbacks.</para>
            <para>This API supports the EmbedIO infrastructure and is not intended to be used directly from your code.</para>
            </summary>
            <seealso cref="M:EmbedIO.IHttpContext.OnClose(System.Action{EmbedIO.IHttpContext})"/>
        </member>
        <member name="M:EmbedIO.IHttpContextImpl.AcceptWebSocketAsync(System.Collections.Generic.IEnumerable{System.String},System.String,System.Int32,System.TimeSpan,System.Threading.CancellationToken)">
            <summary>
            <para>Asynchronously handles a WebSockets opening handshake
            and returns a newly-created <seealso cref="T:EmbedIO.WebSockets.IWebSocketContext"/> interface.</para>
            <para>This API supports the EmbedIO infrastructure and is not intended to be used directly from your code.</para>
            </summary>
            <param name="requestedProtocols">The requested WebSocket sub-protocols.</param>
            <param name="acceptedProtocol">The accepted WebSocket sub-protocol,
            or the empty string is no sub-protocol has been agreed upon.</param>
            <param name="receiveBufferSize">Size of the receive buffer.</param>
            <param name="keepAliveInterval">The keep-alive interval.</param>
            <param name="cancellationToken">A <see cref="P:EmbedIO.IHttpContextImpl.CancellationToken"/> used to stop the server.</param>
            <returns>
            An <see cref="T:EmbedIO.WebSockets.IWebSocketContext"/> interface.
            </returns>
        </member>
        <member name="T:EmbedIO.IHttpException">
            <summary>
            <para>Represents an exception that results in a particular
            HTTP response to be sent to the client.</para>
            <para>This interface is meant to be implemented
            by classes derived from <see cref="T:System.Exception" />.</para>
            <para>Either as message or a data object can be attached to
            the exception; which one, if any, is sent to the client
            will depend upon the handler used to send the response.</para>
            </summary>
            <seealso cref="T:EmbedIO.HttpExceptionHandlerCallback"/>
            <seealso cref="T:EmbedIO.HttpExceptionHandler"/>
        </member>
        <member name="P:EmbedIO.IHttpException.StatusCode">
            <summary>
            Gets the response status code for a HTTP exception.
            </summary>
        </member>
        <member name="P:EmbedIO.IHttpException.StackTrace">
            <summary>
            Gets the stack trace of a HTTP exception.
            </summary>
        </member>
        <member name="P:EmbedIO.IHttpException.Message">
            <summary>
            <para>Gets a message that can be included in the response triggered
            by a HTTP exception.</para>
            <para>Whether the message is actually sent to the client will depend
            upon the handler used to send the response.</para>
            </summary>
            <remarks>
            <para>Do not rely on <see cref="P:System.Exception.Message"/> to implement
            this property if you want to support <see langword="null"/> messages,
            because a default message will be supplied by the CLR at throw time
            when <see cref="P:System.Exception.Message"/> is <see langword="null"/>.</para>
            </remarks>
        </member>
        <member name="P:EmbedIO.IHttpException.DataObject">
            <summary>
            <para>Gets an object that can be serialized and included
            in the response triggered by a HTTP exception.</para>
            <para>Whether the object is actually sent to the client will depend
            upon the handler used to send the response.</para>
            </summary>
        </member>
        <member name="M:EmbedIO.IHttpException.PrepareResponse(EmbedIO.IHttpContext)">
            <summary>
            Sets necessary headers, as required by the nature
            of the HTTP exception (e.g. <c>Location</c> for
            <see cref="T:EmbedIO.HttpRedirectException" />).
            </summary>
            <param name="context">The HTTP context of the response.</param>
        </member>
        <member name="T:EmbedIO.IHttpListener">
            <summary>
            Interface to create a HTTP Listener.
            </summary>
        </member>
        <member name="P:EmbedIO.IHttpListener.IgnoreWriteExceptions">
            <summary>
            Gets or sets a value indicating whether the listener should ignore write exceptions. By default the flag is set on.
            </summary>
            <value>
            <c>true</c> if [ignore write exceptions]; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:EmbedIO.IHttpListener.Prefixes">
            <summary>
            Gets the prefixes.
            </summary>
            <value>
            The prefixes.
            </value>
        </member>
        <member name="P:EmbedIO.IHttpListener.IsListening">
            <summary>
            Gets a value indicating whether this instance is listening.
            </summary>
            <value>
              <c>true</c> if this instance is listening; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:EmbedIO.IHttpListener.Name">
            <summary>
            Gets or sets the name.
            </summary>
            <value>
            The name.
            </value>
        </member>
        <member name="M:EmbedIO.IHttpListener.Start">
            <summary>
            Starts this listener.
            </summary>
        </member>
        <member name="M:EmbedIO.IHttpListener.Stop">
            <summary>
            Stops this listener.
            </summary>
        </member>
        <member name="M:EmbedIO.IHttpListener.AddPrefix(System.String)">
            <summary>
            Adds the prefix.
            </summary>
            <param name="urlPrefix">The URL prefix.</param>
        </member>
        <member name="M:EmbedIO.IHttpListener.GetContextAsync(System.Threading.CancellationToken)">
            <summary>
            Gets the HTTP context asynchronous.
            </summary>
            <param name="cancellationToken">The cancellation token.</param>
            <returns>
            A task that represents the time delay for the HTTP Context.
            </returns>
        </member>
        <member name="T:EmbedIO.IHttpMessage">
            <summary>
            Represents a HTTP request or response.
            </summary>
        </member>
        <member name="P:EmbedIO.IHttpMessage.Cookies">
            <summary>
            Gets the cookies.
            </summary>
            <value>
            The cookies.
            </value>
        </member>
        <member name="P:EmbedIO.IHttpMessage.ProtocolVersion">
            <summary>
            Gets or sets the protocol version.
            </summary>
            <value>
            The protocol version.
            </value>
        </member>
        <member name="T:EmbedIO.IHttpRequest">
            <inheritdoc />
            <summary>
            Interface to create a HTTP Request.
            </summary>
        </member>
        <member name="P:EmbedIO.IHttpRequest.Headers">
            <summary>
            Gets the request headers.
            </summary>
        </member>
        <member name="P:EmbedIO.IHttpRequest.KeepAlive">
            <summary>
            Gets a value indicating whether [keep alive].
            </summary>
        </member>
        <member name="P:EmbedIO.IHttpRequest.RawUrl">
            <summary>
            Gets the raw URL.
            </summary>
        </member>
        <member name="P:EmbedIO.IHttpRequest.QueryString">
            <summary>
            Gets the query string.
            </summary>
        </member>
        <member name="P:EmbedIO.IHttpRequest.HttpMethod">
            <summary>
            Gets the HTTP method.
            </summary>
        </member>
        <member name="P:EmbedIO.IHttpRequest.HttpVerb">
            <summary>
            Gets a <see cref="T:EmbedIO.HttpVerbs"/> constant representing the HTTP method of the request.
            </summary>
        </member>
        <member name="P:EmbedIO.IHttpRequest.Url">
            <summary>
            Gets the URL.
            </summary>
        </member>
        <member name="P:EmbedIO.IHttpRequest.HasEntityBody">
            <summary>
            Gets a value indicating whether this instance has entity body.
            </summary>
        </member>
        <member name="P:EmbedIO.IHttpRequest.InputStream">
            <summary>
            Gets the input stream.
            </summary>
        </member>
        <member name="P:EmbedIO.IHttpRequest.ContentEncoding">
            <summary>
            Gets the content encoding.
            </summary>
        </member>
        <member name="P:EmbedIO.IHttpRequest.RemoteEndPoint">
            <summary>
            Gets the remote end point.
            </summary>
        </member>
        <member name="P:EmbedIO.IHttpRequest.IsLocal">
            <summary>
            Gets a value indicating whether this instance is local.
            </summary>
        </member>
        <member name="P:EmbedIO.IHttpRequest.IsSecureConnection">
            <summary>
            Gets a value indicating whether this request has been received over a SSL connection.
            </summary>
        </member>
        <member name="P:EmbedIO.IHttpRequest.UserAgent">
            <summary>
            Gets the user agent.
            </summary>
        </member>
        <member name="P:EmbedIO.IHttpRequest.IsWebSocketRequest">
            <summary>
            Gets a value indicating whether this instance is web socket request.
            </summary>
        </member>
        <member name="P:EmbedIO.IHttpRequest.LocalEndPoint">
            <summary>
            Gets the local end point.
            </summary>
        </member>
        <member name="P:EmbedIO.IHttpRequest.ContentType">
            <summary>
            Gets the type of the content.
            </summary>
        </member>
        <member name="P:EmbedIO.IHttpRequest.ContentLength64">
            <summary>
            Gets the content length.
            </summary>
        </member>
        <member name="P:EmbedIO.IHttpRequest.IsAuthenticated">
            <summary>
            Gets a value indicating whether this instance is authenticated.
            </summary>
        </member>
        <member name="P:EmbedIO.IHttpRequest.UrlReferrer">
            <summary>
            Gets the URL referrer.
            </summary>
        </member>
        <member name="T:EmbedIO.IHttpResponse">
            <inheritdoc />
            <summary>
            Interface to create a HTTP Response.
            </summary>
        </member>
        <member name="P:EmbedIO.IHttpResponse.Headers">
            <summary>
            Gets the response headers.
            </summary>
        </member>
        <member name="P:EmbedIO.IHttpResponse.StatusCode">
            <summary>
            Gets or sets the status code.
            </summary>
        </member>
        <member name="P:EmbedIO.IHttpResponse.ContentLength64">
            <summary>
            Gets or sets the content length.
            </summary>
        </member>
        <member name="P:EmbedIO.IHttpResponse.ContentType">
            <summary>
            Gets or sets the type of the content.
            </summary>
        </member>
        <member name="P:EmbedIO.IHttpResponse.OutputStream">
            <summary>
            Gets the output stream.
            </summary>
        </member>
        <member name="P:EmbedIO.IHttpResponse.ContentEncoding">
            <summary>
            Gets or sets the content encoding.
            </summary>
        </member>
        <member name="P:EmbedIO.IHttpResponse.KeepAlive">
            <summary>
            Gets or sets a value indicating whether [keep alive].
            </summary>
        </member>
        <member name="P:EmbedIO.IHttpResponse.SendChunked">
            <summary>
            Gets or sets a value indicating whether the response uses chunked transfer encoding.
            </summary>
        </member>
        <member name="P:EmbedIO.IHttpResponse.StatusDescription">
            <summary>
            Gets or sets a text description of the HTTP status code.
            </summary>
        </member>
        <member name="M:EmbedIO.IHttpResponse.SetCookie(System.Net.Cookie)">
            <summary>
            Sets the cookie.
            </summary>
            <param name="cookie">The session cookie.</param>
        </member>
        <member name="M:EmbedIO.IHttpResponse.Close">
            <summary>
            Closes this instance and dispose the resources.
            </summary>
        </member>
        <member name="T:EmbedIO.IMimeTypeCustomizer">
            <summary>
            Represents an object that can set information about specific MIME types and media ranges,
            to be later retrieved via an <see cref="T:EmbedIO.IMimeTypeProvider"/> interface.
            </summary>
            <seealso cref="T:EmbedIO.IMimeTypeProvider" />
        </member>
        <member name="M:EmbedIO.IMimeTypeCustomizer.AddCustomMimeType(System.String,System.String)">
            <summary>
            Adds a custom association between a file extension and a MIME type.
            </summary>
            <param name="extension">The file extension to associate to <paramref name="mimeType"/>.</param>
            <param name="mimeType">The MIME type to associate to <paramref name="extension"/>.</param>
            <exception cref="T:System.InvalidOperationException">The object implementing <see cref="T:EmbedIO.IMimeTypeCustomizer"/>
            has its configuration locked.</exception>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="extension"/>is <see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="mimeType"/>is <see langword="null"/>.</para>
            </exception>
            <exception cref="T:System.ArgumentException">
            <para><paramref name="extension"/>is the empty string.</para>
            <para>- or -</para>
            <para><paramref name="mimeType"/>is not a valid MIME type.</para>
            </exception>
        </member>
        <member name="M:EmbedIO.IMimeTypeCustomizer.PreferCompression(System.String,System.Boolean)">
            <summary>
            Indicates whether to prefer compression when negotiating content encoding
            for a response with the specified content type, or whose content type is in
            the specified media range.
            </summary>
            <param name="mimeType">The MIME type or media range.</param>
            <param name="preferCompression"><see langword="true"/> to prefer compression;
            otherwise, <see langword="false"/>.</param>
            <exception cref="T:System.InvalidOperationException">The object implementing <see cref="T:EmbedIO.IMimeTypeCustomizer"/>
            has its configuration locked.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="mimeType"/>is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentException"><paramref name="mimeType"/>is not a valid MIME type or media range.</exception>
        </member>
        <member name="T:EmbedIO.IMimeTypeProvider">
            <summary>
            Represents an object that contains information on specific MIME types and media ranges.
            </summary>
        </member>
        <member name="M:EmbedIO.IMimeTypeProvider.GetMimeType(System.String)">
            <summary>
            Gets the MIME type associated to a file extension.
            </summary>
            <param name="extension">The file extension for which a corresponding MIME type is wanted.</param>
            <returns>The MIME type corresponding to <paramref name="extension"/>, if one is found;
            otherwise, <see langword="null"/>.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="extension"/>is <see langword="null"/>.</exception>
        </member>
        <member name="M:EmbedIO.IMimeTypeProvider.TryDetermineCompression(System.String,System.Boolean@)">
            <summary>
            Attempts to determine whether compression should be preferred
            when negotiating content encoding for a response with the specified content type.
            </summary>
            <param name="mimeType">The MIME type to check.</param>
            <param name="preferCompression">When this method returns <see langword="true"/>,
            a value indicating whether compression should be preferred.
            This parameter is passed uninitialized.</param>
            <returns><see langword="true"/> if a value is found for <paramref name="mimeType"/>;
            otherwise, <see langword="false"/>.</returns>
        </member>
        <member name="T:EmbedIO.Internal.TimeKeeper">
            <summary>
            Represents a wrapper around Stopwatch.
            </summary>
        </member>
        <member name="M:EmbedIO.Internal.TimeKeeper.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:EmbedIO.Internal.TimeKeeper"/> class.
            </summary>
        </member>
        <member name="P:EmbedIO.Internal.TimeKeeper.ElapsedTime">
            <summary>
            Gets the elapsed time since the class was initialized.
            </summary>
        </member>
        <member name="T:EmbedIO.IWebModule">
            <summary>
            Represents a module.
            </summary>
        </member>
        <member name="P:EmbedIO.IWebModule.BaseRoute">
            <summary>
            Gets the base route of a module.
            </summary>
            <value>
            The base route.
            </value>
            <remarks>
            <para>A base route is either "/" (the root path),
            or a prefix starting and ending with a '/' character.</para>
            </remarks>
        </member>
        <member name="P:EmbedIO.IWebModule.IsFinalHandler">
            <summary>
            Gets a value indicating whether processing of a request should stop
            after a module has handled it.
            </summary>
            <remarks>
            <para>If this property is <see langword="true" />, a HTTP context's
            <see cref="M:EmbedIO.IHttpContext.SetHandled" /> method will be automatically called
            immediately after after the <see cref="T:System.Threading.Tasks.Task" /> returned by
            <see cref="M:EmbedIO.IWebModule.HandleRequestAsync(EmbedIO.IHttpContext)" /> is completed. This will prevent
            the context from being passed further along to other modules.</para>
            </remarks>
            <seealso cref="P:EmbedIO.IHttpContext.IsHandled" />
            <seealso cref="M:EmbedIO.IHttpContext.SetHandled" />
        </member>
        <member name="P:EmbedIO.IWebModule.OnUnhandledException">
            <summary>
            <para>Gets or sets a callback that is called every time an unhandled exception
            occurs during the processing of a request.</para>
            <para>If this property is <see langword="null"/> (the default),
            the exception will be handled by the web server, or by the containing
            <see cref="T:EmbedIO.ModuleGroup"/>.</para>
            </summary>
            <seealso cref="T:EmbedIO.ExceptionHandler"/>
        </member>
        <member name="P:EmbedIO.IWebModule.OnHttpException">
            <summary>
            <para>Gets or sets a callback that is called every time a HTTP exception
            is thrown during the processing of a request.</para>
            <para>If this property is <see langword="null"/> (the default),
            the exception will be handled by the web server, or by the containing
            <see cref="T:EmbedIO.ModuleGroup"/>.</para>
            </summary>
            <seealso cref="T:EmbedIO.HttpExceptionHandler"/>
        </member>
        <member name="M:EmbedIO.IWebModule.Start(System.Threading.CancellationToken)">
            <summary>
            Signals a module that the web server is starting.
            </summary>
            <param name="cancellationToken">A <see cref="T:System.Threading.CancellationToken"/> used to stop the web server.</param>
        </member>
        <member name="M:EmbedIO.IWebModule.MatchUrlPath(System.String)">
            <summary>
            Matches the specified URL path against a module's <see cref="P:EmbedIO.IWebModule.BaseRoute"/>,
            extracting values for the route's parameters and a sub-path.
            </summary>
            <param name="urlPath">The URL path to match.</param>
            <returns>If the match is successful, a <see cref="T:EmbedIO.Routing.RouteMatch"/> object;
            otherwise, <see langword="null"/>.</returns>
        </member>
        <member name="M:EmbedIO.IWebModule.HandleRequestAsync(EmbedIO.IHttpContext)">
            <summary>
            Handles a request from a client.
            </summary>
            <param name="context">The context of the request being handled.</param>
            <returns>A <see cref="T:System.Threading.Tasks.Task" /> representing the ongoing operation.</returns>
        </member>
        <member name="T:EmbedIO.IWebModuleContainer">
            <summary>
            Represents an object that contains a collection of <see cref="T:EmbedIO.IWebModule"/> interfaces.
            </summary>
        </member>
        <member name="P:EmbedIO.IWebModuleContainer.Modules">
            <summary>
            Gets the modules.
            </summary>
            <value>
            The modules.
            </value>
        </member>
        <member name="T:EmbedIO.IWebServer">
            <summary>
            <para>Represents a web server.</para>
            <para>The basic usage of a web server is as follows:</para>
            <list type="bullet">
            <item><description>add modules to the <see cref="P:EmbedIO.IWebModuleContainer.Modules">Modules</see> collection;</description></item>
            <item><description>set a <see cref="P:EmbedIO.IWebServer.SessionManager"/> if needed;</description></item>
            <item><description>call <see cref="M:EmbedIO.IWebServer.RunAsync(System.Threading.CancellationToken)"/> to respond to incoming requests.</description></item>
            </list>
            </summary>
        </member>
        <member name="E:EmbedIO.IWebServer.StateChanged">
            <summary>
            Occurs when the <see cref="P:EmbedIO.IWebServer.State"/> property changes.
            </summary>
        </member>
        <member name="P:EmbedIO.IWebServer.OnUnhandledException">
            <summary>
            <para>Gets or sets a callback that is called every time an unhandled exception
            occurs during the processing of a request.</para>
            <para>This property can never be <see langword="null"/>.
            If it is still </para>
            </summary>
            <seealso cref="T:EmbedIO.ExceptionHandler"/>
        </member>
        <member name="P:EmbedIO.IWebServer.OnHttpException">
            <summary>
            <para>Gets or sets a callback that is called every time a HTTP exception
            is thrown during the processing of a request.</para>
            <para>This property can never be <see langword="null"/>.</para>
            </summary>
            <seealso cref="T:EmbedIO.HttpExceptionHandler"/>
        </member>
        <member name="P:EmbedIO.IWebServer.SessionManager">
            <summary>
            <para>Gets or sets the registered session ID manager, if any.</para>
            <para>A session ID manager is an implementation of <see cref="T:EmbedIO.Sessions.ISessionManager"/>.</para>
            <para>Note that this property can only be set before starting the web server.</para>
            </summary>
            <value>
            The session manager, or <see langword="null"/> if no session manager is present.
            </value>
            <exception cref="T:System.InvalidOperationException">This property is being set and the web server has already been started.</exception>
        </member>
        <member name="P:EmbedIO.IWebServer.State">
            <summary>
            Gets the state of the web server.
            </summary>
            <value>The state.</value>
            <seealso cref="T:EmbedIO.WebServerState"/>
        </member>
        <member name="M:EmbedIO.IWebServer.RunAsync(System.Threading.CancellationToken)">
            <summary>
            Starts the listener and the registered modules.
            </summary>
            <param name="cancellationToken">The cancellation token; when cancelled, the server cancels all pending requests and stops.</param>
            <returns>
            Returns the task that the HTTP listener is running inside of, so that it can be waited upon after it's been canceled.
            </returns>
        </member>
        <member name="T:EmbedIO.MimeType">
            <summary>
            Provides constants for commonly-used MIME types and association between file extensions and MIME types.
            </summary>
            <seealso cref="P:EmbedIO.MimeType.Associations"/>
        </member>
        <member name="P:EmbedIO.MimeType.Associations">
            <summary>
            <para>Associates file extensions to MIME types.</para>
            </summary>
            <remarks>
            <para>The list of MIME types has been copied from
            <see href="https://github.com/samuelneff/MimeTypeMap/blob/master/src/MimeTypes/MimeTypeMap.cs">Samuel Neff's MIME Type Map</see>
            on April 26th, 2019.</para>
            <para>Copyright (c) 2014 Samuel Neff. Redistributed under <see href="https://github.com/samuelneff/MimeTypeMap/blob/master/LICENSE">MIT license</see>.</para>
            </remarks>
        </member>
        <member name="F:EmbedIO.MimeType.Default">
            <summary>
            The default MIME type for data whose type is unknown,
            i.e. <c>application/octet-stream</c>.
            </summary>
        </member>
        <member name="F:EmbedIO.MimeType.PlainText">
            <summary>
            The MIME type for plain text, i.e. <c>text/plain</c>.
            </summary>
        </member>
        <member name="F:EmbedIO.MimeType.Html">
            <summary>
            The MIME type for HTML, i.e. <c>text/html</c>.
            </summary>
        </member>
        <member name="F:EmbedIO.MimeType.Json">
            <summary>
            The MIME type for JSON, i.e. <c>application/json</c>.
            </summary>
        </member>
        <member name="F:EmbedIO.MimeType.UrlEncodedForm">
            <summary>
            The MIME type for URL-encoded HTML forms,
            i.e. <c>application/x-www-form-urlencoded</c>.
            </summary>
        </member>
        <member name="M:EmbedIO.MimeType.StripParameters(System.String)">
            <summary>
            <para>Strips parameters, if present (e.g. <c>; encoding=UTF-8</c>), from a MIME type.</para>
            </summary>
            <param name="value">The MIME type.</param>
            <returns><paramref name="value"/> without parameters.</returns>
            <remarks>
            <para>This method does not validate <paramref name="value"/>: if it is not
            a valid MIME type or media range, it is just returned unchanged.</para>
            </remarks>
        </member>
        <member name="M:EmbedIO.MimeType.IsMimeType(System.String,System.Boolean)">
            <summary>
            Determines whether the specified string is a valid MIME type or media range.
            </summary>
            <param name="value">The value.</param>
            <param name="acceptMediaRange">If set to <see langword="true"/>, both media ranges
            (e.g. <c>"text/*"</c>, <c>"*/*"</c>) and specific MIME types (e.g. <c>"text/html"</c>)
            are considered valid; if set to <see langword="false"/>, only specific MIME types
            are considered valid.</param>
            <returns><see langword="true"/> if <paramref name="value"/> is valid,
            according to the value of <paramref name="acceptMediaRange"/>;
            otherwise, <see langword="false"/>.</returns>
        </member>
        <member name="M:EmbedIO.MimeType.Split(System.String)">
            <summary>
            Splits the specified MIME type or media range into type and subtype.
            </summary>
            <param name="mimeType">The MIME type or media range to split.</param>
            <returns>A tuple of type and subtype.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="mimeType"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentException"><paramref name="mimeType"/> is not a valid
            MIME type or media range.</exception>
        </member>
        <member name="M:EmbedIO.MimeType.IsInRange(System.String,System.String)">
            <summary>
            Matches the specified MIME type to a media range.
            </summary>
            <param name="mimeType">The MIME type to match.</param>
            <param name="mediaRange">The media range.</param>
            <returns><see langword="true"/> if <paramref name="mediaRange"/> is either
            the same as <paramref name="mimeType"/>, or has the same type and a subtype
            of <c>"*"</c>, or is <c>"*/*"</c>.</returns>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="mimeType"/> is <see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="mediaRange"/> is <see langword="null"/>.</para>
            </exception>
            <exception cref="T:System.ArgumentException">
            <para><paramref name="mimeType"/> is not a valid MIME type.</para>
            <para>- or -</para>
            <para><paramref name="mediaRange"/> is not a valid MIME media range.</para>
            </exception>
        </member>
        <member name="T:EmbedIO.MimeTypeCustomizerExtensions">
            <summary>
            Provides extension methods for types implementing <see cref="T:EmbedIO.IMimeTypeCustomizer"/>.
            </summary>
        </member>
        <member name="M:EmbedIO.MimeTypeCustomizerExtensions.WithCustomMimeType``1(``0,System.String,System.String)">
            <summary>
            Adds a custom association between a file extension and a MIME type.
            </summary>
            <typeparam name="T">The type of the object to which this method is applied.</typeparam>
            <param name="this">The object to which this method is applied.</param>
            <param name="extension">The file extension to associate to <paramref name="mimeType"/>.</param>
            <param name="mimeType">The MIME type to associate to <paramref name="extension"/>.</param>
            <returns><paramref name="this"/> with the custom association added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.InvalidOperationException"><paramref name="this"/> has its configuration locked.</exception>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="extension"/>is <see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="mimeType"/>is <see langword="null"/>.</para>
            </exception>
            <exception cref="T:System.ArgumentException">
            <para><paramref name="extension"/>is the empty string.</para>
            <para>- or -</para>
            <para><paramref name="mimeType"/>is not a valid MIME type.</para>
            </exception>
        </member>
        <member name="M:EmbedIO.MimeTypeCustomizerExtensions.PreferCompressionFor``1(``0,System.String,System.Boolean)">
            <summary>
            Indicates whether to prefer compression when negotiating content encoding
            for a response with the specified content type, or whose content type is in
            the specified media range.
            </summary>
            <typeparam name="T">The type of the object to which this method is applied.</typeparam>
            <param name="this">The object to which this method is applied.</param>
            <param name="mimeType">The MIME type or media range.</param>
            <param name="preferCompression"><see langword="true"/> to prefer compression;
            otherwise, <see langword="false"/>.</param>
            <returns><paramref name="this"/> with the specified preference added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.InvalidOperationException"><paramref name="this"/> has its configuration locked.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="mimeType"/>is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentException"><paramref name="mimeType"/>is not a valid MIME type or media range.</exception>
        </member>
        <member name="M:EmbedIO.MimeTypeCustomizerExtensions.PreferCompressionFor``1(``0,System.String)">
            <summary>
            Indicates that compression should be preferred when negotiating content encoding
            for a response with the specified content type, or whose content type is in
            the specified media range.
            </summary>
            <typeparam name="T">The type of the object to which this method is applied.</typeparam>
            <param name="this">The object to which this method is applied.</param>
            <param name="mimeType">The MIME type or media range.</param>
            <returns><paramref name="this"/> with the specified preference added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.InvalidOperationException"><paramref name="this"/> has its configuration locked.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="mimeType"/>is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentException"><paramref name="mimeType"/>is not a valid MIME type or media range.</exception>
        </member>
        <member name="M:EmbedIO.MimeTypeCustomizerExtensions.PreferNoCompressionFor``1(``0,System.String)">
            <summary>
            Indicates that no compression should be preferred when negotiating content encoding
            for a response with the specified content type, or whose content type is in
            the specified media range.
            </summary>
            <typeparam name="T">The type of the object to which this method is applied.</typeparam>
            <param name="this">The object to which this method is applied.</param>
            <param name="mimeType">The MIME type or media range.</param>
            <returns><paramref name="this"/> with the specified preference added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.InvalidOperationException"><paramref name="this"/> has its configuration locked.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="mimeType"/>is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentException"><paramref name="mimeType"/>is not a valid MIME type or media range.</exception>
        </member>
        <member name="T:EmbedIO.ModuleGroup">
            <summary>
            <para>Groups modules under a common base URL path.</para>
            <para>The <see cref="P:EmbedIO.IWebModule.BaseRoute">BaseRoute</see> property
            of modules contained in a <c>ModuleGroup</c> is relative to the
            <c>ModuleGroup</c>'s <see cref="P:EmbedIO.IWebModule.BaseRoute">BaseRoute</see> property.
            For example, given the following code:</para>
            <para><code>new ModuleGroup("/download")
                .WithStaticFilesAt("/docs", "/var/my/documents");</code></para>
            <para>files contained in the <c>/var/my/documents</c> folder will be
            available to clients under the <c>/download/docs/</c> URL.</para>
            </summary>
            <seealso cref="T:EmbedIO.WebModuleBase" />
            <seealso cref="T:System.IDisposable" />
            <seealso cref="T:EmbedIO.IWebModuleContainer" />
        </member>
        <member name="M:EmbedIO.ModuleGroup.#ctor(System.String,System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:EmbedIO.ModuleGroup" /> class.
            </summary>
            <param name="baseRoute">The base route served by this module.</param>
            <param name="isFinalHandler">The value to set the <see cref="P:EmbedIO.IWebModule.IsFinalHandler" /> property to.
            See the help for the property for more information.</param>
            <seealso cref="P:EmbedIO.IWebModule.BaseRoute" />
            <seealso cref="P:EmbedIO.IWebModule.IsFinalHandler" />
        </member>
        <member name="M:EmbedIO.ModuleGroup.Finalize">
            <summary>
            Finalizes an instance of the <see cref="T:EmbedIO.ModuleGroup"/> class.
            </summary>
        </member>
        <member name="P:EmbedIO.ModuleGroup.IsFinalHandler">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.ModuleGroup.Modules">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.ModuleGroup.Dispose">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.ModuleGroup.AddCustomMimeType(System.String,System.String)">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.ModuleGroup.PreferCompression(System.String,System.Boolean)">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.ModuleGroup.OnRequestAsync(EmbedIO.IHttpContext)">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.ModuleGroup.Dispose(System.Boolean)">
            <summary>
            Releases unmanaged and - optionally - managed resources.
            </summary>
            <param name="disposing"><see langword="true"/> to release both managed and unmanaged resources;
            <see langword="false"/> to release only unmanaged resources.</param>
        </member>
        <member name="M:EmbedIO.ModuleGroup.OnBeforeLockConfiguration">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.ModuleGroup.OnStart(System.Threading.CancellationToken)">
            <inheritdoc />
        </member>
        <member name="T:EmbedIO.Net.CookieList">
            <summary>
            <para>Provides a collection container for instances of <see cref="T:System.Net.Cookie"/>.</para>
            <para>This class is meant to be used internally by EmbedIO; you don't need to
            use this class directly.</para>
            </summary>
        </member>
        <member name="P:EmbedIO.Net.CookieList.IsSynchronized">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Net.CookieList.Item(System.String)">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.Net.CookieList.Parse(System.String)">
            <summary>Creates a <see cref="T:EmbedIO.Net.CookieList"/> by parsing
            the value of one or more <c>Cookie</c> or <c>Set-Cookie</c> headers.</summary>
            <param name="headerValue">The value, or comma-separated list of values,
            of the header or headers.</param>
            <returns>A newly-created instance of <see cref="T:EmbedIO.Net.CookieList"/>.</returns>
        </member>
        <member name="M:EmbedIO.Net.CookieList.Add(System.Net.Cookie)">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.Net.CookieList.CopyTo(System.Array,System.Int32)">
            <inheritdoc />
        </member>
        <member name="T:EmbedIO.Net.EndPointManager">
            <summary>
            Represents the EndPoint Manager.
            </summary>
        </member>
        <member name="P:EmbedIO.Net.EndPointManager.UseIpv6">
            <summary>
            Gets or sets a value indicating whether [use IPv6]. By default, this flag is set.
            </summary>
            <value>
              <c>true</c> if [use IPv6]; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="T:EmbedIO.Net.HttpListener">
             <summary>
             The EmbedIO implementation of the standard HTTP Listener class.
             
             Based on MONO HttpListener class.
             </summary>
             <seealso cref="T:System.IDisposable" />
        </member>
        <member name="M:EmbedIO.Net.HttpListener.#ctor(System.Security.Cryptography.X509Certificates.X509Certificate)">
            <summary>
            Initializes a new instance of the <see cref="T:EmbedIO.Net.HttpListener" /> class.
            </summary>
            <param name="certificate">The certificate.</param>
        </member>
        <member name="P:EmbedIO.Net.HttpListener.IgnoreWriteExceptions">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Net.HttpListener.IsListening">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Net.HttpListener.Name">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Net.HttpListener.Prefixes">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Net.HttpListener.Certificate">
            <summary>
            Gets the certificate.
            </summary>
            <value>
            The certificate.
            </value>
        </member>
        <member name="M:EmbedIO.Net.HttpListener.Start">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.Net.HttpListener.Stop">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.Net.HttpListener.AddPrefix(System.String)">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.Net.HttpListener.Dispose">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.Net.HttpListener.GetContextAsync(System.Threading.CancellationToken)">
            <inheritdoc />
        </member>
        <member name="T:EmbedIO.Net.Internal.HttpListenerRequest">
            <summary>
            Represents an HTTP Listener Request.
            </summary>
        </member>
        <member name="P:EmbedIO.Net.Internal.HttpListenerRequest.AcceptTypes">
            <summary>
            Gets the MIME accept types.
            </summary>
            <value>
            The accept types.
            </value>
        </member>
        <member name="P:EmbedIO.Net.Internal.HttpListenerRequest.ContentEncoding">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Net.Internal.HttpListenerRequest.ContentLength64">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Net.Internal.HttpListenerRequest.ContentType">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Net.Internal.HttpListenerRequest.Cookies">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Net.Internal.HttpListenerRequest.HasEntityBody">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Net.Internal.HttpListenerRequest.Headers">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Net.Internal.HttpListenerRequest.HttpMethod">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Net.Internal.HttpListenerRequest.HttpVerb">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Net.Internal.HttpListenerRequest.InputStream">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Net.Internal.HttpListenerRequest.IsAuthenticated">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Net.Internal.HttpListenerRequest.IsLocal">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Net.Internal.HttpListenerRequest.IsSecureConnection">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Net.Internal.HttpListenerRequest.KeepAlive">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Net.Internal.HttpListenerRequest.LocalEndPoint">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Net.Internal.HttpListenerRequest.ProtocolVersion">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Net.Internal.HttpListenerRequest.QueryString">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Net.Internal.HttpListenerRequest.RawUrl">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Net.Internal.HttpListenerRequest.RemoteEndPoint">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Net.Internal.HttpListenerRequest.Url">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Net.Internal.HttpListenerRequest.UrlReferrer">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Net.Internal.HttpListenerRequest.UserAgent">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Net.Internal.HttpListenerRequest.IsWebSocketRequest">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.Net.Internal.HttpListenerRequest.BeginGetClientCertificate(System.AsyncCallback,System.Object)">
            <summary>
            Begins to the get client certificate asynchronously.
            </summary>
            <param name="requestCallback">The request callback.</param>
            <param name="state">The state.</param>
            <returns>An async result.</returns>
        </member>
        <member name="M:EmbedIO.Net.Internal.HttpListenerRequest.EndGetClientCertificate(System.IAsyncResult)">
            <summary>
            Finishes the get client certificate asynchronous operation.
            </summary>
            <param name="asyncResult">The asynchronous result.</param>
            <returns>The certificate from the client.</returns>
            <exception cref="T:System.ArgumentNullException">asyncResult.</exception>
            <exception cref="T:System.InvalidOperationException"></exception>
        </member>
        <member name="M:EmbedIO.Net.Internal.HttpListenerRequest.GetClientCertificate">
            <summary>
            Gets the client certificate.
            </summary>
            <returns>The client certificate.</returns>
        </member>
        <member name="T:EmbedIO.Net.Internal.HttpListenerResponse">
            <summary>
            Represents an HTTP Listener's response.
            </summary>
            <seealso cref="T:System.IDisposable" />
        </member>
        <member name="P:EmbedIO.Net.Internal.HttpListenerResponse.ContentEncoding">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Net.Internal.HttpListenerResponse.ContentLength64">
            <inheritdoc />
            <exception cref="T:System.ObjectDisposedException">This instance has been disposed.</exception>
            <exception cref="T:System.InvalidOperationException">This property is being set and headers were already sent.</exception>
        </member>
        <member name="P:EmbedIO.Net.Internal.HttpListenerResponse.ContentType">
            <inheritdoc />
            <exception cref="T:System.ObjectDisposedException">This instance has been disposed.</exception>
            <exception cref="T:System.InvalidOperationException">This property is being set and headers were already sent.</exception>
            <exception cref="T:System.ArgumentNullException">This property is being set to <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentException">This property is being set to the empty string.</exception>
        </member>
        <member name="P:EmbedIO.Net.Internal.HttpListenerResponse.Cookies">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Net.Internal.HttpListenerResponse.Headers">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Net.Internal.HttpListenerResponse.KeepAlive">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Net.Internal.HttpListenerResponse.OutputStream">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Net.Internal.HttpListenerResponse.ProtocolVersion">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Net.Internal.HttpListenerResponse.SendChunked">
            <inheritdoc />
            <exception cref="T:System.ObjectDisposedException">This instance has been disposed.</exception>
            <exception cref="T:System.InvalidOperationException">This property is being set and headers were already sent.</exception>
        </member>
        <member name="P:EmbedIO.Net.Internal.HttpListenerResponse.StatusCode">
            <inheritdoc />
            <exception cref="T:System.ObjectDisposedException">This instance has been disposed.</exception>
            <exception cref="T:System.InvalidOperationException">This property is being set and headers were already sent.</exception>
        </member>
        <member name="P:EmbedIO.Net.Internal.HttpListenerResponse.StatusDescription">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.Net.Internal.HttpListenerResponse.SetCookie(System.Net.Cookie)">
            <inheritdoc />
        </member>
        <member name="T:EmbedIO.Net.Internal.NetExtensions">
            <summary>
            Represents some System.NET custom extensions.
            </summary>
        </member>
        <member name="P:EmbedIO.Net.Internal.ResponseStream.CanRead">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Net.Internal.ResponseStream.CanSeek">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Net.Internal.ResponseStream.CanWrite">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Net.Internal.ResponseStream.Length">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Net.Internal.ResponseStream.Position">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.Net.Internal.ResponseStream.Flush">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.Net.Internal.ResponseStream.Write(System.Byte[],System.Int32,System.Int32)">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.Net.Internal.ResponseStream.Read(System.Byte[],System.Int32,System.Int32)">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.Net.Internal.ResponseStream.Seek(System.Int64,System.IO.SeekOrigin)">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.Net.Internal.ResponseStream.SetLength(System.Int64)">
            <inheritdoc />
        </member>
        <member name="T:EmbedIO.Net.Internal.SystemCookieCollection">
            <summary>
            Represents a wrapper for <c>System.Net.CookieCollection</c>.
            </summary>
            <seealso cref="T:EmbedIO.ICookieCollection" />
        </member>
        <member name="M:EmbedIO.Net.Internal.SystemCookieCollection.#ctor(System.Net.CookieCollection)">
            <summary>
            Initializes a new instance of the <see cref="T:EmbedIO.Net.Internal.SystemCookieCollection"/> class.
            </summary>
            <param name="collection">The cookie collection.</param>
        </member>
        <member name="P:EmbedIO.Net.Internal.SystemCookieCollection.Count">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Net.Internal.SystemCookieCollection.IsSynchronized">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Net.Internal.SystemCookieCollection.SyncRoot">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Net.Internal.SystemCookieCollection.Item(System.String)">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.Net.Internal.SystemCookieCollection.System#Collections#Generic#IEnumerable{System#Net#Cookie}#GetEnumerator">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.Net.Internal.SystemCookieCollection.GetEnumerator">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.Net.Internal.SystemCookieCollection.CopyTo(System.Array,System.Int32)">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.Net.Internal.SystemCookieCollection.CopyTo(System.Net.Cookie[],System.Int32)">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.Net.Internal.SystemCookieCollection.Add(System.Net.Cookie)">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.Net.Internal.SystemCookieCollection.Contains(System.Net.Cookie)">
            <inheritdoc />
        </member>
        <member name="T:EmbedIO.Net.Internal.SystemHttpListener">
            <summary>
            Represents a wrapper for Microsoft HTTP Listener.
            </summary>
        </member>
        <member name="P:EmbedIO.Net.Internal.SystemHttpListener.IgnoreWriteExceptions">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Net.Internal.SystemHttpListener.Prefixes">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Net.Internal.SystemHttpListener.IsListening">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Net.Internal.SystemHttpListener.Name">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.Net.Internal.SystemHttpListener.Start">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.Net.Internal.SystemHttpListener.Stop">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.Net.Internal.SystemHttpListener.AddPrefix(System.String)">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.Net.Internal.SystemHttpListener.GetContextAsync(System.Threading.CancellationToken)">
            <inheritdoc />
        </member>
        <member name="T:EmbedIO.Net.Internal.SystemHttpRequest">
            <summary>
            Represents a wrapper for HttpListenerContext.Request.
            </summary>
            <seealso cref="T:EmbedIO.IHttpRequest" />
        </member>
        <member name="M:EmbedIO.Net.Internal.SystemHttpRequest.#ctor(System.Net.HttpListenerContext)">
            <summary>
            Initializes a new instance of the <see cref="T:EmbedIO.Net.Internal.SystemHttpRequest"/> class.
            </summary>
            <param name="context">The context.</param>
        </member>
        <member name="P:EmbedIO.Net.Internal.SystemHttpRequest.Headers">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Net.Internal.SystemHttpRequest.ProtocolVersion">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Net.Internal.SystemHttpRequest.KeepAlive">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Net.Internal.SystemHttpRequest.Cookies">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Net.Internal.SystemHttpRequest.RawUrl">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Net.Internal.SystemHttpRequest.QueryString">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Net.Internal.SystemHttpRequest.HttpMethod">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Net.Internal.SystemHttpRequest.HttpVerb">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Net.Internal.SystemHttpRequest.Url">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Net.Internal.SystemHttpRequest.HasEntityBody">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Net.Internal.SystemHttpRequest.InputStream">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Net.Internal.SystemHttpRequest.ContentEncoding">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Net.Internal.SystemHttpRequest.RemoteEndPoint">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Net.Internal.SystemHttpRequest.IsSecureConnection">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Net.Internal.SystemHttpRequest.IsLocal">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Net.Internal.SystemHttpRequest.UserAgent">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Net.Internal.SystemHttpRequest.IsWebSocketRequest">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Net.Internal.SystemHttpRequest.LocalEndPoint">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Net.Internal.SystemHttpRequest.ContentType">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Net.Internal.SystemHttpRequest.ContentLength64">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Net.Internal.SystemHttpRequest.IsAuthenticated">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Net.Internal.SystemHttpRequest.UrlReferrer">
            <inheritdoc />
        </member>
        <member name="T:EmbedIO.Net.Internal.SystemHttpResponse">
            <summary>
            Represents a wrapper for HttpListenerContext.Response.
            </summary>
            <seealso cref="T:EmbedIO.IHttpResponse" />
        </member>
        <member name="M:EmbedIO.Net.Internal.SystemHttpResponse.#ctor(System.Net.HttpListenerContext)">
            <summary>
            Initializes a new instance of the <see cref="T:EmbedIO.Net.Internal.SystemHttpResponse"/> class.
            </summary>
            <param name="context">The context.</param>
        </member>
        <member name="P:EmbedIO.Net.Internal.SystemHttpResponse.Headers">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Net.Internal.SystemHttpResponse.StatusCode">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Net.Internal.SystemHttpResponse.ContentLength64">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Net.Internal.SystemHttpResponse.ContentType">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Net.Internal.SystemHttpResponse.OutputStream">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Net.Internal.SystemHttpResponse.Cookies">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Net.Internal.SystemHttpResponse.ContentEncoding">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Net.Internal.SystemHttpResponse.KeepAlive">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Net.Internal.SystemHttpResponse.SendChunked">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Net.Internal.SystemHttpResponse.ProtocolVersion">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Net.Internal.SystemHttpResponse.StatusDescription">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.Net.Internal.SystemHttpResponse.SetCookie(System.Net.Cookie)">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.Net.Internal.SystemHttpResponse.Close">
            <inheritdoc />
        </member>
        <member name="T:EmbedIO.RequestDeserializer">
            <summary>
            Provides standard request deserialization callbacks.
            </summary>
        </member>
        <member name="M:EmbedIO.RequestDeserializer.Default``1(EmbedIO.IHttpContext)">
            <summary>
            <para>The default request deserializer used by EmbedIO.</para>
            <para>Equivalent to <see cref="M:EmbedIO.RequestDeserializer.Json``1(EmbedIO.IHttpContext)"/>.</para>
            </summary>
            <typeparam name="TData">The expected type of the deserialized data.</typeparam>
            <param name="context">The <see cref="T:EmbedIO.IHttpContext"/> whose request body is to be deserialized.</param>
            <returns>A <see cref="T:System.Threading.Tasks.Task`1">Task</see>, representing the ongoing operation,
            whose result will be the deserialized data.</returns>
        </member>
        <member name="M:EmbedIO.RequestDeserializer.Json``1(EmbedIO.IHttpContext)">
            <summary>
            Asynchronously deserializes a request body in JSON format.
            </summary>
            <typeparam name="TData">The expected type of the deserialized data.</typeparam>
            <param name="context">The <see cref="T:EmbedIO.IHttpContext"/> whose request body is to be deserialized.</param>
            <returns>A <see cref="T:System.Threading.Tasks.Task`1">Task</see>, representing the ongoing operation,
            whose result will be the deserialized data.</returns>
        </member>
        <member name="M:EmbedIO.RequestDeserializer.Json``1(Swan.Formatters.JsonSerializerCase)">
            <summary>
            Returns a <see cref="T:EmbedIO.RequestDeserializerCallback`1">RequestDeserializerCallback</see>
            that will deserialize an HTTP request body in JSON format, using the specified property name casing.
            </summary>
            <typeparam name="TData">The expected type of the deserialized data.</typeparam>
            <param name="jsonSerializerCase">The <see cref="T:Swan.Formatters.JsonSerializerCase"/> to use.</param>
            <returns>A <see cref="T:EmbedIO.RequestDeserializerCallback`1"/> that can be used to deserialize
            a JSON request body.</returns>
        </member>
        <member name="T:EmbedIO.RequestDeserializerCallback`1">
            <summary>
            A callback used to deserialize an HTTP request body.
            </summary>
            <typeparam name="TData">The expected type of the deserialized data.</typeparam>
            <param name="context">The <see cref="T:EmbedIO.IHttpContext"/> whose request body is to be deserialized.</param>
            <returns>A <see cref="T:System.Threading.Tasks.Task`1">Task</see>, representing the ongoing operation,
            whose result will be the deserialized data.</returns>
        </member>
        <member name="T:EmbedIO.RequestHandler">
            <summary>
            Provides standard request handler callbacks.
            </summary>
            <seealso cref="T:EmbedIO.RequestHandlerCallback"/>
        </member>
        <member name="M:EmbedIO.RequestHandler.PassThrough">
            <summary>
            <para>Returns an exception object that, when thrown from a module's
            <see cref="M:EmbedIO.IWebModule.HandleRequestAsync(EmbedIO.IHttpContext)">HandleRequestAsync</see> method, will cause the HTTP context
            to be passed down along the module chain, regardless of the value of the module's
            <see cref="P:EmbedIO.IWebModule.IsFinalHandler">IsFinalHandler</see> property.</para>
            </summary>
            <returns>A newly-created <see cref="T:System.Exception"/>.</returns>
        </member>
        <member name="M:EmbedIO.RequestHandler.ThrowUnauthorized(System.String)">
            <summary>
            <para>Returns a <see cref="T:EmbedIO.RequestHandlerCallback" /> that unconditionally sends a <c>401 Unauthorized</c> response.</para>
            </summary>
            <param name="message">A message to include in the response.</param>
            <returns>A <see cref="T:EmbedIO.RequestHandlerCallback" />.</returns>
        </member>
        <member name="M:EmbedIO.RequestHandler.ThrowForbidden(System.String)">
            <summary>
            <para>Returns a <see cref="T:EmbedIO.RequestHandlerCallback" /> that unconditionally sends a <c>403 Forbidden</c> response.</para>
            </summary>
            <param name="message">A message to include in the response.</param>
            <returns>A <see cref="T:EmbedIO.RequestHandlerCallback" />.</returns>
        </member>
        <member name="M:EmbedIO.RequestHandler.ThrowBadRequest(System.String)">
            <summary>
            <para>Returns a <see cref="T:EmbedIO.RequestHandlerCallback" /> that unconditionally sends a <c>400 Bad Request</c> response.</para>
            </summary>
            <param name="message">A message to include in the response.</param>
            <returns>A <see cref="T:EmbedIO.RequestHandlerCallback" />.</returns>
        </member>
        <member name="M:EmbedIO.RequestHandler.ThrowNotFound(System.String)">
            <summary>
            <para>Returns a <see cref="T:EmbedIO.RequestHandlerCallback" /> that unconditionally sends a <c>404 Not Found</c> response.</para>
            </summary>
            <param name="message">A message to include in the response.</param>
            <returns>A <see cref="T:EmbedIO.RequestHandlerCallback" />.</returns>
        </member>
        <member name="M:EmbedIO.RequestHandler.ThrowMethodNotAllowed(System.String)">
            <summary>
            <para>Returns a <see cref="T:EmbedIO.RequestHandlerCallback" /> that unconditionally sends a <c>405 Method Not Allowed</c> response.</para>
            </summary>
            <param name="message">A message to include in the response.</param>
            <returns>A <see cref="T:EmbedIO.RequestHandlerCallback" />.</returns>
        </member>
        <member name="T:EmbedIO.RequestHandlerCallback">
            <summary>
            A callback used to handle a request.
            </summary>
            <param name="context">An <see cref="T:EmbedIO.IHttpContext"/> interface representing the context of the request.</param>
            <returns>A <see cref="T:System.Threading.Tasks.Task"/> representing the ongoing operation.</returns>
        </member>
        <member name="T:EmbedIO.ResponseSerializer">
            <summary>
            Provides standard response serializer callbacks.
            </summary>
            <seealso cref="T:EmbedIO.ResponseSerializerCallback"/>
        </member>
        <member name="F:EmbedIO.ResponseSerializer.Default">
            <summary>
            <para>The default response serializer callback used by EmbedIO.</para>
            <para>Equivalent to <see cref="M:EmbedIO.ResponseSerializer.Json(EmbedIO.IHttpContext,System.Object)"/>.</para>
            </summary>
        </member>
        <member name="M:EmbedIO.ResponseSerializer.Json(EmbedIO.IHttpContext,System.Object)">
            <summary>
            Serializes data in JSON format to a HTTP response,
            using the <see cref="T:Swan.Formatters.Json"/> utility class.
            </summary>
            <param name="context">The HTTP context of the request.</param>
            <param name="data">The data to serialize.</param>
            <returns>A <see cref="T:System.Threading.Tasks.Task"/> representing the ongoing operation.</returns>
        </member>
        <member name="T:EmbedIO.ResponseSerializerCallback">
            <summary>
            A callback used to serialize data to a HTTP response.
            </summary>
            <param name="context">The HTTP context of the request.</param>
            <param name="data">The data to serialize.</param>
            <returns>A <see cref="T:System.Threading.Tasks.Task"/> representing the ongoing operation.</returns>
        </member>
        <member name="T:EmbedIO.Routing.BaseRouteAttribute">
            <summary>
            Decorate methods within controllers with this attribute in order to make them callable from the Web API Module
            Method Must match the WebServerModule.
            </summary>
        </member>
        <member name="M:EmbedIO.Routing.BaseRouteAttribute.#ctor(EmbedIO.HttpVerbs,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:EmbedIO.Routing.BaseRouteAttribute"/> class.
            </summary>
            <param name="verb">The verb.</param>
            <param name="route">The route.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="route"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentException">
            <para><paramref name="route"/> is empty.</para>
            <para>- or -</para>
            <para><paramref name="route"/> does not start with a slash (<c>/</c>) character.</para>
            <para>- or -</para>
            <para><paramref name="route"/> does not comply with route syntax.</para>
            </exception>
            <seealso cref="M:EmbedIO.Routing.Route.IsValid(System.String,System.Boolean)"/>
        </member>
        <member name="T:EmbedIO.Routing.Route">
            <summary>
            Provides utility methods to work with routes.
            </summary>
            <seealso cref="T:EmbedIO.WebApi.WebApiModule"/>
            <seealso cref="T:EmbedIO.WebApi.WebApiController"/>
            <seealso cref="T:EmbedIO.Routing.RouteAttribute"/>
        </member>
        <member name="M:EmbedIO.Routing.Route.IsValidParameterName(System.String)">
            <summary>
            <para>Determines whether a string is a valid route parameter name.</para>
            <para>To be considered a valid route parameter name, the specified string:</para>
            <list type="bullet">
            <item><description>must not be <see langword="null"/>;</description></item>
            <item><description>must not be the empty string;</description></item>
            <item><description>must consist entirely of decimal digits, upper- or lower-case
            letters of the English alphabet, or underscore (<c>'_'</c>) characters;</description></item>
            <item><description>must not start with a decimal digit.</description></item>
            </list>
            </summary>
            <param name="value">The value.</param>
            <returns><see langword="true"/> if <paramref name="value"/> is a valid route parameter;
            otherwise, <see langword="false"/>.</returns>
        </member>
        <member name="M:EmbedIO.Routing.Route.IsValid(System.String,System.Boolean)">
            <summary>
            <para>Determines whether a string is a valid route.</para>
            <para>To be considered a valid route, the specified string:</para>
            <list type="bullet">
            <item><description>must not be <see langword="null"/>;</description></item>
            <item><description>must not be the empty string;</description></item>
            <item><description>must start with a slash (<c>'/'</c>) character;</description></item>
            <item><description>if a base route, must end with a slash (<c>'/'</c>) character;</description></item>
            <item><description>if not a base route, must not end with a slash (<c>'/'</c>) character,
            unless it is the only character in the string;</description></item>
            <item><description>must not contain consecutive runs of two or more slash (<c>'/'</c>) characters;</description></item>
            <item><description>may contain one or more parameter specifications.</description></item>
            </list>
            <para>Each parameter specification must be enclosed in curly brackets (<c>'{'</c>
            and <c>'}'</c>. No whitespace is allowed inside a parameter specification.</para>
            <para>Two parameter specifications must be separated by literal text.</para>
            <para>A parameter specification consists of a valid parameter name, optionally
            followed by a <c>'?'</c> character to signify that it will also match an empty string.</para>
            <para>If <c>'?'</c> is not present, a parameter by default will NOT match an empty string.</para>
            <para>See <see cref="M:EmbedIO.Routing.Route.IsValidParameterName(System.String)"/> for the definition of a valid parameter name.</para>
            <para>To include a literal open curly bracket in the route, it must be doubled (<c>"{{"</c>).</para>
            <para>A literal closed curly bracket (<c>'}'</c>) may be included in the route as-is.</para>
            <para>A segment of a base route cannot consist only of an optional parameter.</para>
            </summary>
            <param name="route">The route to check.</param>
            <param name="isBaseRoute"><see langword="true"/> if checking for a base route;
            otherwise, <see langword="false"/>.</param>
            <returns><see langword="true"/> if <paramref name="route"/> is a valid route;
            otherwise, <see langword="false"/>.</returns>
        </member>
        <member name="T:EmbedIO.Routing.RouteAttribute">
            <summary>
            Decorate methods within controllers with this attribute in order to make them callable from the Web API Module
            Method Must match the WebServerModule.
            </summary>
        </member>
        <member name="M:EmbedIO.Routing.RouteAttribute.#ctor(EmbedIO.HttpVerbs,System.String,System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:EmbedIO.Routing.RouteAttribute"/> class.
            </summary>
            <param name="isBaseRoute"><see langword="true"/> if this attribute represents a base route;
            <see langword="false"/> (the default) if it represents a terminal (non-base) route.</param>
            <param name="verb">The verb.</param>
            <param name="route">The route.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="route"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentException">
            <para><paramref name="route"/> is empty.</para>
            <para>- or -</para>
            <para><paramref name="route"/> does not start with a slash (<c>/</c>) character.</para>
            <para>- or -</para>
            <para><paramref name="route"/> does not comply with route syntax.</para>
            </exception>
            <seealso cref="M:EmbedIO.Routing.Route.IsValid(System.String,System.Boolean)"/>
        </member>
        <member name="P:EmbedIO.Routing.RouteAttribute.Verb">
            <summary>
            Gets the HTTP verb handled by a method with this attribute.
            </summary>
        </member>
        <member name="P:EmbedIO.Routing.RouteAttribute.Matcher">
            <summary>
            Gets a <see cref="T:EmbedIO.Routing.RouteMatcher"/> that will match URLs against this attribute's data.
            </summary>
        </member>
        <member name="P:EmbedIO.Routing.RouteAttribute.Route">
            <summary>
            Gets the route handled by a method with this attribute.
            </summary>
        </member>
        <member name="P:EmbedIO.Routing.RouteAttribute.IsBaseRoute">
            <summary>
            Gets a value indicating whether this attribute represents a base route.
            </summary>
        </member>
        <member name="T:EmbedIO.Routing.RouteHandlerCallback">
            <summary>
            Base class for callbacks used to handle routed requests.
            </summary>
            <param name="context">An <see cref="T:EmbedIO.IHttpContext" /> interface representing the context of the request.</param>
            <param name="route">The matched route.</param>
            <returns>A <see cref="T:System.Threading.Tasks.Task" /> representing the ongoing operation.</returns>
            <seealso cref="T:EmbedIO.Routing.RouteMatch"/>
        </member>
        <member name="T:EmbedIO.Routing.RouteMatch">
            <summary>
            <para>Represents a route resolved by a <see cref="T:EmbedIO.Routing.RouteResolverBase`1"/>.</para>
            <para>This class may be used both as a dictionary of route parameter names and values,
            and a list of the values.</para>
            <para>Because of its double nature, this class cannot be enumerated directly. However,
            you may use the <see cref="P:EmbedIO.Routing.RouteMatch.Pairs"/> property to iterate over name / value pairs, and the
            <see cref="P:EmbedIO.Routing.RouteMatch.Values"/> property to iterate over values.</para>
            <para>When enumerated in a non-generic fashion via the <see cref="T:System.Collections.IEnumerable"/> interface,
            this class iterates over name / value pairs.</para>
            </summary>
        </member>
        <member name="P:EmbedIO.Routing.RouteMatch.None">
            <summary>
            Gets a <see cref="T:EmbedIO.Routing.RouteMatch"/> instance that represents no match at all.
            </summary>
            <remarks>
            <para>The <see cref="T:EmbedIO.Routing.RouteMatch"/> instance returned by this property
            has the following specifications:</para>
            <list type="bullet">
            <item><description>its <see cref="P:EmbedIO.Routing.RouteMatch.Path">Path</see> property is the empty string;</description></item>
            <item><description>it has no parameters;</description></item>
            <item><description>its <see cref="P:EmbedIO.Routing.RouteMatch.SubPath">SubPath</see> property is <see langword="null"/>.</description></item>
            </list>
            <para>This <see cref="T:EmbedIO.Routing.RouteMatch"/> instance is only useful to initialize
            a non-nullable property of type <see cref="T:EmbedIO.Routing.RouteMatch"/>, provided that it is subsequently
            set to a meaningful value before being used.</para>
            </remarks>
        </member>
        <member name="P:EmbedIO.Routing.RouteMatch.Path">
            <summary>
            Gets the URL path that was successfully matched against the route.
            </summary>
        </member>
        <member name="P:EmbedIO.Routing.RouteMatch.SubPath">
            <summary>
            <para>For a base route, gets the part of <see cref="P:EmbedIO.Routing.RouteMatch.Path"/> that follows the matched route;
            for a non-base route, this property is always <see langword="null"/>.</para>
            </summary>
        </member>
        <member name="P:EmbedIO.Routing.RouteMatch.Names">
            <summary>
            Gets a list of the names of the route's parameters.
            </summary>
        </member>
        <member name="P:EmbedIO.Routing.RouteMatch.Count">
            <inheritdoc cref="P:System.Collections.Generic.IReadOnlyCollection`1.Count"/>
        </member>
        <member name="P:EmbedIO.Routing.RouteMatch.Keys">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Routing.RouteMatch.Values">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Routing.RouteMatch.Pairs">
            <summary>
            Gets an <see cref="T:System.Collections.Generic.IEnumerable`1"/> interface that can be used
            to iterate over name / value pairs.
            </summary>
        </member>
        <member name="P:EmbedIO.Routing.RouteMatch.Item(System.Int32)">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Routing.RouteMatch.Item(System.String)">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.Routing.RouteMatch.UnsafeFromRoot(System.String)">
            <summary>
            Returns a <see cref="T:EmbedIO.Routing.RouteMatch"/> object equal to the one
            that would result by matching the specified URL path against a
            base route of <c>"/"</c>.
            </summary>
            <param name="urlPath">The URL path to match.</param>
            <returns>A newly-constructed <see cref="T:EmbedIO.Routing.RouteMatch"/>.</returns>
            <remarks>
            <para>This method assumes that <paramref name="urlPath"/>
            is a valid, non-base URL path or route. Otherwise, the behavior of this method
            is unspecified.</para>
            <para>Ensure that you validate <paramref name="urlPath"/> before
            calling this method, using either <see cref="M:EmbedIO.Utilities.Validate.UrlPath(System.String,System.String,System.Boolean)"/>
            or <see cref="M:EmbedIO.Utilities.UrlPath.IsValid(System.String)"/>.</para>
            </remarks>
        </member>
        <member name="M:EmbedIO.Routing.RouteMatch.UnsafeFromBasePath(System.String,System.String)">
            <summary>
            Returns a <see cref="T:EmbedIO.Routing.RouteMatch"/> object equal to the one
            that would result by matching the specified URL path against
            the specified parameterless base route.
            </summary>
            <param name="baseUrlPath">The base route to match <paramref name="urlPath"/> against.</param>
            <param name="urlPath">The URL path to match.</param>
            <returns>A newly-constructed <see cref="T:EmbedIO.Routing.RouteMatch"/>.</returns>
            <remarks>
            <para>This method assumes that <paramref name="baseUrlPath"/> is a
            valid base URL path, and <paramref name="urlPath"/>
            is a valid, non-base URL path or route. Otherwise, the behavior of this method
            is unspecified.</para>
            <para>Ensure that you validate both parameters before
            calling this method, using either <see cref="M:EmbedIO.Utilities.Validate.UrlPath(System.String,System.String,System.Boolean)"/>
            or <see cref="M:EmbedIO.Utilities.UrlPath.IsValid(System.String)"/>.</para>
            </remarks>
        </member>
        <member name="M:EmbedIO.Routing.RouteMatch.ContainsKey(System.String)">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.Routing.RouteMatch.TryGetValue(System.String,System.String@)">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.Routing.RouteMatch.IndexOf(System.String)">
            <summary>
            Returns the index of the parameter with the specified name.
            </summary>
            <param name="name">The parameter name.</param>
            <returns>The index of the parameter, or -1 if none of the
            route parameters have the specified name.</returns>
        </member>
        <member name="M:EmbedIO.Routing.RouteMatch.System#Collections#Generic#IEnumerable{System#Collections#Generic#KeyValuePair{System#String,System#String}}#GetEnumerator">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.Routing.RouteMatch.System#Collections#Generic#IEnumerable{System#String}#GetEnumerator">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.Routing.RouteMatch.System#Collections#IEnumerable#GetEnumerator">
            <inheritdoc />
        </member>
        <member name="T:EmbedIO.Routing.RouteMatcher">
            <summary>
            Matches URL paths against a route.
            </summary>
        </member>
        <member name="P:EmbedIO.Routing.RouteMatcher.IsBaseRoute">
            <summary>
            Gets a value indicating whether the <see cref="P:EmbedIO.Routing.RouteMatcher.Route"/> property
            is a base route.
            </summary>
        </member>
        <member name="P:EmbedIO.Routing.RouteMatcher.Route">
            <summary>
            Gets the route this instance matches URL paths against.
            </summary>
        </member>
        <member name="P:EmbedIO.Routing.RouteMatcher.ParameterNames">
            <summary>
            Gets the names of the route's parameters.
            </summary>
        </member>
        <member name="M:EmbedIO.Routing.RouteMatcher.Parse(System.String,System.Boolean)">
            <summary>
            Constructs an instance of <see cref="T:EmbedIO.Routing.RouteMatcher"/> by parsing the specified route.
            <para>If the same route was previously parsed and the <see cref="M:EmbedIO.Routing.RouteMatcher.ClearCache"/> method has not been called since,
            this method obtains an instance from a static cache.</para>
            </summary>
            <param name="route">The route to parse.</param>
            <param name="isBaseRoute"><see langword="true"/> if the route to parse
            is a base route; otherwise, <see langword="false"/>.</param>
            <returns>A newly-constructed instance of <see cref="T:EmbedIO.Routing.RouteMatcher"/>
            that will match URL paths against <paramref name="route"/>.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="route"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.FormatException"><paramref name="route"/> is not a valid route.</exception>
            <seealso cref="M:EmbedIO.Routing.RouteMatcher.TryParse(System.String,System.Boolean,EmbedIO.Routing.RouteMatcher@)"/>
            <seealso cref="M:EmbedIO.Routing.RouteMatcher.ClearCache"/>
        </member>
        <member name="M:EmbedIO.Routing.RouteMatcher.TryParse(System.String,System.Boolean,EmbedIO.Routing.RouteMatcher@)">
            <summary>
            <para>Attempts to obtain an instance of <see cref="T:EmbedIO.Routing.RouteMatcher" /> by parsing the specified route.</para>
            <para>If the same route was previously parsed and the <see cref="M:EmbedIO.Routing.RouteMatcher.ClearCache"/> method has not been called since,
            this method obtains an instance from a static cache.</para>
            </summary>
            <param name="route">The route to parse.</param>
            <param name="isBaseRoute"><see langword="true"/> if the route to parse
            is a base route; otherwise, <see langword="false"/>.</param>
            <param name="result">When this method returns <see langword="true"/>, a newly-constructed instance of <see cref="T:EmbedIO.Routing.RouteMatcher" />
            that will match URL paths against <paramref name="route"/>; otherwise, <see langword="null"/>.
            This parameter is passed uninitialized.</param>
            <returns><see langword="true"/> if parsing was successful; otherwise, <see langword="false"/>.</returns>
            <seealso cref="M:EmbedIO.Routing.RouteMatcher.Parse(System.String,System.Boolean)"/>
            <seealso cref="M:EmbedIO.Routing.RouteMatcher.ClearCache"/>
        </member>
        <member name="M:EmbedIO.Routing.RouteMatcher.ClearCache">
            <summary>
            Clears <see cref="T:EmbedIO.Routing.RouteMatcher"/>'s internal instance cache.
            </summary>
            <seealso cref="M:EmbedIO.Routing.RouteMatcher.Parse(System.String,System.Boolean)"/>
            <seealso cref="M:EmbedIO.Routing.RouteMatcher.TryParse(System.String,System.Boolean,EmbedIO.Routing.RouteMatcher@)"/>
        </member>
        <member name="M:EmbedIO.Routing.RouteMatcher.GetHashCode">
            <summary>
            Returns a hash code for this instance.
            </summary>
            <returns>A hash code for this instance, suitable for use in hashing algorithms
            and data structures like a hash table.</returns>
        </member>
        <member name="M:EmbedIO.Routing.RouteMatcher.Equals(System.Object)">
            <summary>
            Determines whether the specified <see cref="T:System.Object"/> is equal to this instance.
            </summary>
            <param name="obj">The <see cref="T:System.Object"/> to compare with this instance.</param>
            <returns><see langword="true"/> if <paramref name="obj"/> is equal to this instance;
            otherwise, <see langword="false"/>.</returns>
        </member>
        <member name="M:EmbedIO.Routing.RouteMatcher.Equals(EmbedIO.Routing.RouteMatcher)">
            <summary>
            Indicates whether this instance is equal to another instance of <see cref="T:EmbedIO.Routing.RouteMatcher"/>.
            </summary>
            <param name="other">A <see cref="T:EmbedIO.Routing.RouteMatcher"/> to compare with this instance.</param>
            <returns><see langword="true"/> if this instance is equal to <paramref name="other"/>;
            otherwise, <see langword="false"/>.</returns>
        </member>
        <member name="M:EmbedIO.Routing.RouteMatcher.Match(System.String)">
            <summary>
            Matches the specified URL path against <see cref="P:EmbedIO.Routing.RouteMatcher.Route"/>
            and extracts values for the route's parameters.
            </summary>
            <param name="path">The URL path to match.</param>
            <returns>If the match is successful, a <see cref="T:EmbedIO.Routing.RouteMatch"/> object;
            otherwise, <see langword="null"/>.</returns>
        </member>
        <member name="T:EmbedIO.Routing.RouteResolutionResult">
            <summary>
            Represents the outcome of resolving a context and a path against a route.
            </summary>
        </member>
        <member name="F:EmbedIO.Routing.RouteResolutionResult.RouteNotMatched">
            <summary>
            The route didn't match.
            </summary>
        </member>
        <member name="F:EmbedIO.Routing.RouteResolutionResult.NoHandlerSelected">
            <summary>
            The route did match, but no registered handler was suitable for the context.
            </summary>
        </member>
        <member name="F:EmbedIO.Routing.RouteResolutionResult.NoHandlerSuccessful">
            <summary>
            The route matched and one or more suitable handlers were found,
            but none of them returned <see langword="true"/>.
            </summary>
        </member>
        <member name="F:EmbedIO.Routing.RouteResolutionResult.Success">
            <summary>
            The route has been resolved.
            </summary>
        </member>
        <member name="T:EmbedIO.Routing.RouteResolverBase`1">
            <summary>
            Implements the logic for resolving the requested path of a HTTP context against a route,
            possibly handling different contexts via different handlers.
            </summary>
            <typeparam name="TData">The type of the data used to select a suitable handler
            for the context.</typeparam>
            <seealso cref="T:Swan.Configuration.ConfiguredObject" />
        </member>
        <member name="M:EmbedIO.Routing.RouteResolverBase`1.#ctor(EmbedIO.Routing.RouteMatcher)">
            <summary>
            Initializes a new instance of the <see cref="T:EmbedIO.Routing.RouteResolverBase`1"/> class.
            </summary>
            <param name="matcher">The <see cref="T:EmbedIO.Routing.RouteMatcher"/> to match URL paths against.</param>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="matcher"/> is <see langword="null"/>.</para>
            </exception>
        </member>
        <member name="P:EmbedIO.Routing.RouteResolverBase`1.Matcher">
            <summary>
            Gets the <see cref="T:EmbedIO.Routing.RouteMatcher"/> used to match routes.
            </summary>
        </member>
        <member name="P:EmbedIO.Routing.RouteResolverBase`1.Route">
            <summary>
            Gets the route this resolver matches URL paths against.
            </summary>
        </member>
        <member name="P:EmbedIO.Routing.RouteResolverBase`1.IsBaseRoute">
            <summary>
            Gets a value indicating whether <see cref="P:EmbedIO.Routing.RouteResolverBase`1.Route"/> is a base route.
            </summary>
        </member>
        <member name="M:EmbedIO.Routing.RouteResolverBase`1.Add(`0,EmbedIO.Routing.RouteHandlerCallback)">
            <summary>
            <para>Associates some data to a handler.</para>
            <para>The <see cref="M:EmbedIO.Routing.RouteResolverBase`1.ResolveAsync(EmbedIO.IHttpContext)"/> method calls <see cref="M:EmbedIO.Routing.RouteResolverBase`1.GetContextData(EmbedIO.IHttpContext)"/>
            to extract data from the context; then, for each registered data / handler pair,
            <see cref="M:EmbedIO.Routing.RouteResolverBase`1.MatchContextData(`0,`0)"/> is called to determine whether <paramref name="handler"/>
            should be called.</para>
            </summary>
            <param name="data">Data used to determine which contexts are
            suitable to be handled by <paramref name="handler"/>.</param>
            <param name="handler">A callback used to handle matching contexts.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="handler"/> is <see langword="null"/>.</exception>
            <seealso cref="T:EmbedIO.Routing.RouteHandlerCallback"/>
            <seealso cref="M:EmbedIO.Routing.RouteResolverBase`1.ResolveAsync(EmbedIO.IHttpContext)"/>
            <seealso cref="M:EmbedIO.Routing.RouteResolverBase`1.GetContextData(EmbedIO.IHttpContext)"/>
            <seealso cref="M:EmbedIO.Routing.RouteResolverBase`1.MatchContextData(`0,`0)"/>
        </member>
        <member name="M:EmbedIO.Routing.RouteResolverBase`1.Add(`0,EmbedIO.Routing.SyncRouteHandlerCallback)">
            <summary>
            <para>Associates some data to a synchronous handler.</para>
            <para>The <see cref="M:EmbedIO.Routing.RouteResolverBase`1.ResolveAsync(EmbedIO.IHttpContext)"/> method calls <see cref="M:EmbedIO.Routing.RouteResolverBase`1.GetContextData(EmbedIO.IHttpContext)"/>
            to extract data from the context; then, for each registered data / handler pair,
            <see cref="M:EmbedIO.Routing.RouteResolverBase`1.MatchContextData(`0,`0)"/> is called to determine whether <paramref name="handler"/>
            should be called.</para>
            </summary>
            <param name="data">Data used to determine which contexts are
            suitable to be handled by <paramref name="handler"/>.</param>
            <param name="handler">A callback used to handle matching contexts.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="handler"/> is <see langword="null"/>.</exception>
            <seealso cref="T:EmbedIO.Routing.RouteHandlerCallback"/>
            <seealso cref="M:EmbedIO.Routing.RouteResolverBase`1.ResolveAsync(EmbedIO.IHttpContext)"/>
            <seealso cref="M:EmbedIO.Routing.RouteResolverBase`1.GetContextData(EmbedIO.IHttpContext)"/>
            <seealso cref="M:EmbedIO.Routing.RouteResolverBase`1.MatchContextData(`0,`0)"/>
        </member>
        <member name="M:EmbedIO.Routing.RouteResolverBase`1.Lock">
            <summary>
            Locks this instance, preventing further handler additions.
            </summary>
        </member>
        <member name="M:EmbedIO.Routing.RouteResolverBase`1.ResolveAsync(EmbedIO.IHttpContext)">
            <summary>
            Asynchronously matches a URL path against <see cref="P:EmbedIO.Routing.RouteResolverBase`1.Route"/>;
            if the match is successful, tries to handle the specified <paramref name="context"/>
            using handlers selected according to data extracted from the context.
            <para>Registered data / handler pairs are tried in the same order they were added.</para>
            </summary>
            <param name="context">The context to handle.</param>
            <returns>A <see cref="T:System.Threading.Tasks.Task"/>, representing the ongoing operation,
            that will return a result in the form of one of the <see cref="T:EmbedIO.Routing.RouteResolutionResult"/> constants.</returns>
            <seealso cref="M:EmbedIO.Routing.RouteResolverBase`1.Add(`0,EmbedIO.Routing.RouteHandlerCallback)"/>
            <seealso cref="M:EmbedIO.Routing.RouteResolverBase`1.Add(`0,EmbedIO.Routing.SyncRouteHandlerCallback)"/>
            <seealso cref="M:EmbedIO.Routing.RouteResolverBase`1.GetContextData(EmbedIO.IHttpContext)"/>
            <seealso cref="M:EmbedIO.Routing.RouteResolverBase`1.MatchContextData(`0,`0)"/>
        </member>
        <member name="M:EmbedIO.Routing.RouteResolverBase`1.GetContextData(EmbedIO.IHttpContext)">
            <summary>
            <para>Called by <see cref="M:EmbedIO.Routing.RouteResolverBase`1.ResolveAsync(EmbedIO.IHttpContext)"/> to extract data from a context.</para>
            <para>The extracted data are then used to select which handlers are suitable
            to handle the context.</para>
            </summary>
            <param name="context">The HTTP context to extract data from.</param>
            <returns>The extracted data.</returns>
            <seealso cref="M:EmbedIO.Routing.RouteResolverBase`1.ResolveAsync(EmbedIO.IHttpContext)"/>
            <seealso cref="M:EmbedIO.Routing.RouteResolverBase`1.MatchContextData(`0,`0)"/>
        </member>
        <member name="M:EmbedIO.Routing.RouteResolverBase`1.MatchContextData(`0,`0)">
            <summary>
            Called by <see cref="M:EmbedIO.Routing.RouteResolverBase`1.ResolveAsync(EmbedIO.IHttpContext)"/> to match data extracted from a context
            against data associated with a handler.
            </summary>
            <param name="contextData">The data extracted from the context.</param>
            <param name="handlerData">The data associated with the handler.</param>
            <returns><see langword="true"/> if the handler should be called to handle the context;
            otherwise, <see langword="false"/>.</returns>
        </member>
        <member name="T:EmbedIO.Routing.RouteResolverCollectionBase`2">
            <summary>
            Implements the logic for resolving a context and a URL path against a list of routes,
            possibly handling different HTTP methods via different handlers.
            </summary>
            <typeparam name="TData">The type of the data used to select a suitable handler
            for a context.</typeparam>
            <typeparam name="TResolver">The type of the route resolver.</typeparam>
            <seealso cref="T:EmbedIO.Utilities.ComponentCollection`1" />
        </member>
        <member name="M:EmbedIO.Routing.RouteResolverCollectionBase`2.Add(`0,EmbedIO.Routing.RouteMatcher,EmbedIO.Routing.RouteHandlerCallback)">
            <summary>
            Associates some data and a route to a handler.
            </summary>
            <param name="data">Data used to determine which contexts are
            suitable to be handled by <paramref name="handler"/>.</param>
            <param name="matcher">The <see cref="T:EmbedIO.Routing.RouteMatcher"/>to match URL paths against.</param>
            <param name="handler">A callback used to handle matching contexts.</param>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="matcher"/> is <see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="handler"/> is <see langword="null"/>.</para>
            </exception>
            <exception cref="T:System.InvalidOperationException">The <see cref="M:EmbedIO.Routing.RouteResolverCollectionBase`2.CreateResolver(EmbedIO.Routing.RouteMatcher)"/> method
            returned <see langword="null"/>.</exception>
            <seealso cref="M:EmbedIO.Routing.RouteResolverCollectionBase`2.ResolveAsync(EmbedIO.IHttpContext)"/>
            <seealso cref="M:EmbedIO.Routing.RouteResolverCollectionBase`2.Add(`0,EmbedIO.Routing.RouteMatcher,EmbedIO.Routing.SyncRouteHandlerCallback)"/>
            <seealso cref="M:EmbedIO.Routing.RouteResolverBase`1.Add(`0,EmbedIO.Routing.RouteHandlerCallback)"/>
        </member>
        <member name="M:EmbedIO.Routing.RouteResolverCollectionBase`2.Add(`0,EmbedIO.Routing.RouteMatcher,EmbedIO.Routing.SyncRouteHandlerCallback)">
            <summary>
            Associates some data and a route to a synchronous handler.
            </summary>
            <param name="data">Data used to determine which contexts are
            suitable to be handled by <paramref name="handler"/>.</param>
            <param name="matcher">The <see cref="T:EmbedIO.Routing.RouteMatcher"/>to match URL paths against.</param>
            <param name="handler">A callback used to handle matching contexts.</param>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="matcher"/> is <see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="handler"/> is <see langword="null"/>.</para>
            </exception>
            <exception cref="T:System.InvalidOperationException">The <see cref="M:EmbedIO.Routing.RouteResolverCollectionBase`2.CreateResolver(EmbedIO.Routing.RouteMatcher)"/> method
            returned <see langword="null"/>.</exception>
            <seealso cref="M:EmbedIO.Routing.RouteResolverCollectionBase`2.ResolveAsync(EmbedIO.IHttpContext)"/>
            <seealso cref="M:EmbedIO.Routing.RouteResolverCollectionBase`2.Add(`0,EmbedIO.Routing.RouteMatcher,EmbedIO.Routing.RouteHandlerCallback)"/>
            <seealso cref="M:EmbedIO.Routing.RouteResolverBase`1.Add(`0,EmbedIO.Routing.SyncRouteHandlerCallback)"/>
        </member>
        <member name="M:EmbedIO.Routing.RouteResolverCollectionBase`2.ResolveAsync(EmbedIO.IHttpContext)">
            <summary>
            Asynchronously matches a URL path against <see cref="T:EmbedIO.Routing.Route"/>;
            if the match is successful, tries to handle the specified <paramref name="context"/>
            using handlers selected according to data extracted from the context.
            <para>Registered resolvers are tried in the same order they were added by calling
            <see cref="M:EmbedIO.Utilities.IComponentCollection`1.Add(System.String,`0)"/>.</para>
            </summary>
            <param name="context">The context to handle.</param>
            <returns>A <see cref="T:System.Threading.Tasks.Task"/>, representing the ongoing operation,
            that will return a result in the form of one of the <see cref="T:EmbedIO.Routing.RouteResolutionResult"/> constants.</returns>
            <seealso cref="M:EmbedIO.Routing.RouteResolverBase`1.ResolveAsync(EmbedIO.IHttpContext)"/>
        </member>
        <member name="M:EmbedIO.Routing.RouteResolverCollectionBase`2.Lock">
            <summary>
            Locks this collection, preventing further additions.
            </summary>
        </member>
        <member name="M:EmbedIO.Routing.RouteResolverCollectionBase`2.OnBeforeLockConfiguration">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.Routing.RouteResolverCollectionBase`2.CreateResolver(EmbedIO.Routing.RouteMatcher)">
            <summary>
            <para>Called by <see cref="M:EmbedIO.Routing.RouteResolverCollectionBase`2.Add(`0,EmbedIO.Routing.RouteMatcher,EmbedIO.Routing.RouteHandlerCallback)"/>
            and <see cref="M:EmbedIO.Routing.RouteResolverCollectionBase`2.Add(`0,EmbedIO.Routing.RouteMatcher,EmbedIO.Routing.SyncRouteHandlerCallback)"/> to create an instance
            of <typeparamref name="TResolver"/> that can resolve the specified route.</para>
            <para>If this method returns <see langword="null"/>, an <see cref="T:System.InvalidOperationException"/>
            is thrown by the calling method.</para>
            </summary>
            <param name="matcher">The <see cref="T:EmbedIO.Routing.RouteMatcher"/>to match URL paths against.</param>
            <returns>A newly-constructed instance of <typeparamref name="TResolver"/>.</returns>
        </member>
        <member name="M:EmbedIO.Routing.RouteResolverCollectionBase`2.OnResolverCalled(EmbedIO.IHttpContext,`1,EmbedIO.Routing.RouteResolutionResult)">
            <summary>
            <para>Called by <see cref="M:EmbedIO.Routing.RouteResolverCollectionBase`2.ResolveAsync(EmbedIO.IHttpContext)"/> when a resolver's
            <see cref="M:EmbedIO.Routing.RouteResolverBase`1.ResolveAsync(EmbedIO.IHttpContext)">ResolveAsync</see> method has been called
            to resolve a context.</para>
            <para>This callback method may be used e.g. for logging or testing.</para>
            </summary>
            <param name="context">The context to handle.</param>
            <param name="resolver">The resolver just called.</param>
            <param name="result">The result returned by <paramref name="resolver"/>.<see cref="M:EmbedIO.Routing.RouteResolverBase`1.ResolveAsync(EmbedIO.IHttpContext)">ResolveAsync</see>.</param>
        </member>
        <member name="T:EmbedIO.Routing.RouteVerbResolver">
            <summary>
            Handles a HTTP request by matching it against a route,
            possibly handling different HTTP methods via different handlers.
            </summary>
        </member>
        <member name="M:EmbedIO.Routing.RouteVerbResolver.#ctor(EmbedIO.Routing.RouteMatcher)">
            <summary>
            Initializes a new instance of the <see cref="T:EmbedIO.Routing.RouteVerbResolver"/> class.
            </summary>
            <param name="matcher">The <see cref="T:EmbedIO.Routing.RouteMatcher"/> to match URL paths against.</param>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="matcher"/> is <see langword="null"/>.</para>
            </exception>
        </member>
        <member name="M:EmbedIO.Routing.RouteVerbResolver.GetContextData(EmbedIO.IHttpContext)">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.Routing.RouteVerbResolver.MatchContextData(EmbedIO.HttpVerbs,EmbedIO.HttpVerbs)">
            <inheritdoc />
        </member>
        <member name="T:EmbedIO.Routing.RouteVerbResolverCollection">
            <summary>
            Handles a HTTP request by matching it against a list of routes,
            possibly handling different HTTP methods via different handlers.
            </summary>
            <seealso cref="T:EmbedIO.Routing.RouteResolverBase`1"/>
            <seealso cref="T:EmbedIO.Routing.RouteVerbResolver"/>
        </member>
        <member name="M:EmbedIO.Routing.RouteVerbResolverCollection.AddFrom(System.Object)">
            <summary>
            <para>Adds handlers, associating them with HTTP method / route pairs by means
            of <see cref="T:EmbedIO.Routing.RouteAttribute">Route</see> attributes.</para>
            <para>A compatible handler is a static or instance method that takes 2
            parameters having the following types, in order:</para>
            <list type="number">
            <item><description><see cref="T:EmbedIO.IHttpContext"/></description></item>
            <item><description><see cref="T:EmbedIO.Routing.RouteMatch"/></description></item>
            </list>
            <para>The return type of a compatible handler may be either <see langword="void"/>
            or <see cref="T:System.Threading.Tasks.Task"/>.</para>
            <para>A compatible handler, in order to be added to a <see cref="T:EmbedIO.Routing.RouteVerbResolverCollection"/>,
            must have one or more <see cref="T:EmbedIO.Routing.RouteAttribute">Route</see> attributes.
            The same handler will be added once for each such attribute, either declared on the handler,
            or inherited (if the handler is a virtual method).</para>
            <para>This method behaves according to the type of the <paramref name="target"/>
            parameter:</para>
            <list type="bullet">
            <item><description>if <paramref name="target"/> is a <see cref="T:System.Type"/>, all public static methods of
            the type (either declared on the same type or inherited) that are compatible handlers will be added
            to the collection;</description></item>
            <item><description>if <paramref name="target"/> is an <see cref="T:System.Reflection.Assembly"/>, all public static methods of
            each exported type of the assembly (either declared on the same type or inherited) that are compatible handlers will be added
            to the collection;</description></item>
            <item><description>if <paramref name="target"/> is a <see cref="T:System.Reflection.MethodInfo"/> referring to a compatible handler,
            it will be added to the collection;</description></item>
            <item><description>if <paramref name="target"/> is a <see langword="delegate"/> whose <see cref="P:System.Delegate.Method">Method</see>
            refers to a compatible handler, that method will be added to the collection;</description></item>
            <item><description>if <paramref name="target"/> is none of the above, all public instance methods of
            its type (either declared on the same type or inherited) that are compatible handlers will be bound to <paramref name="target"/>
            and added to the collection.</description></item>
            </list>
            </summary>
            <param name="target">Where to look for compatible handlers. See the Summary section for more information.</param>
            <returns>
            <para>The number of handlers that were added to the collection.</para>
            <para>Note that methods with multiple <see cref="T:EmbedIO.Routing.RouteAttribute">Route</see> attributes
            will count as one for each attribute.</para>
            </returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="target"/> is <see langword="null"/>.</exception>
        </member>
        <member name="M:EmbedIO.Routing.RouteVerbResolverCollection.CreateResolver(EmbedIO.Routing.RouteMatcher)">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.Routing.RouteVerbResolverCollection.OnResolverCalled(EmbedIO.IHttpContext,EmbedIO.Routing.RouteVerbResolver,EmbedIO.Routing.RouteResolutionResult)">
            <inheritdoc />
        </member>
        <member name="T:EmbedIO.Routing.RoutingModule">
            <summary>
            A module that handles requests by resolving route / method pairs associated with handlers.
            </summary>
            <seealso cref="T:EmbedIO.WebModuleBase" />
        </member>
        <member name="M:EmbedIO.Routing.RoutingModule.#ctor(System.String)">
            <inheritdoc cref="M:EmbedIO.WebModuleBase.#ctor(System.String)"/>
            <summary>
            Initializes a new instance of the <see cref="T:EmbedIO.Routing.RoutingModule"/> class.
            </summary>
        </member>
        <member name="M:EmbedIO.Routing.RoutingModule.Add(EmbedIO.HttpVerbs,EmbedIO.Routing.RouteMatcher,EmbedIO.Routing.RouteHandlerCallback)">
            <summary>
            Associates a HTTP method and a route to a handler.
            </summary>
            <param name="verb">A <see cref="T:EmbedIO.HttpVerbs"/> constant representing the HTTP method
            to associate with <paramref name="handler"/>, or <see cref="F:EmbedIO.HttpVerbs.Any"/>
            if <paramref name="handler"/> can handle all HTTP methods.</param>
            <param name="matcher">The <see cref="T:EmbedIO.Routing.RouteMatcher"/> used to match URL paths.</param>
            <param name="handler">A callback used to handle matching contexts.</param>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="matcher"/> is <see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="handler"/> is <see langword="null"/>.</para>
            </exception>
        </member>
        <member name="M:EmbedIO.Routing.RoutingModule.Add(EmbedIO.HttpVerbs,EmbedIO.Routing.RouteMatcher,EmbedIO.Routing.SyncRouteHandlerCallback)">
            <summary>
            Associates a HTTP method and a route to a synchronous handler.
            </summary>
            <param name="verb">A <see cref="T:EmbedIO.HttpVerbs"/> constant representing the HTTP method
            to associate with <paramref name="handler"/>, or <see cref="F:EmbedIO.HttpVerbs.Any"/>
            if <paramref name="handler"/> can handle all HTTP methods.</param>
            <param name="matcher">The <see cref="T:EmbedIO.Routing.RouteMatcher"/> used to match URL paths.</param>
            <param name="handler">A callback used to handle matching contexts.</param>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="matcher"/> is <see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="handler"/> is <see langword="null"/>.</para>
            </exception>
        </member>
        <member name="M:EmbedIO.Routing.RoutingModule.AddFrom(System.Object)">
            <summary>
            <para>Adds handlers, associating them with HTTP method / route pairs by means
            of <see cref="T:EmbedIO.Routing.RouteAttribute">Route</see> attributes.</para>
            <para>See <see cref="M:EmbedIO.Routing.RouteVerbResolverCollection.AddFrom(System.Object)"/> for further information.</para>
            </summary>
            <param name="target">Where to look for compatible handlers.</param>
            <returns>The number of handlers that were added.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="target"/> is <see langword="null"/>.</exception>
        </member>
        <member name="T:EmbedIO.Routing.RoutingModuleBase">
            <summary>
            Base class for modules that handle requests by resolving route / method pairs associated with handlers.
            </summary>
            <seealso cref="T:EmbedIO.WebModuleBase" />
        </member>
        <member name="M:EmbedIO.Routing.RoutingModuleBase.#ctor(System.String)">
            <inheritdoc cref="M:EmbedIO.WebModuleBase.#ctor(System.String)"/>
            <summary>
            Initializes a new instance of the <see cref="T:EmbedIO.Routing.RoutingModuleBase"/> class.
            </summary>
        </member>
        <member name="P:EmbedIO.Routing.RoutingModuleBase.IsFinalHandler">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.Routing.RoutingModuleBase.OnRequestAsync(EmbedIO.IHttpContext)">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.Routing.RoutingModuleBase.AddHandler(EmbedIO.HttpVerbs,EmbedIO.Routing.RouteMatcher,EmbedIO.Routing.RouteHandlerCallback)">
            <summary>
            Associates a HTTP method and a route to a handler.
            </summary>
            <param name="verb">A <see cref="T:EmbedIO.HttpVerbs"/> constant representing the HTTP method
            to associate with <paramref name="handler"/>, or <see cref="F:EmbedIO.HttpVerbs.Any"/>
            if <paramref name="handler"/> can handle all HTTP methods.</param>
            <param name="matcher">The <see cref="T:EmbedIO.Routing.RouteMatcher"/> used to match URL paths.</param>
            <param name="handler">A callback used to handle matching contexts.</param>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="matcher"/> is <see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="handler"/> is <see langword="null"/>.</para>
            </exception>
        </member>
        <member name="M:EmbedIO.Routing.RoutingModuleBase.AddHandler(EmbedIO.HttpVerbs,EmbedIO.Routing.RouteMatcher,EmbedIO.Routing.SyncRouteHandlerCallback)">
            <summary>
            Associates a HTTP method and a route to a synchronous handler.
            </summary>
            <param name="verb">A <see cref="T:EmbedIO.HttpVerbs"/> constant representing the HTTP method
            to associate with <paramref name="handler"/>, or <see cref="F:EmbedIO.HttpVerbs.Any"/>
            if <paramref name="handler"/> can handle all HTTP methods.</param>
            <param name="matcher">The <see cref="T:EmbedIO.Routing.RouteMatcher"/> used to match URL paths.</param>
            <param name="handler">A callback used to handle matching contexts.</param>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="matcher"/> is <see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="handler"/> is <see langword="null"/>.</para>
            </exception>
        </member>
        <member name="M:EmbedIO.Routing.RoutingModuleBase.AddHandlersFrom(System.Object)">
            <summary>
            <para>Adds handlers, associating them with HTTP method / route pairs by means
            of <see cref="T:EmbedIO.Routing.RouteAttribute">Route</see> attributes.</para>
            <para>See <see cref="M:EmbedIO.Routing.RouteVerbResolverCollection.AddFrom(System.Object)"/> for further information.</para>
            </summary>
            <param name="target">Where to look for compatible handlers.</param>
            <returns>The number of handlers that were added.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="target"/> is <see langword="null"/>.</exception>
        </member>
        <member name="M:EmbedIO.Routing.RoutingModuleBase.OnAny(EmbedIO.Routing.RouteMatcher,EmbedIO.Routing.RouteHandlerCallback)">
            <summary>
            Associates all requests matching a route to a handler.
            </summary>
            <param name="matcher">The <see cref="T:EmbedIO.Routing.RouteMatcher"/> used to match URL paths.</param>
            <param name="handler">A callback used to handle matching contexts.</param>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="matcher"/> is <see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="handler"/> is <see langword="null"/>.</para>
            </exception>
        </member>
        <member name="M:EmbedIO.Routing.RoutingModuleBase.OnAny(EmbedIO.Routing.RouteMatcher,EmbedIO.Routing.SyncRouteHandlerCallback)">
            <summary>
            Associates all requests matching a route to a synchronous handler.
            </summary>
            <param name="matcher">The <see cref="T:EmbedIO.Routing.RouteMatcher"/> used to match URL paths.</param>
            <param name="handler">A callback used to handle matching contexts.</param>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="matcher"/> is <see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="handler"/> is <see langword="null"/>.</para>
            </exception>
        </member>
        <member name="M:EmbedIO.Routing.RoutingModuleBase.OnDelete(EmbedIO.Routing.RouteMatcher,EmbedIO.Routing.RouteHandlerCallback)">
            <summary>
            Associates <c>DELETE</c> requests matching a route to a handler.
            </summary>
            <param name="matcher">The <see cref="T:EmbedIO.Routing.RouteMatcher"/> used to match URL paths.</param>
            <param name="handler">A callback used to handle matching contexts.</param>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="matcher"/> is <see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="handler"/> is <see langword="null"/>.</para>
            </exception>
        </member>
        <member name="M:EmbedIO.Routing.RoutingModuleBase.OnDelete(EmbedIO.Routing.RouteMatcher,EmbedIO.Routing.SyncRouteHandlerCallback)">
            <summary>
            Associates <c>DELETE</c> requests matching a route to a synchronous handler.
            </summary>
            <param name="matcher">The <see cref="T:EmbedIO.Routing.RouteMatcher"/> used to match URL paths.</param>
            <param name="handler">A callback used to handle matching contexts.</param>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="matcher"/> is <see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="handler"/> is <see langword="null"/>.</para>
            </exception>
        </member>
        <member name="M:EmbedIO.Routing.RoutingModuleBase.OnGet(EmbedIO.Routing.RouteMatcher,EmbedIO.Routing.RouteHandlerCallback)">
            <summary>
            Associates <c>GET</c> requests matching a route to a handler.
            </summary>
            <param name="matcher">The <see cref="T:EmbedIO.Routing.RouteMatcher"/> used to match URL paths.</param>
            <param name="handler">A callback used to handle matching contexts.</param>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="matcher"/> is <see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="handler"/> is <see langword="null"/>.</para>
            </exception>
        </member>
        <member name="M:EmbedIO.Routing.RoutingModuleBase.OnGet(EmbedIO.Routing.RouteMatcher,EmbedIO.Routing.SyncRouteHandlerCallback)">
            <summary>
            Associates <c>GET</c> requests matching a route to a synchronous handler.
            </summary>
            <param name="matcher">The <see cref="T:EmbedIO.Routing.RouteMatcher"/> used to match URL paths.</param>
            <param name="handler">A callback used to handle matching contexts.</param>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="matcher"/> is <see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="handler"/> is <see langword="null"/>.</para>
            </exception>
        </member>
        <member name="M:EmbedIO.Routing.RoutingModuleBase.OnHead(EmbedIO.Routing.RouteMatcher,EmbedIO.Routing.RouteHandlerCallback)">
            <summary>
            Associates <c>HEAD</c> requests matching a route to a handler.
            </summary>
            <param name="matcher">The <see cref="T:EmbedIO.Routing.RouteMatcher"/> used to match URL paths.</param>
            <param name="handler">A callback used to handle matching contexts.</param>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="matcher"/> is <see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="handler"/> is <see langword="null"/>.</para>
            </exception>
        </member>
        <member name="M:EmbedIO.Routing.RoutingModuleBase.OnHead(EmbedIO.Routing.RouteMatcher,EmbedIO.Routing.SyncRouteHandlerCallback)">
            <summary>
            Associates <c>HEAD</c> requests matching a route to a synchronous handler.
            </summary>
            <param name="matcher">The <see cref="T:EmbedIO.Routing.RouteMatcher"/> used to match URL paths.</param>
            <param name="handler">A callback used to handle matching contexts.</param>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="matcher"/> is <see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="handler"/> is <see langword="null"/>.</para>
            </exception>
        </member>
        <member name="M:EmbedIO.Routing.RoutingModuleBase.OnOptions(EmbedIO.Routing.RouteMatcher,EmbedIO.Routing.RouteHandlerCallback)">
            <summary>
            Associates <c>OPTIONS</c> requests matching a route to a handler.
            </summary>
            <param name="matcher">The <see cref="T:EmbedIO.Routing.RouteMatcher"/> used to match URL paths.</param>
            <param name="handler">A callback used to handle matching contexts.</param>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="matcher"/> is <see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="handler"/> is <see langword="null"/>.</para>
            </exception>
        </member>
        <member name="M:EmbedIO.Routing.RoutingModuleBase.OnOptions(EmbedIO.Routing.RouteMatcher,EmbedIO.Routing.SyncRouteHandlerCallback)">
            <summary>
            Associates <c>OPTIONS</c> requests matching a route to a synchronous handler.
            </summary>
            <param name="matcher">The <see cref="T:EmbedIO.Routing.RouteMatcher"/> used to match URL paths.</param>
            <param name="handler">A callback used to handle matching contexts.</param>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="matcher"/> is <see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="handler"/> is <see langword="null"/>.</para>
            </exception>
        </member>
        <member name="M:EmbedIO.Routing.RoutingModuleBase.OnPatch(EmbedIO.Routing.RouteMatcher,EmbedIO.Routing.RouteHandlerCallback)">
            <summary>
            Associates <c>PATCH</c> requests matching a route to a handler.
            </summary>
            <param name="matcher">The <see cref="T:EmbedIO.Routing.RouteMatcher"/> used to match URL paths.</param>
            <param name="handler">A callback used to handle matching contexts.</param>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="matcher"/> is <see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="handler"/> is <see langword="null"/>.</para>
            </exception>
        </member>
        <member name="M:EmbedIO.Routing.RoutingModuleBase.OnPatch(EmbedIO.Routing.RouteMatcher,EmbedIO.Routing.SyncRouteHandlerCallback)">
            <summary>
            Associates <c>PATCH</c> requests matching a route to a synchronous handler.
            </summary>
            <param name="matcher">The <see cref="T:EmbedIO.Routing.RouteMatcher"/> used to match URL paths.</param>
            <param name="handler">A callback used to handle matching contexts.</param>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="matcher"/> is <see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="handler"/> is <see langword="null"/>.</para>
            </exception>
        </member>
        <member name="M:EmbedIO.Routing.RoutingModuleBase.OnPost(EmbedIO.Routing.RouteMatcher,EmbedIO.Routing.RouteHandlerCallback)">
            <summary>
            Associates <c>POST</c> requests matching a route to a handler.
            </summary>
            <param name="matcher">The <see cref="T:EmbedIO.Routing.RouteMatcher"/> used to match URL paths.</param>
            <param name="handler">A callback used to handle matching contexts.</param>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="matcher"/> is <see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="handler"/> is <see langword="null"/>.</para>
            </exception>
        </member>
        <member name="M:EmbedIO.Routing.RoutingModuleBase.OnPost(EmbedIO.Routing.RouteMatcher,EmbedIO.Routing.SyncRouteHandlerCallback)">
            <summary>
            Associates <c>POST</c> requests matching a route to a synchronous handler.
            </summary>
            <param name="matcher">The <see cref="T:EmbedIO.Routing.RouteMatcher"/> used to match URL paths.</param>
            <param name="handler">A callback used to handle matching contexts.</param>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="matcher"/> is <see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="handler"/> is <see langword="null"/>.</para>
            </exception>
        </member>
        <member name="M:EmbedIO.Routing.RoutingModuleBase.OnPut(EmbedIO.Routing.RouteMatcher,EmbedIO.Routing.RouteHandlerCallback)">
            <summary>
            Associates <c>PUT</c> requests matching a route to a handler.
            </summary>
            <param name="matcher">The <see cref="T:EmbedIO.Routing.RouteMatcher"/> used to match URL paths.</param>
            <param name="handler">A callback used to handle matching contexts.</param>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="matcher"/> is <see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="handler"/> is <see langword="null"/>.</para>
            </exception>
        </member>
        <member name="M:EmbedIO.Routing.RoutingModuleBase.OnPut(EmbedIO.Routing.RouteMatcher,EmbedIO.Routing.SyncRouteHandlerCallback)">
            <summary>
            Associates <c>PUT</c> requests matching a route to a synchronous handler.
            </summary>
            <param name="matcher">The <see cref="T:EmbedIO.Routing.RouteMatcher"/> used to match URL paths.</param>
            <param name="handler">A callback used to handle matching contexts.</param>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="matcher"/> is <see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="handler"/> is <see langword="null"/>.</para>
            </exception>
        </member>
        <member name="M:EmbedIO.Routing.RoutingModuleBase.OnPathNotFoundAsync(EmbedIO.IHttpContext)">
            <summary>
            <para>Called when no route is matched for the requested URL path.</para>
            <para>The default behavior is to send an empty <c>404 Not Found</c> response.</para>
            </summary>
            <param name="context">The context of the request being handled.</param>
            <returns>A <see cref="T:System.Threading.Tasks.Task"/> representing the ongoing operation.</returns>
        </member>
        <member name="M:EmbedIO.Routing.RoutingModuleBase.OnMethodNotAllowedAsync(EmbedIO.IHttpContext)">
            <summary>
            <para>Called when at least one route is matched for the requested URL path,
            but none of them is associated with the HTTP method of the request.</para>
            <para>The default behavior is to send an empty <c>405 Method Not Allowed</c> response.</para>
            </summary>
            <param name="context">The context of the request being handled.</param>
            <returns>A <see cref="T:System.Threading.Tasks.Task"/> representing the ongoing operation.</returns>
        </member>
        <member name="T:EmbedIO.Routing.RoutingModuleExtensions">
            <summary>
            Provides extension methods for <see cref="T:EmbedIO.Routing.RoutingModule"/>.
            </summary>
        </member>
        <member name="M:EmbedIO.Routing.RoutingModuleExtensions.Handle(EmbedIO.Routing.RoutingModule,EmbedIO.HttpVerbs,System.String,System.Boolean,EmbedIO.Routing.RouteHandlerCallback)">
            <summary>
            Adds a handler to a <see cref="T:EmbedIO.Routing.RoutingModule"/>.
            </summary>
            <param name="this">The <see cref="T:EmbedIO.Routing.RoutingModule"/> on which this method is called.</param>
            <param name="verb">A <see cref="T:EmbedIO.HttpVerbs"/> constant representing the HTTP method
            to associate with <paramref name="handler"/>, or <see cref="F:EmbedIO.HttpVerbs.Any"/>
            if <paramref name="handler"/> can handle all HTTP methods.</param>
            <param name="route">The route to match URL paths against.</param>
            <param name="isBaseRoute"><see langword="true"/> if <paramref name="route"/>
            is a base route; <see langword="false"/> if <paramref name="route"/>
            is a terminal (non-base) route.</param>
            <param name="handler">A callback used to handle matching contexts.</param>
            <returns><paramref name="this"/> with the handler added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="route"/> is <see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="handler"/> is <see langword="null"/>.</para>
            </exception>
            <exception cref="T:System.FormatException"><paramref name="route"/> is not a valid route.</exception>
            <seealso cref="M:EmbedIO.Routing.RoutingModule.Add(EmbedIO.HttpVerbs,EmbedIO.Routing.RouteMatcher,EmbedIO.Routing.RouteHandlerCallback)"/>
        </member>
        <member name="M:EmbedIO.Routing.RoutingModuleExtensions.Handle(EmbedIO.Routing.RoutingModule,EmbedIO.HttpVerbs,System.String,System.Boolean,EmbedIO.Routing.SyncRouteHandlerCallback)">
            <summary>
            Adds a synchronous handler to a <see cref="T:EmbedIO.Routing.RoutingModule"/>.
            </summary>
            <param name="this">The <see cref="T:EmbedIO.Routing.RoutingModule"/> on which this method is called.</param>
            <param name="verb">A <see cref="T:EmbedIO.HttpVerbs"/> constant representing the HTTP method
            to associate with <paramref name="handler"/>, or <see cref="F:EmbedIO.HttpVerbs.Any"/>
            if <paramref name="handler"/> can handle all HTTP methods.</param>
            <param name="route">The route to match URL paths against.</param>
            <param name="isBaseRoute"><see langword="true"/> if <paramref name="route"/>
            is a base route; <see langword="false"/> if <paramref name="route"/>
            is a terminal (non-base) route.</param>
            <param name="handler">A callback used to handle matching contexts.</param>
            <returns><paramref name="this"/> with the handler added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="route"/> is <see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="handler"/> is <see langword="null"/>.</para>
            </exception>
            <exception cref="T:System.FormatException"><paramref name="route"/> is not a valid route.</exception>
            <seealso cref="M:EmbedIO.Routing.RoutingModule.Add(EmbedIO.HttpVerbs,EmbedIO.Routing.RouteMatcher,EmbedIO.Routing.RouteHandlerCallback)"/>
        </member>
        <member name="M:EmbedIO.Routing.RoutingModuleExtensions.OnAny(EmbedIO.Routing.RoutingModule,System.String,System.Boolean,EmbedIO.Routing.RouteHandlerCallback)">
            <summary>
            Associates all requests matching a route to a handler.
            </summary>
            <param name="this">The <see cref="T:EmbedIO.Routing.RoutingModule"/> on which this method is called.</param>
            <param name="route">The route to match URL paths against.</param>
            <param name="isBaseRoute"><see langword="true"/> if <paramref name="route"/>
            is a base route; <see langword="false"/> if <paramref name="route"/>
            is a terminal (non-base) route.</param>
            <param name="handler">A callback used to handle matching contexts.</param>
            <returns><paramref name="this"/> with the handler added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="route"/> is <see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="handler"/> is <see langword="null"/>.</para>
            </exception>
            <exception cref="T:System.FormatException"><paramref name="route"/> is not a valid route.</exception>
        </member>
        <member name="M:EmbedIO.Routing.RoutingModuleExtensions.OnAny(EmbedIO.Routing.RoutingModule,System.String,System.Boolean,EmbedIO.Routing.SyncRouteHandlerCallback)">
            <summary>
            Associates all requests matching a route to a synchronous handler.
            </summary>
            <param name="this">The <see cref="T:EmbedIO.Routing.RoutingModule"/> on which this method is called.</param>
            <param name="route">The route to match URL paths against.</param>
            <param name="isBaseRoute"><see langword="true"/> if <paramref name="route"/>
            is a base route; <see langword="false"/> if <paramref name="route"/>
            is a terminal (non-base) route.</param>
            <param name="handler">A callback used to handle matching contexts.</param>
            <returns><paramref name="this"/> with the handler added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="route"/> is <see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="handler"/> is <see langword="null"/>.</para>
            </exception>
            <exception cref="T:System.FormatException"><paramref name="route"/> is not a valid route.</exception>
        </member>
        <member name="M:EmbedIO.Routing.RoutingModuleExtensions.OnDelete(EmbedIO.Routing.RoutingModule,System.String,System.Boolean,EmbedIO.Routing.RouteHandlerCallback)">
            <summary>
            Associates <c>DELETE</c> requests matching a route to a handler.
            </summary>
            <param name="this">The <see cref="T:EmbedIO.Routing.RoutingModule"/> on which this method is called.</param>
            <param name="route">The route to match URL paths against.</param>
            <param name="isBaseRoute"><see langword="true"/> if <paramref name="route"/>
            is a base route; <see langword="false"/> if <paramref name="route"/>
            is a terminal (non-base) route.</param>
            <param name="handler">A callback used to handle matching contexts.</param>
            <returns><paramref name="this"/> with the handler added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="route"/> is <see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="handler"/> is <see langword="null"/>.</para>
            </exception>
            <exception cref="T:System.FormatException"><paramref name="route"/> is not a valid route.</exception>
        </member>
        <member name="M:EmbedIO.Routing.RoutingModuleExtensions.OnDelete(EmbedIO.Routing.RoutingModule,System.String,System.Boolean,EmbedIO.Routing.SyncRouteHandlerCallback)">
            <summary>
            Associates <c>DELETE</c> requests matching a route to a synchronous handler.
            </summary>
            <param name="this">The <see cref="T:EmbedIO.Routing.RoutingModule"/> on which this method is called.</param>
            <param name="route">The route to match URL paths against.</param>
            <param name="isBaseRoute"><see langword="true"/> if <paramref name="route"/>
            is a base route; <see langword="false"/> if <paramref name="route"/>
            is a terminal (non-base) route.</param>
            <param name="handler">A callback used to handle matching contexts.</param>
            <returns><paramref name="this"/> with the handler added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="route"/> is <see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="handler"/> is <see langword="null"/>.</para>
            </exception>
            <exception cref="T:System.FormatException"><paramref name="route"/> is not a valid route.</exception>
        </member>
        <member name="M:EmbedIO.Routing.RoutingModuleExtensions.OnGet(EmbedIO.Routing.RoutingModule,System.String,System.Boolean,EmbedIO.Routing.RouteHandlerCallback)">
            <summary>
            Associates <c>GET</c> requests matching a route to a handler.
            </summary>
            <param name="this">The <see cref="T:EmbedIO.Routing.RoutingModule"/> on which this method is called.</param>
            <param name="route">The route to match URL paths against.</param>
            <param name="isBaseRoute"><see langword="true"/> if <paramref name="route"/>
            is a base route; <see langword="false"/> if <paramref name="route"/>
            is a terminal (non-base) route.</param>
            <param name="handler">A callback used to handle matching contexts.</param>
            <returns><paramref name="this"/> with the handler added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="route"/> is <see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="handler"/> is <see langword="null"/>.</para>
            </exception>
            <exception cref="T:System.FormatException"><paramref name="route"/> is not a valid route.</exception>
        </member>
        <member name="M:EmbedIO.Routing.RoutingModuleExtensions.OnGet(EmbedIO.Routing.RoutingModule,System.String,System.Boolean,EmbedIO.Routing.SyncRouteHandlerCallback)">
            <summary>
            Associates <c>GET</c> requests matching a route to a synchronous handler.
            </summary>
            <param name="this">The <see cref="T:EmbedIO.Routing.RoutingModule"/> on which this method is called.</param>
            <param name="route">The route to match URL paths against.</param>
            <param name="isBaseRoute"><see langword="true"/> if <paramref name="route"/>
            is a base route; <see langword="false"/> if <paramref name="route"/>
            is a terminal (non-base) route.</param>
            <param name="handler">A callback used to handle matching contexts.</param>
            <returns><paramref name="this"/> with the handler added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="route"/> is <see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="handler"/> is <see langword="null"/>.</para>
            </exception>
            <exception cref="T:System.FormatException"><paramref name="route"/> is not a valid route.</exception>
        </member>
        <member name="M:EmbedIO.Routing.RoutingModuleExtensions.OnHead(EmbedIO.Routing.RoutingModule,System.String,System.Boolean,EmbedIO.Routing.RouteHandlerCallback)">
            <summary>
            Associates <c>HEAD</c> requests matching a route to a handler.
            </summary>
            <param name="this">The <see cref="T:EmbedIO.Routing.RoutingModule"/> on which this method is called.</param>
            <param name="route">The route to match URL paths against.</param>
            <param name="isBaseRoute"><see langword="true"/> if <paramref name="route"/>
            is a base route; <see langword="false"/> if <paramref name="route"/>
            is a terminal (non-base) route.</param>
            <param name="handler">A callback used to handle matching contexts.</param>
            <returns><paramref name="this"/> with the handler added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="route"/> is <see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="handler"/> is <see langword="null"/>.</para>
            </exception>
            <exception cref="T:System.FormatException"><paramref name="route"/> is not a valid route.</exception>
        </member>
        <member name="M:EmbedIO.Routing.RoutingModuleExtensions.OnHead(EmbedIO.Routing.RoutingModule,System.String,System.Boolean,EmbedIO.Routing.SyncRouteHandlerCallback)">
            <summary>
            Associates <c>HEAD</c> requests matching a route to a synchronous handler.
            </summary>
            <param name="this">The <see cref="T:EmbedIO.Routing.RoutingModule"/> on which this method is called.</param>
            <param name="route">The route to match URL paths against.</param>
            <param name="isBaseRoute"><see langword="true"/> if <paramref name="route"/>
            is a base route; <see langword="false"/> if <paramref name="route"/>
            is a terminal (non-base) route.</param>
            <param name="handler">A callback used to handle matching contexts.</param>
            <returns><paramref name="this"/> with the handler added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="route"/> is <see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="handler"/> is <see langword="null"/>.</para>
            </exception>
            <exception cref="T:System.FormatException"><paramref name="route"/> is not a valid route.</exception>
        </member>
        <member name="M:EmbedIO.Routing.RoutingModuleExtensions.OnOptions(EmbedIO.Routing.RoutingModule,System.String,System.Boolean,EmbedIO.Routing.RouteHandlerCallback)">
            <summary>
            Associates <c>OPTIONS</c> requests matching a route to a handler.
            </summary>
            <param name="this">The <see cref="T:EmbedIO.Routing.RoutingModule"/> on which this method is called.</param>
            <param name="route">The route to match URL paths against.</param>
            <param name="isBaseRoute"><see langword="true"/> if <paramref name="route"/>
            is a base route; <see langword="false"/> if <paramref name="route"/>
            is a terminal (non-base) route.</param>
            <param name="handler">A callback used to handle matching contexts.</param>
            <returns><paramref name="this"/> with the handler added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="route"/> is <see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="handler"/> is <see langword="null"/>.</para>
            </exception>
            <exception cref="T:System.FormatException"><paramref name="route"/> is not a valid route.</exception>
        </member>
        <member name="M:EmbedIO.Routing.RoutingModuleExtensions.OnOptions(EmbedIO.Routing.RoutingModule,System.String,System.Boolean,EmbedIO.Routing.SyncRouteHandlerCallback)">
            <summary>
            Associates <c>OPTIONS</c> requests matching a route to a synchronous handler.
            </summary>
            <param name="this">The <see cref="T:EmbedIO.Routing.RoutingModule"/> on which this method is called.</param>
            <param name="route">The route to match URL paths against.</param>
            <param name="isBaseRoute"><see langword="true"/> if <paramref name="route"/>
            is a base route; <see langword="false"/> if <paramref name="route"/>
            is a terminal (non-base) route.</param>
            <param name="handler">A callback used to handle matching contexts.</param>
            <returns><paramref name="this"/> with the handler added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="route"/> is <see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="handler"/> is <see langword="null"/>.</para>
            </exception>
            <exception cref="T:System.FormatException"><paramref name="route"/> is not a valid route.</exception>
        </member>
        <member name="M:EmbedIO.Routing.RoutingModuleExtensions.OnPatch(EmbedIO.Routing.RoutingModule,System.String,System.Boolean,EmbedIO.Routing.RouteHandlerCallback)">
            <summary>
            Associates <c>PATCH</c> requests matching a route to a handler.
            </summary>
            <param name="this">The <see cref="T:EmbedIO.Routing.RoutingModule"/> on which this method is called.</param>
            <param name="route">The route to match URL paths against.</param>
            <param name="isBaseRoute"><see langword="true"/> if <paramref name="route"/>
            is a base route; <see langword="false"/> if <paramref name="route"/>
            is a terminal (non-base) route.</param>
            <param name="handler">A callback used to handle matching contexts.</param>
            <returns><paramref name="this"/> with the handler added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="route"/> is <see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="handler"/> is <see langword="null"/>.</para>
            </exception>
            <exception cref="T:System.FormatException"><paramref name="route"/> is not a valid route.</exception>
        </member>
        <member name="M:EmbedIO.Routing.RoutingModuleExtensions.OnPatch(EmbedIO.Routing.RoutingModule,System.String,System.Boolean,EmbedIO.Routing.SyncRouteHandlerCallback)">
            <summary>
            Associates <c>PATCH</c> requests matching a route to a synchronous handler.
            </summary>
            <param name="this">The <see cref="T:EmbedIO.Routing.RoutingModule"/> on which this method is called.</param>
            <param name="route">The route to match URL paths against.</param>
            <param name="isBaseRoute"><see langword="true"/> if <paramref name="route"/>
            is a base route; <see langword="false"/> if <paramref name="route"/>
            is a terminal (non-base) route.</param>
            <param name="handler">A callback used to handle matching contexts.</param>
            <returns><paramref name="this"/> with the handler added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="route"/> is <see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="handler"/> is <see langword="null"/>.</para>
            </exception>
            <exception cref="T:System.FormatException"><paramref name="route"/> is not a valid route.</exception>
        </member>
        <member name="M:EmbedIO.Routing.RoutingModuleExtensions.OnPost(EmbedIO.Routing.RoutingModule,System.String,System.Boolean,EmbedIO.Routing.RouteHandlerCallback)">
            <summary>
            Associates <c>POST</c> requests matching a route to a handler.
            </summary>
            <param name="this">The <see cref="T:EmbedIO.Routing.RoutingModule"/> on which this method is called.</param>
            <param name="route">The route to match URL paths against.</param>
            <param name="isBaseRoute"><see langword="true"/> if <paramref name="route"/>
            is a base route; <see langword="false"/> if <paramref name="route"/>
            is a terminal (non-base) route.</param>
            <param name="handler">A callback used to handle matching contexts.</param>
            <returns><paramref name="this"/> with the handler added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="route"/> is <see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="handler"/> is <see langword="null"/>.</para>
            </exception>
            <exception cref="T:System.FormatException"><paramref name="route"/> is not a valid route.</exception>
        </member>
        <member name="M:EmbedIO.Routing.RoutingModuleExtensions.OnPost(EmbedIO.Routing.RoutingModule,System.String,System.Boolean,EmbedIO.Routing.SyncRouteHandlerCallback)">
            <summary>
            Associates <c>POST</c> requests matching a route to a synchronous handler.
            </summary>
            <param name="this">The <see cref="T:EmbedIO.Routing.RoutingModule"/> on which this method is called.</param>
            <param name="route">The route to match URL paths against.</param>
            <param name="isBaseRoute"><see langword="true"/> if <paramref name="route"/>
            is a base route; <see langword="false"/> if <paramref name="route"/>
            is a terminal (non-base) route.</param>
            <param name="handler">A callback used to handle matching contexts.</param>
            <returns><paramref name="this"/> with the handler added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="route"/> is <see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="handler"/> is <see langword="null"/>.</para>
            </exception>
            <exception cref="T:System.FormatException"><paramref name="route"/> is not a valid route.</exception>
        </member>
        <member name="M:EmbedIO.Routing.RoutingModuleExtensions.OnPut(EmbedIO.Routing.RoutingModule,System.String,System.Boolean,EmbedIO.Routing.RouteHandlerCallback)">
            <summary>
            Associates <c>PUT</c> requests matching a route to a handler.
            </summary>
            <param name="this">The <see cref="T:EmbedIO.Routing.RoutingModule"/> on which this method is called.</param>
            <param name="route">The route to match URL paths against.</param>
            <param name="isBaseRoute"><see langword="true"/> if <paramref name="route"/>
            is a base route; <see langword="false"/> if <paramref name="route"/>
            is a terminal (non-base) route.</param>
            <param name="handler">A callback used to handle matching contexts.</param>
            <returns><paramref name="this"/> with the handler added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="route"/> is <see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="handler"/> is <see langword="null"/>.</para>
            </exception>
            <exception cref="T:System.FormatException"><paramref name="route"/> is not a valid route.</exception>
        </member>
        <member name="M:EmbedIO.Routing.RoutingModuleExtensions.OnPut(EmbedIO.Routing.RoutingModule,System.String,System.Boolean,EmbedIO.Routing.SyncRouteHandlerCallback)">
            <summary>
            Associates <c>PUT</c> requests matching a route to a synchronous handler.
            </summary>
            <param name="this">The <see cref="T:EmbedIO.Routing.RoutingModule"/> on which this method is called.</param>
            <param name="route">The route to match URL paths against.</param>
            <param name="isBaseRoute"><see langword="true"/> if <paramref name="route"/>
            is a base route; <see langword="false"/> if <paramref name="route"/>
            is a terminal (non-base) route.</param>
            <param name="handler">A callback used to handle matching contexts.</param>
            <returns><paramref name="this"/> with the handler added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="route"/> is <see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="handler"/> is <see langword="null"/>.</para>
            </exception>
            <exception cref="T:System.FormatException"><paramref name="route"/> is not a valid route.</exception>
        </member>
        <member name="M:EmbedIO.Routing.RoutingModuleExtensions.Handle(EmbedIO.Routing.RoutingModule,EmbedIO.HttpVerbs,EmbedIO.Routing.RouteMatcher,EmbedIO.Routing.RouteHandlerCallback)">
            <summary>
            Adds a handler to a <see cref="T:EmbedIO.Routing.RoutingModule"/>.
            </summary>
            <param name="this">The <see cref="T:EmbedIO.Routing.RoutingModule"/> on which this method is called.</param>
            <param name="verb">A <see cref="T:EmbedIO.HttpVerbs"/> constant representing the HTTP method
            to associate with <paramref name="handler"/>, or <see cref="F:EmbedIO.HttpVerbs.Any"/>
            if <paramref name="handler"/> can handle all HTTP methods.</param>
            <param name="matcher">The <see cref="T:EmbedIO.Routing.RouteMatcher"/> used to match URL paths.</param>
            <param name="handler">A callback used to handle matching contexts.</param>
            <returns><paramref name="this"/> with the handler added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="matcher"/> is <see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="handler"/> is <see langword="null"/>.</para>
            </exception>
            <seealso cref="M:EmbedIO.Routing.RoutingModule.Add(EmbedIO.HttpVerbs,EmbedIO.Routing.RouteMatcher,EmbedIO.Routing.RouteHandlerCallback)"/>
        </member>
        <member name="M:EmbedIO.Routing.RoutingModuleExtensions.Handle(EmbedIO.Routing.RoutingModule,EmbedIO.HttpVerbs,EmbedIO.Routing.RouteMatcher,EmbedIO.Routing.SyncRouteHandlerCallback)">
            <summary>
            Adds a synchronous handler to a <see cref="T:EmbedIO.Routing.RoutingModule"/>.
            </summary>
            <param name="this">The <see cref="T:EmbedIO.Routing.RoutingModule"/> on which this method is called.</param>
            <param name="verb">A <see cref="T:EmbedIO.HttpVerbs"/> constant representing the HTTP method
            to associate with <paramref name="handler"/>, or <see cref="F:EmbedIO.HttpVerbs.Any"/>
            if <paramref name="handler"/> can handle all HTTP methods.</param>
            <param name="matcher">The <see cref="T:EmbedIO.Routing.RouteMatcher"/> used to match URL paths.</param>
            <param name="handler">A callback used to handle matching contexts.</param>
            <returns><paramref name="this"/> with the handler added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="matcher"/> is <see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="handler"/> is <see langword="null"/>.</para>
            </exception>
            <seealso cref="M:EmbedIO.Routing.RoutingModule.Add(EmbedIO.HttpVerbs,EmbedIO.Routing.RouteMatcher,EmbedIO.Routing.SyncRouteHandlerCallback)"/>
        </member>
        <member name="M:EmbedIO.Routing.RoutingModuleExtensions.OnAny(EmbedIO.Routing.RoutingModule,EmbedIO.Routing.RouteMatcher,EmbedIO.Routing.RouteHandlerCallback)">
            <summary>
            Associates all requests matching a route to a handler.
            </summary>
            <param name="this">The <see cref="T:EmbedIO.Routing.RoutingModule"/> on which this method is called.</param>
            <param name="matcher">The <see cref="T:EmbedIO.Routing.RouteMatcher"/> used to match URL paths.</param>
            <param name="handler">A callback used to handle matching contexts.</param>
            <returns><paramref name="this"/> with the handler added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="matcher"/> is <see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="handler"/> is <see langword="null"/>.</para>
            </exception>
        </member>
        <member name="M:EmbedIO.Routing.RoutingModuleExtensions.OnAny(EmbedIO.Routing.RoutingModule,EmbedIO.Routing.RouteMatcher,EmbedIO.Routing.SyncRouteHandlerCallback)">
            <summary>
            Associates all requests matching a route to a synchronous handler.
            </summary>
            <param name="this">The <see cref="T:EmbedIO.Routing.RoutingModule"/> on which this method is called.</param>
            <param name="matcher">The <see cref="T:EmbedIO.Routing.RouteMatcher"/> used to match URL paths.</param>
            <param name="handler">A callback used to handle matching contexts.</param>
            <returns><paramref name="this"/> with the handler added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="matcher"/> is <see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="handler"/> is <see langword="null"/>.</para>
            </exception>
        </member>
        <member name="M:EmbedIO.Routing.RoutingModuleExtensions.OnDelete(EmbedIO.Routing.RoutingModule,EmbedIO.Routing.RouteMatcher,EmbedIO.Routing.RouteHandlerCallback)">
            <summary>
            Associates <c>DELETE</c> requests matching a route to a handler.
            </summary>
            <param name="this">The <see cref="T:EmbedIO.Routing.RoutingModule"/> on which this method is called.</param>
            <param name="matcher">The <see cref="T:EmbedIO.Routing.RouteMatcher"/> used to match URL paths.</param>
            <param name="handler">A callback used to handle matching contexts.</param>
            <returns><paramref name="this"/> with the handler added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="matcher"/> is <see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="handler"/> is <see langword="null"/>.</para>
            </exception>
        </member>
        <member name="M:EmbedIO.Routing.RoutingModuleExtensions.OnDelete(EmbedIO.Routing.RoutingModule,EmbedIO.Routing.RouteMatcher,EmbedIO.Routing.SyncRouteHandlerCallback)">
            <summary>
            Associates <c>DELETE</c> requests matching a route to a synchronous handler.
            </summary>
            <param name="this">The <see cref="T:EmbedIO.Routing.RoutingModule"/> on which this method is called.</param>
            <param name="matcher">The <see cref="T:EmbedIO.Routing.RouteMatcher"/> used to match URL paths.</param>
            <param name="handler">A callback used to handle matching contexts.</param>
            <returns><paramref name="this"/> with the handler added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="matcher"/> is <see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="handler"/> is <see langword="null"/>.</para>
            </exception>
        </member>
        <member name="M:EmbedIO.Routing.RoutingModuleExtensions.OnGet(EmbedIO.Routing.RoutingModule,EmbedIO.Routing.RouteMatcher,EmbedIO.Routing.RouteHandlerCallback)">
            <summary>
            Associates <c>GET</c> requests matching a route to a handler.
            </summary>
            <param name="this">The <see cref="T:EmbedIO.Routing.RoutingModule"/> on which this method is called.</param>
            <param name="matcher">The <see cref="T:EmbedIO.Routing.RouteMatcher"/> used to match URL paths.</param>
            <param name="handler">A callback used to handle matching contexts.</param>
            <returns><paramref name="this"/> with the handler added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="matcher"/> is <see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="handler"/> is <see langword="null"/>.</para>
            </exception>
        </member>
        <member name="M:EmbedIO.Routing.RoutingModuleExtensions.OnGet(EmbedIO.Routing.RoutingModule,EmbedIO.Routing.RouteMatcher,EmbedIO.Routing.SyncRouteHandlerCallback)">
            <summary>
            Associates <c>GET</c> requests matching a route to a synchronous handler.
            </summary>
            <param name="this">The <see cref="T:EmbedIO.Routing.RoutingModule"/> on which this method is called.</param>
            <param name="matcher">The <see cref="T:EmbedIO.Routing.RouteMatcher"/> used to match URL paths.</param>
            <param name="handler">A callback used to handle matching contexts.</param>
            <returns><paramref name="this"/> with the handler added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="matcher"/> is <see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="handler"/> is <see langword="null"/>.</para>
            </exception>
        </member>
        <member name="M:EmbedIO.Routing.RoutingModuleExtensions.OnHead(EmbedIO.Routing.RoutingModule,EmbedIO.Routing.RouteMatcher,EmbedIO.Routing.RouteHandlerCallback)">
            <summary>
            Associates <c>HEAD</c> requests matching a route to a handler.
            </summary>
            <param name="this">The <see cref="T:EmbedIO.Routing.RoutingModule"/> on which this method is called.</param>
            <param name="matcher">The <see cref="T:EmbedIO.Routing.RouteMatcher"/> used to match URL paths.</param>
            <param name="handler">A callback used to handle matching contexts.</param>
            <returns><paramref name="this"/> with the handler added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="matcher"/> is <see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="handler"/> is <see langword="null"/>.</para>
            </exception>
        </member>
        <member name="M:EmbedIO.Routing.RoutingModuleExtensions.OnHead(EmbedIO.Routing.RoutingModule,EmbedIO.Routing.RouteMatcher,EmbedIO.Routing.SyncRouteHandlerCallback)">
            <summary>
            Associates <c>HEAD</c> requests matching a route to a synchronous handler.
            </summary>
            <param name="this">The <see cref="T:EmbedIO.Routing.RoutingModule"/> on which this method is called.</param>
            <param name="matcher">The <see cref="T:EmbedIO.Routing.RouteMatcher"/> used to match URL paths.</param>
            <param name="handler">A callback used to handle matching contexts.</param>
            <returns><paramref name="this"/> with the handler added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="matcher"/> is <see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="handler"/> is <see langword="null"/>.</para>
            </exception>
        </member>
        <member name="M:EmbedIO.Routing.RoutingModuleExtensions.OnOptions(EmbedIO.Routing.RoutingModule,EmbedIO.Routing.RouteMatcher,EmbedIO.Routing.RouteHandlerCallback)">
            <summary>
            Associates <c>OPTIONS</c> requests matching a route to a handler.
            </summary>
            <param name="this">The <see cref="T:EmbedIO.Routing.RoutingModule"/> on which this method is called.</param>
            <param name="matcher">The <see cref="T:EmbedIO.Routing.RouteMatcher"/> used to match URL paths.</param>
            <param name="handler">A callback used to handle matching contexts.</param>
            <returns><paramref name="this"/> with the handler added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="matcher"/> is <see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="handler"/> is <see langword="null"/>.</para>
            </exception>
        </member>
        <member name="M:EmbedIO.Routing.RoutingModuleExtensions.OnOptions(EmbedIO.Routing.RoutingModule,EmbedIO.Routing.RouteMatcher,EmbedIO.Routing.SyncRouteHandlerCallback)">
            <summary>
            Associates <c>OPTIONS</c> requests matching a route to a synchronous handler.
            </summary>
            <param name="this">The <see cref="T:EmbedIO.Routing.RoutingModule"/> on which this method is called.</param>
            <param name="matcher">The <see cref="T:EmbedIO.Routing.RouteMatcher"/> used to match URL paths.</param>
            <param name="handler">A callback used to handle matching contexts.</param>
            <returns><paramref name="this"/> with the handler added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="matcher"/> is <see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="handler"/> is <see langword="null"/>.</para>
            </exception>
        </member>
        <member name="M:EmbedIO.Routing.RoutingModuleExtensions.OnPatch(EmbedIO.Routing.RoutingModule,EmbedIO.Routing.RouteMatcher,EmbedIO.Routing.RouteHandlerCallback)">
            <summary>
            Associates <c>PATCH</c> requests matching a route to a handler.
            </summary>
            <param name="this">The <see cref="T:EmbedIO.Routing.RoutingModule"/> on which this method is called.</param>
            <param name="matcher">The <see cref="T:EmbedIO.Routing.RouteMatcher"/> used to match URL paths.</param>
            <param name="handler">A callback used to handle matching contexts.</param>
            <returns><paramref name="this"/> with the handler added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="matcher"/> is <see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="handler"/> is <see langword="null"/>.</para>
            </exception>
        </member>
        <member name="M:EmbedIO.Routing.RoutingModuleExtensions.OnPatch(EmbedIO.Routing.RoutingModule,EmbedIO.Routing.RouteMatcher,EmbedIO.Routing.SyncRouteHandlerCallback)">
            <summary>
            Associates <c>PATCH</c> requests matching a route to a synchronous handler.
            </summary>
            <param name="this">The <see cref="T:EmbedIO.Routing.RoutingModule"/> on which this method is called.</param>
            <param name="matcher">The <see cref="T:EmbedIO.Routing.RouteMatcher"/> used to match URL paths.</param>
            <param name="handler">A callback used to handle matching contexts.</param>
            <returns><paramref name="this"/> with the handler added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="matcher"/> is <see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="handler"/> is <see langword="null"/>.</para>
            </exception>
        </member>
        <member name="M:EmbedIO.Routing.RoutingModuleExtensions.OnPost(EmbedIO.Routing.RoutingModule,EmbedIO.Routing.RouteMatcher,EmbedIO.Routing.RouteHandlerCallback)">
            <summary>
            Associates <c>POST</c> requests matching a route to a handler.
            </summary>
            <param name="this">The <see cref="T:EmbedIO.Routing.RoutingModule"/> on which this method is called.</param>
            <param name="matcher">The <see cref="T:EmbedIO.Routing.RouteMatcher"/> used to match URL paths.</param>
            <param name="handler">A callback used to handle matching contexts.</param>
            <returns><paramref name="this"/> with the handler added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="matcher"/> is <see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="handler"/> is <see langword="null"/>.</para>
            </exception>
        </member>
        <member name="M:EmbedIO.Routing.RoutingModuleExtensions.OnPost(EmbedIO.Routing.RoutingModule,EmbedIO.Routing.RouteMatcher,EmbedIO.Routing.SyncRouteHandlerCallback)">
            <summary>
            Associates <c>POST</c> requests matching a route to a synchronous handler.
            </summary>
            <param name="this">The <see cref="T:EmbedIO.Routing.RoutingModule"/> on which this method is called.</param>
            <param name="matcher">The <see cref="T:EmbedIO.Routing.RouteMatcher"/> used to match URL paths.</param>
            <param name="handler">A callback used to handle matching contexts.</param>
            <returns><paramref name="this"/> with the handler added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="matcher"/> is <see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="handler"/> is <see langword="null"/>.</para>
            </exception>
        </member>
        <member name="M:EmbedIO.Routing.RoutingModuleExtensions.OnPut(EmbedIO.Routing.RoutingModule,EmbedIO.Routing.RouteMatcher,EmbedIO.Routing.RouteHandlerCallback)">
            <summary>
            Associates <c>PUT</c> requests matching a route to a handler.
            </summary>
            <param name="this">The <see cref="T:EmbedIO.Routing.RoutingModule"/> on which this method is called.</param>
            <param name="matcher">The <see cref="T:EmbedIO.Routing.RouteMatcher"/> used to match URL paths.</param>
            <param name="handler">A callback used to handle matching contexts.</param>
            <returns><paramref name="this"/> with the handler added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="matcher"/> is <see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="handler"/> is <see langword="null"/>.</para>
            </exception>
        </member>
        <member name="M:EmbedIO.Routing.RoutingModuleExtensions.OnPut(EmbedIO.Routing.RoutingModule,EmbedIO.Routing.RouteMatcher,EmbedIO.Routing.SyncRouteHandlerCallback)">
            <summary>
            Associates <c>PUT</c> requests matching a route to a synchronous handler.
            </summary>
            <param name="this">The <see cref="T:EmbedIO.Routing.RoutingModule"/> on which this method is called.</param>
            <param name="matcher">The <see cref="T:EmbedIO.Routing.RouteMatcher"/> used to match URL paths.</param>
            <param name="handler">A callback used to handle matching contexts.</param>
            <returns><paramref name="this"/> with the handler added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="matcher"/> is <see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="handler"/> is <see langword="null"/>.</para>
            </exception>
        </member>
        <member name="M:EmbedIO.Routing.RoutingModuleExtensions.Handle(EmbedIO.Routing.RoutingModule,EmbedIO.HttpVerbs,System.String,EmbedIO.Routing.RouteHandlerCallback)">
            <summary>
            Adds a handler to a <see cref="T:EmbedIO.Routing.RoutingModule"/>.
            </summary>
            <param name="this">The <see cref="T:EmbedIO.Routing.RoutingModule"/> on which this method is called.</param>
            <param name="verb">A <see cref="T:EmbedIO.HttpVerbs"/> constant representing the HTTP method
            to associate with <paramref name="handler"/>, or <see cref="F:EmbedIO.HttpVerbs.Any"/>
            if <paramref name="handler"/> can handle all HTTP methods.</param>
            <param name="route">The route to match URL paths against.</param>
            <param name="handler">A callback used to handle matching contexts.</param>
            <returns><paramref name="this"/> with the handler added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="route"/> is <see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="handler"/> is <see langword="null"/>.</para>
            </exception>
            <exception cref="T:System.FormatException"><paramref name="route"/> is not a valid route.</exception>
            <seealso cref="M:EmbedIO.Routing.RoutingModule.Add(EmbedIO.HttpVerbs,EmbedIO.Routing.RouteMatcher,EmbedIO.Routing.RouteHandlerCallback)"/>
        </member>
        <member name="M:EmbedIO.Routing.RoutingModuleExtensions.Handle(EmbedIO.Routing.RoutingModule,EmbedIO.HttpVerbs,System.String,EmbedIO.Routing.SyncRouteHandlerCallback)">
            <summary>
            Adds a synchronous handler to a <see cref="T:EmbedIO.Routing.RoutingModule"/>.
            </summary>
            <param name="this">The <see cref="T:EmbedIO.Routing.RoutingModule"/> on which this method is called.</param>
            <param name="verb">A <see cref="T:EmbedIO.HttpVerbs"/> constant representing the HTTP method
            to associate with <paramref name="handler"/>, or <see cref="F:EmbedIO.HttpVerbs.Any"/>
            if <paramref name="handler"/> can handle all HTTP methods.</param>
            <param name="route">The route to match URL paths against.</param>
            <param name="handler">A callback used to handle matching contexts.</param>
            <returns><paramref name="this"/> with the handler added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="route"/> is <see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="handler"/> is <see langword="null"/>.</para>
            </exception>
            <exception cref="T:System.FormatException"><paramref name="route"/> is not a valid route.</exception>
            <seealso cref="M:EmbedIO.Routing.RoutingModule.Add(EmbedIO.HttpVerbs,EmbedIO.Routing.RouteMatcher,EmbedIO.Routing.RouteHandlerCallback)"/>
        </member>
        <member name="M:EmbedIO.Routing.RoutingModuleExtensions.OnAny(EmbedIO.Routing.RoutingModule,System.String,EmbedIO.Routing.RouteHandlerCallback)">
            <summary>
            Associates all requests matching a route to a handler.
            </summary>
            <param name="this">The <see cref="T:EmbedIO.Routing.RoutingModule"/> on which this method is called.</param>
            <param name="route">The route to match URL paths against.</param>
            <param name="handler">A callback used to handle matching contexts.</param>
            <returns><paramref name="this"/> with the handler added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="route"/> is <see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="handler"/> is <see langword="null"/>.</para>
            </exception>
            <exception cref="T:System.FormatException"><paramref name="route"/> is not a valid route.</exception>
        </member>
        <member name="M:EmbedIO.Routing.RoutingModuleExtensions.OnAny(EmbedIO.Routing.RoutingModule,System.String,EmbedIO.Routing.SyncRouteHandlerCallback)">
            <summary>
            Associates all requests matching a route to a synchronous handler.
            </summary>
            <param name="this">The <see cref="T:EmbedIO.Routing.RoutingModule"/> on which this method is called.</param>
            <param name="route">The route to match URL paths against.</param>
            <param name="handler">A callback used to handle matching contexts.</param>
            <returns><paramref name="this"/> with the handler added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="route"/> is <see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="handler"/> is <see langword="null"/>.</para>
            </exception>
            <exception cref="T:System.FormatException"><paramref name="route"/> is not a valid route.</exception>
        </member>
        <member name="M:EmbedIO.Routing.RoutingModuleExtensions.OnDelete(EmbedIO.Routing.RoutingModule,System.String,EmbedIO.Routing.RouteHandlerCallback)">
            <summary>
            Associates <c>DELETE</c> requests matching a route to a handler.
            </summary>
            <param name="this">The <see cref="T:EmbedIO.Routing.RoutingModule"/> on which this method is called.</param>
            <param name="route">The route to match URL paths against.</param>
            <param name="handler">A callback used to handle matching contexts.</param>
            <returns><paramref name="this"/> with the handler added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="route"/> is <see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="handler"/> is <see langword="null"/>.</para>
            </exception>
            <exception cref="T:System.FormatException"><paramref name="route"/> is not a valid route.</exception>
        </member>
        <member name="M:EmbedIO.Routing.RoutingModuleExtensions.OnDelete(EmbedIO.Routing.RoutingModule,System.String,EmbedIO.Routing.SyncRouteHandlerCallback)">
            <summary>
            Associates <c>DELETE</c> requests matching a route to a synchronous handler.
            </summary>
            <param name="this">The <see cref="T:EmbedIO.Routing.RoutingModule"/> on which this method is called.</param>
            <param name="route">The route to match URL paths against.</param>
            <param name="handler">A callback used to handle matching contexts.</param>
            <returns><paramref name="this"/> with the handler added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="route"/> is <see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="handler"/> is <see langword="null"/>.</para>
            </exception>
            <exception cref="T:System.FormatException"><paramref name="route"/> is not a valid route.</exception>
        </member>
        <member name="M:EmbedIO.Routing.RoutingModuleExtensions.OnGet(EmbedIO.Routing.RoutingModule,System.String,EmbedIO.Routing.RouteHandlerCallback)">
            <summary>
            Associates <c>GET</c> requests matching a route to a handler.
            </summary>
            <param name="this">The <see cref="T:EmbedIO.Routing.RoutingModule"/> on which this method is called.</param>
            <param name="route">The route to match URL paths against.</param>
            <param name="handler">A callback used to handle matching contexts.</param>
            <returns><paramref name="this"/> with the handler added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="route"/> is <see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="handler"/> is <see langword="null"/>.</para>
            </exception>
            <exception cref="T:System.FormatException"><paramref name="route"/> is not a valid route.</exception>
        </member>
        <member name="M:EmbedIO.Routing.RoutingModuleExtensions.OnGet(EmbedIO.Routing.RoutingModule,System.String,EmbedIO.Routing.SyncRouteHandlerCallback)">
            <summary>
            Associates <c>GET</c> requests matching a route to a synchronous handler.
            </summary>
            <param name="this">The <see cref="T:EmbedIO.Routing.RoutingModule"/> on which this method is called.</param>
            <param name="route">The route to match URL paths against.</param>
            <param name="handler">A callback used to handle matching contexts.</param>
            <returns><paramref name="this"/> with the handler added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="route"/> is <see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="handler"/> is <see langword="null"/>.</para>
            </exception>
            <exception cref="T:System.FormatException"><paramref name="route"/> is not a valid route.</exception>
        </member>
        <member name="M:EmbedIO.Routing.RoutingModuleExtensions.OnHead(EmbedIO.Routing.RoutingModule,System.String,EmbedIO.Routing.RouteHandlerCallback)">
            <summary>
            Associates <c>HEAD</c> requests matching a route to a handler.
            </summary>
            <param name="this">The <see cref="T:EmbedIO.Routing.RoutingModule"/> on which this method is called.</param>
            <param name="route">The route to match URL paths against.</param>
            <param name="handler">A callback used to handle matching contexts.</param>
            <returns><paramref name="this"/> with the handler added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="route"/> is <see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="handler"/> is <see langword="null"/>.</para>
            </exception>
            <exception cref="T:System.FormatException"><paramref name="route"/> is not a valid route.</exception>
        </member>
        <member name="M:EmbedIO.Routing.RoutingModuleExtensions.OnHead(EmbedIO.Routing.RoutingModule,System.String,EmbedIO.Routing.SyncRouteHandlerCallback)">
            <summary>
            Associates <c>HEAD</c> requests matching a route to a synchronous handler.
            </summary>
            <param name="this">The <see cref="T:EmbedIO.Routing.RoutingModule"/> on which this method is called.</param>
            <param name="route">The route to match URL paths against.</param>
            <param name="handler">A callback used to handle matching contexts.</param>
            <returns><paramref name="this"/> with the handler added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="route"/> is <see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="handler"/> is <see langword="null"/>.</para>
            </exception>
            <exception cref="T:System.FormatException"><paramref name="route"/> is not a valid route.</exception>
        </member>
        <member name="M:EmbedIO.Routing.RoutingModuleExtensions.OnOptions(EmbedIO.Routing.RoutingModule,System.String,EmbedIO.Routing.RouteHandlerCallback)">
            <summary>
            Associates <c>OPTIONS</c> requests matching a route to a handler.
            </summary>
            <param name="this">The <see cref="T:EmbedIO.Routing.RoutingModule"/> on which this method is called.</param>
            <param name="route">The route to match URL paths against.</param>
            <param name="handler">A callback used to handle matching contexts.</param>
            <returns><paramref name="this"/> with the handler added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="route"/> is <see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="handler"/> is <see langword="null"/>.</para>
            </exception>
            <exception cref="T:System.FormatException"><paramref name="route"/> is not a valid route.</exception>
        </member>
        <member name="M:EmbedIO.Routing.RoutingModuleExtensions.OnOptions(EmbedIO.Routing.RoutingModule,System.String,EmbedIO.Routing.SyncRouteHandlerCallback)">
            <summary>
            Associates <c>OPTIONS</c> requests matching a route to a synchronous handler.
            </summary>
            <param name="this">The <see cref="T:EmbedIO.Routing.RoutingModule"/> on which this method is called.</param>
            <param name="route">The route to match URL paths against.</param>
            <param name="handler">A callback used to handle matching contexts.</param>
            <returns><paramref name="this"/> with the handler added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="route"/> is <see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="handler"/> is <see langword="null"/>.</para>
            </exception>
            <exception cref="T:System.FormatException"><paramref name="route"/> is not a valid route.</exception>
        </member>
        <member name="M:EmbedIO.Routing.RoutingModuleExtensions.OnPatch(EmbedIO.Routing.RoutingModule,System.String,EmbedIO.Routing.RouteHandlerCallback)">
            <summary>
            Associates <c>PATCH</c> requests matching a route to a handler.
            </summary>
            <param name="this">The <see cref="T:EmbedIO.Routing.RoutingModule"/> on which this method is called.</param>
            <param name="route">The route to match URL paths against.</param>
            <param name="handler">A callback used to handle matching contexts.</param>
            <returns><paramref name="this"/> with the handler added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="route"/> is <see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="handler"/> is <see langword="null"/>.</para>
            </exception>
            <exception cref="T:System.FormatException"><paramref name="route"/> is not a valid route.</exception>
        </member>
        <member name="M:EmbedIO.Routing.RoutingModuleExtensions.OnPatch(EmbedIO.Routing.RoutingModule,System.String,EmbedIO.Routing.SyncRouteHandlerCallback)">
            <summary>
            Associates <c>PATCH</c> requests matching a route to a synchronous handler.
            </summary>
            <param name="this">The <see cref="T:EmbedIO.Routing.RoutingModule"/> on which this method is called.</param>
            <param name="route">The route to match URL paths against.</param>
            <param name="handler">A callback used to handle matching contexts.</param>
            <returns><paramref name="this"/> with the handler added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="route"/> is <see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="handler"/> is <see langword="null"/>.</para>
            </exception>
            <exception cref="T:System.FormatException"><paramref name="route"/> is not a valid route.</exception>
        </member>
        <member name="M:EmbedIO.Routing.RoutingModuleExtensions.OnPost(EmbedIO.Routing.RoutingModule,System.String,EmbedIO.Routing.RouteHandlerCallback)">
            <summary>
            Associates <c>POST</c> requests matching a route to a handler.
            </summary>
            <param name="this">The <see cref="T:EmbedIO.Routing.RoutingModule"/> on which this method is called.</param>
            <param name="route">The route to match URL paths against.</param>
            <param name="handler">A callback used to handle matching contexts.</param>
            <returns><paramref name="this"/> with the handler added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="route"/> is <see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="handler"/> is <see langword="null"/>.</para>
            </exception>
            <exception cref="T:System.FormatException"><paramref name="route"/> is not a valid route.</exception>
        </member>
        <member name="M:EmbedIO.Routing.RoutingModuleExtensions.OnPost(EmbedIO.Routing.RoutingModule,System.String,EmbedIO.Routing.SyncRouteHandlerCallback)">
            <summary>
            Associates <c>POST</c> requests matching a route to a synchronous handler.
            </summary>
            <param name="this">The <see cref="T:EmbedIO.Routing.RoutingModule"/> on which this method is called.</param>
            <param name="route">The route to match URL paths against.</param>
            <param name="handler">A callback used to handle matching contexts.</param>
            <returns><paramref name="this"/> with the handler added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="route"/> is <see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="handler"/> is <see langword="null"/>.</para>
            </exception>
            <exception cref="T:System.FormatException"><paramref name="route"/> is not a valid route.</exception>
        </member>
        <member name="M:EmbedIO.Routing.RoutingModuleExtensions.OnPut(EmbedIO.Routing.RoutingModule,System.String,EmbedIO.Routing.RouteHandlerCallback)">
            <summary>
            Associates <c>PUT</c> requests matching a route to a handler.
            </summary>
            <param name="this">The <see cref="T:EmbedIO.Routing.RoutingModule"/> on which this method is called.</param>
            <param name="route">The route to match URL paths against.</param>
            <param name="handler">A callback used to handle matching contexts.</param>
            <returns><paramref name="this"/> with the handler added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="route"/> is <see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="handler"/> is <see langword="null"/>.</para>
            </exception>
            <exception cref="T:System.FormatException"><paramref name="route"/> is not a valid route.</exception>
        </member>
        <member name="M:EmbedIO.Routing.RoutingModuleExtensions.OnPut(EmbedIO.Routing.RoutingModule,System.String,EmbedIO.Routing.SyncRouteHandlerCallback)">
            <summary>
            Associates <c>PUT</c> requests matching a route to a synchronous handler.
            </summary>
            <param name="this">The <see cref="T:EmbedIO.Routing.RoutingModule"/> on which this method is called.</param>
            <param name="route">The route to match URL paths against.</param>
            <param name="handler">A callback used to handle matching contexts.</param>
            <returns><paramref name="this"/> with the handler added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="route"/> is <see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="handler"/> is <see langword="null"/>.</para>
            </exception>
            <exception cref="T:System.FormatException"><paramref name="route"/> is not a valid route.</exception>
        </member>
        <member name="M:EmbedIO.Routing.RoutingModuleExtensions.WithHandlersFrom(EmbedIO.Routing.RoutingModule,System.Object)">
            <summary>
            <para>Adds handlers, associating them with HTTP method / route pairs by means
            of <see cref="T:EmbedIO.Routing.RouteAttribute">Route</see> attributes.</para>
            <para>See <see cref="M:EmbedIO.Routing.RouteVerbResolverCollection.AddFrom(System.Object)"/> for further information.</para>
            </summary>
            <param name="this">The <see cref="T:EmbedIO.Routing.RoutingModule"/> on which this method is called.</param>
            <param name="target">Where to look for compatible handlers.</param>
            <returns><paramref name="this"/> with handlers added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="target"/> is <see langword="null"/>.</exception>
        </member>
        <member name="T:EmbedIO.Routing.SyncRouteHandlerCallback">
            <summary>
            Base class for callbacks used to handle routed requests synchronously.
            </summary>
            <param name="context">An <see cref="T:EmbedIO.IHttpContext" /> interface representing the context of the request.</param>
            <param name="route">The matched route.</param>
            <seealso cref="T:EmbedIO.Routing.RouteMatch"/>
        </member>
        <member name="T:EmbedIO.Security.BanInfo">
            <summary>
            Contains information about the ban of an IP address.
            </summary>
        </member>
        <member name="P:EmbedIO.Security.BanInfo.IPAddress">
            <summary>
            Gets or sets the banned IP address.
            </summary>
        </member>
        <member name="P:EmbedIO.Security.BanInfo.ExpiresAt">
            <summary>
            Gets or sets the expiration time of the ban.
            </summary>
        </member>
        <member name="P:EmbedIO.Security.BanInfo.IsExplicit">
            <summary>
            Gets or sets a value indicating whether this instance was explicitly banned.
            </summary>
        </member>
        <member name="T:EmbedIO.Security.IIPBanningCriterion">
            <summary>
            Represents a criterion for <see cref="T:EmbedIO.Security.IPBanningModule"/>.
            </summary>
        </member>
        <member name="M:EmbedIO.Security.IIPBanningCriterion.ValidateIPAddress(System.Net.IPAddress)">
            <summary>
            Validates the IP address should be banned or not.
            </summary>
            <param name="address">The address.</param>
            <returns><c>true</c> if the IP Address should be banned, otherwise <c>false</c>.</returns>
        </member>
        <member name="M:EmbedIO.Security.IIPBanningCriterion.ClearIPAddress(System.Net.IPAddress)">
            <summary>
            Clears the data generated by an IP address.
            </summary>
            <param name="address">The address.</param>
        </member>
        <member name="M:EmbedIO.Security.IIPBanningCriterion.PurgeData">
            <summary>
            Purges the data of the Criterion.
            </summary>
        </member>
        <member name="T:EmbedIO.Security.IPBanningConfiguration">
            <summary>
            Represents a configuration object for <see cref="T:EmbedIO.Security.IPBanningModule"/>.
            </summary>
            <seealso cref="T:Swan.Configuration.ConfiguredObject" />
        </member>
        <member name="M:EmbedIO.Security.IPBanningConfiguration.Finalize">
            <summary>
            Finalizes an instance of the <see cref="T:EmbedIO.Security.IPBanningConfiguration"/> class.
            </summary>
        </member>
        <member name="P:EmbedIO.Security.IPBanningConfiguration.BlackList">
            <summary>
            Gets the black list.
            </summary>
            <value>
            The black list.
            </value>
        </member>
        <member name="M:EmbedIO.Security.IPBanningConfiguration.ShouldContinue(System.Net.IPAddress)">
            <summary>
            Check if a Criterion should continue testing an IP Address.
            </summary>
            <param name="address">The address.</param>
            <returns><c>true</c> if the Criterion should continue, otherwise <c>false</c>.</returns>
        </member>
        <member name="M:EmbedIO.Security.IPBanningConfiguration.Purge">
            <summary>
            Purges this instance.
            </summary>
        </member>
        <member name="M:EmbedIO.Security.IPBanningConfiguration.CheckClient(System.Net.IPAddress)">
            <summary>
            Checks the client.
            </summary>
            <param name="clientAddress">The client address.</param>
            <returns>A <see cref="T:System.Threading.Tasks.Task"/> representing the asynchronous operation.</returns>
        </member>
        <member name="M:EmbedIO.Security.IPBanningConfiguration.Dispose">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.Security.IPBanningConfiguration.Dispose(System.Boolean)">
            <summary>
            Releases unmanaged and - optionally - managed resources.
            </summary>
            <param name="disposing"><c>true</c> to release both managed and unmanaged resources; <c>false</c> to release only unmanaged resources.</param>
        </member>
        <member name="T:EmbedIO.Security.IPBanningModule">
            <summary>
            A module to ban clients by IP address, based on TCP requests-per-second or RegEx matches on log messages.
            </summary>
            <seealso cref="T:EmbedIO.WebModuleBase" />
        </member>
        <member name="F:EmbedIO.Security.IPBanningModule.DefaultBanMinutes">
            <summary>
            The default ban minutes.
            </summary>
        </member>
        <member name="M:EmbedIO.Security.IPBanningModule.#ctor(System.String,System.Collections.Generic.IEnumerable{System.String},System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:EmbedIO.Security.IPBanningModule" /> class.
            </summary>
            <param name="baseRoute">The base route.</param>
            <param name="whitelist">A collection of valid IPs that never will be banned.</param>
            <param name="banMinutes">Minutes that an IP will remain banned.</param>
        </member>
        <member name="M:EmbedIO.Security.IPBanningModule.Finalize">
            <summary>
            Finalizes an instance of the <see cref="T:EmbedIO.Security.IPBanningModule"/> class.
            </summary>
        </member>
        <member name="P:EmbedIO.Security.IPBanningModule.IsFinalHandler">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Security.IPBanningModule.ClientAddress">
            <summary>
            Gets the client address.
            </summary>
            <value>
            The client address.
            </value>
        </member>
        <member name="M:EmbedIO.Security.IPBanningModule.RegisterCriterion(EmbedIO.Security.IIPBanningCriterion)">
            <summary>
            Registers the criterion.
            </summary>
            <param name="criterion">The criterion.</param>
        </member>
        <member name="M:EmbedIO.Security.IPBanningModule.Dispose">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.Security.IPBanningModule.GetBannedIPs(System.String)">
            <summary>
            Gets the list of current banned IPs.
            </summary>
            <param name="baseRoute">The base route.</param>
            <returns>
            A collection of <see cref="T:EmbedIO.Security.BanInfo" /> in the blacklist.
            </returns>
            <exception cref="T:System.ArgumentException">baseRoute</exception>
        </member>
        <member name="M:EmbedIO.Security.IPBanningModule.TryBanIP(System.Net.IPAddress,System.Int32,System.String,System.Boolean)">
            <summary>
            Tries to ban an IP explicitly.
            </summary>
            <param name="address">The IP address to ban.</param>
            <param name="banMinutes">Minutes that the IP will remain banned.</param>
            <param name="baseRoute">The base route.</param>
            <param name="isExplicit"><c>true</c> if the IP was explicitly banned.</param>
            <returns>
              <c>true</c> if the IP was added to the blacklist; otherwise, <c>false</c>.
            </returns>
        </member>
        <member name="M:EmbedIO.Security.IPBanningModule.TryBanIP(System.Net.IPAddress,System.TimeSpan,System.String,System.Boolean)">
            <summary>
            Tries to ban an IP explicitly.
            </summary>
            <param name="address">The IP address to ban.</param>
            <param name="banDuration">A <see cref="T:System.TimeSpan" /> specifying the duration that the IP will remain banned.</param>
            <param name="baseRoute">The base route.</param>
            <param name="isExplicit"><c>true</c> if the IP was explicitly banned.</param>
            <returns>
              <c>true</c> if the IP was added to the blacklist; otherwise, <c>false</c>.
            </returns>
        </member>
        <member name="M:EmbedIO.Security.IPBanningModule.TryBanIP(System.Net.IPAddress,System.DateTime,System.String,System.Boolean)">
            <summary>
            Tries to ban an IP explicitly.
            </summary>
            <param name="address">The IP address to ban.</param>
            <param name="banUntil">A <see cref="T:System.DateTime" /> specifying the expiration time of the ban.</param>
            <param name="baseRoute">The base route.</param>
            <param name="isExplicit"><c>true</c> if the IP was explicitly banned.</param>
            <returns>
              <c>true</c> if the IP was added to the blacklist; otherwise, <c>false</c>.
            </returns>
            <exception cref="T:System.ArgumentException">baseRoute</exception>
        </member>
        <member name="M:EmbedIO.Security.IPBanningModule.TryUnbanIP(System.Net.IPAddress,System.String)">
            <summary>
            Tries to unban an IP explicitly.
            </summary>
            <param name="address">The IP address.</param>
            <param name="baseRoute">The base route.</param>
            <returns>
              <c>true</c> if the IP was removed from the blacklist; otherwise, <c>false</c>.
            </returns>
            <exception cref="T:System.ArgumentException">baseRoute</exception>
        </member>
        <member name="M:EmbedIO.Security.IPBanningModule.OnStart(System.Threading.CancellationToken)">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.Security.IPBanningModule.OnRequestAsync(EmbedIO.IHttpContext)">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.Security.IPBanningModule.Dispose(System.Boolean)">
            <summary>
            Releases unmanaged and - optionally - managed resources.
            </summary>
            <param name="disposing"><c>true</c> to release both managed and unmanaged resources; <c>false</c> to release only unmanaged resources.</param>
        </member>
        <member name="T:EmbedIO.Security.IPBanningModuleExtensions">
            <summary>
            Provides extension methods for <see cref="T:EmbedIO.Security.IPBanningModule"/> and derived classes.
            </summary>
        </member>
        <member name="M:EmbedIO.Security.IPBanningModuleExtensions.WithWhitelist``1(``0,System.String[])">
            <summary>
            Adds a collection of valid IPs that never will be banned.
            </summary>
            <typeparam name="TModule">The type of the module.</typeparam>
            <param name="this">The module on which this method is called.</param>
            <param name="value">A collection of valid IPs that never will be banned.</param>
            <returns>
                <paramref name="this"/> with its whitelist configured.
            </returns>
        </member>
        <member name="M:EmbedIO.Security.IPBanningModuleExtensions.WithRegexRules``1(``0,System.String[])">
            <summary>
            Add a collection of Regex to match the log messages against as a criterion for banning IP addresses.
            </summary>
            <typeparam name="TModule">The type of the module.</typeparam>
            <param name="this">The module on which this method is called.</param>
            <param name="value">A collection of regex to match log messages against.</param>
            <returns>
                <paramref name="this"/> with a fail regex criterion configured.
            </returns>
        </member>
        <member name="M:EmbedIO.Security.IPBanningModuleExtensions.WithRegexRules``1(``0,System.Int32,System.Int32,System.String[])">
            <summary>
            Add a collection of Regex to match the log messages against as a criterion for banning IP addresses.
            </summary>
            <typeparam name="TModule">The type of the module.</typeparam>
            <param name="this">The module on which this method is called.</param>
            <param name="maxMatchCount">The maximum match count.</param>
            <param name="secondsMatchingPeriod">The seconds matching period.</param>
            <param name="value">A collection of regex to match log messages against.</param>
            <returns>
              <paramref name="this" /> with a fail regex criterion configured.
            </returns>
        </member>
        <member name="M:EmbedIO.Security.IPBanningModuleExtensions.WithMaxRequestsPerSecond``1(``0,System.Int32)">
            <summary>
            Sets a maximum amount of requests per second as a criterion for banning IP addresses.
            </summary>
            <typeparam name="TModule">The type of the module.</typeparam>
            <param name="this">The module on which this method is called.</param>
            <param name="maxRequests">The maximum requests per second.</param>
            <returns>
                <paramref name="this"/> with a maximum requests per second configured.
            </returns>
        </member>
        <member name="T:EmbedIO.Security.IPBanningRegexCriterion">
            <summary>
            Represents a log message regex matching criterion for <see cref="T:EmbedIO.Security.IPBanningModule"/>.
            </summary>
            <seealso cref="T:EmbedIO.Security.IIPBanningCriterion" />
        </member>
        <member name="F:EmbedIO.Security.IPBanningRegexCriterion.DefaultSecondsMatchingPeriod">
            <summary>
            The default matching period.
            </summary>
        </member>
        <member name="F:EmbedIO.Security.IPBanningRegexCriterion.DefaultMaxMatchCount">
            <summary>
            The default maximum match count per period.
            </summary>
        </member>
        <member name="M:EmbedIO.Security.IPBanningRegexCriterion.#ctor(EmbedIO.Security.IPBanningModule,System.Collections.Generic.IEnumerable{System.String},System.Int32,System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:EmbedIO.Security.IPBanningRegexCriterion"/> class.
            </summary>
            <param name="parent">The parent.</param>
            <param name="rules">The rules.</param>
            <param name="maxMatchCount">The maximum match count.</param>
            <param name="secondsMatchingPeriod">The seconds matching period.</param>
        </member>
        <member name="M:EmbedIO.Security.IPBanningRegexCriterion.Finalize">
            <summary>
            Finalizes an instance of the <see cref="T:EmbedIO.Security.IPBanningRegexCriterion"/> class.
            </summary>
        </member>
        <member name="M:EmbedIO.Security.IPBanningRegexCriterion.ValidateIPAddress(System.Net.IPAddress)">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.Security.IPBanningRegexCriterion.ClearIPAddress(System.Net.IPAddress)">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.Security.IPBanningRegexCriterion.PurgeData">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.Security.IPBanningRegexCriterion.Dispose">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Security.IPBanningRegexCriterion.InnerRegexCriterionLogger.LogLevel">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.Security.IPBanningRegexCriterion.InnerRegexCriterionLogger.Log(Swan.Logging.LogMessageReceivedEventArgs)">
            <inheritdoc />
        </member>
        <member name="T:EmbedIO.Security.IPBanningRequestsCriterion">
            <summary>
            Represents a maximun requests per second criterion for <see cref="T:EmbedIO.Security.IPBanningModule"/>.
            </summary>
            <seealso cref="T:EmbedIO.Security.IIPBanningCriterion" />
        </member>
        <member name="F:EmbedIO.Security.IPBanningRequestsCriterion.DefaultMaxRequestsPerSecond">
            <summary>
            The default maximum request per second.
            </summary>
        </member>
        <member name="M:EmbedIO.Security.IPBanningRequestsCriterion.Finalize">
            <summary>
            Finalizes an instance of the <see cref="T:EmbedIO.Security.IPBanningRequestsCriterion"/> class.
            </summary>
        </member>
        <member name="M:EmbedIO.Security.IPBanningRequestsCriterion.ValidateIPAddress(System.Net.IPAddress)">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.Security.IPBanningRequestsCriterion.ClearIPAddress(System.Net.IPAddress)">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.Security.IPBanningRequestsCriterion.PurgeData">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.Security.IPBanningRequestsCriterion.Dispose">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Sessions.Internal.DummySessionProxy.Id">
            <inheritdoc/>
        </member>
        <member name="P:EmbedIO.Sessions.Internal.DummySessionProxy.Duration">
            <inheritdoc/>
        </member>
        <member name="P:EmbedIO.Sessions.Internal.DummySessionProxy.LastActivity">
            <inheritdoc/>
        </member>
        <member name="P:EmbedIO.Sessions.Internal.DummySessionProxy.Count">
            <inheritdoc/>
        </member>
        <member name="P:EmbedIO.Sessions.Internal.DummySessionProxy.IsEmpty">
            <inheritdoc/>
        </member>
        <member name="P:EmbedIO.Sessions.Internal.DummySessionProxy.Item(System.String)">
            <inheritdoc/>
        </member>
        <member name="M:EmbedIO.Sessions.Internal.DummySessionProxy.Delete">
            <inheritdoc/>
        </member>
        <member name="M:EmbedIO.Sessions.Internal.DummySessionProxy.Regenerate">
            <inheritdoc/>
        </member>
        <member name="M:EmbedIO.Sessions.Internal.DummySessionProxy.Clear">
            <inheritdoc/>
        </member>
        <member name="M:EmbedIO.Sessions.Internal.DummySessionProxy.ContainsKey(System.String)">
            <inheritdoc/>
        </member>
        <member name="M:EmbedIO.Sessions.Internal.DummySessionProxy.TryGetValue(System.String,System.Object@)">
            <inheritdoc/>
        </member>
        <member name="M:EmbedIO.Sessions.Internal.DummySessionProxy.TryRemove(System.String,System.Object@)">
            <inheritdoc/>
        </member>
        <member name="M:EmbedIO.Sessions.Internal.DummySessionProxy.TakeSnapshot">
            <inheritdoc/>
        </member>
        <member name="T:EmbedIO.Sessions.ISession">
            <summary>
            Represents a session.
            </summary>
        </member>
        <member name="P:EmbedIO.Sessions.ISession.Id">
            <summary>
            A unique identifier for the session.
            </summary>
            <value>The unique identifier for this session.</value>
            <seealso cref="F:EmbedIO.Sessions.Session.IdComparison"/>
            <seealso cref="F:EmbedIO.Sessions.Session.IdComparer"/>
        </member>
        <member name="P:EmbedIO.Sessions.ISession.Duration">
            <summary>
            Gets the time interval, starting from <see cref="P:EmbedIO.Sessions.ISession.LastActivity"/>,
            after which the session expires.
            </summary>
            <value> The expiration time.</value>
        </member>
        <member name="P:EmbedIO.Sessions.ISession.LastActivity">
            <summary>
            Gets the UTC date and time of last activity on the session.
            </summary>
            <value>
            The UTC date and time of last activity on the session.
            </value>
        </member>
        <member name="P:EmbedIO.Sessions.ISession.Count">
            <summary>
            Gets the number of key/value pairs contained in a session.
            </summary>
            <value>
            The number of key/value pairs contained in the object that implements <see cref="T:EmbedIO.Sessions.ISession"/>.
            </value>
        </member>
        <member name="P:EmbedIO.Sessions.ISession.IsEmpty">
            <summary>
            Gets a value that indicates whether a session is empty.
            </summary>
            <value>
            <see langword="true"/> if the object that implements <see cref="T:EmbedIO.Sessions.ISession"/> is empty,
            i.e. contains no key / value pairs; otherwise, <see langword="false"/>.
            </value>
        </member>
        <member name="P:EmbedIO.Sessions.ISession.Item(System.String)">
            <summary>
            <para>Gets or sets the value associated with the specified key.</para>
            <para>Note that a session does not store null values; therefore, setting this property to <see langword="null"/>
            has the same effect as removing <paramref name="key"/> from the dictionary.</para>
            </summary>
            <value>
            The value associated with the specified key, if <paramref name="key"/>
            is found in the dictionary; otherwise, <see langword="null"/>.
            </value>
            <param name="key">The key of the value to get or set.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is <see langword="null"/>.</exception>
        </member>
        <member name="M:EmbedIO.Sessions.ISession.Clear">
            <summary>
            Removes all keys and values from a session.
            </summary>
        </member>
        <member name="M:EmbedIO.Sessions.ISession.ContainsKey(System.String)">
            <summary>
            Determines whether a session contains an element with the specified key.
            </summary>
            <param name="key">The key to locate in the object that implements <see cref="T:EmbedIO.Sessions.ISession"/>.</param>
            <returns>
            <see langword="true"/> if the object that implements <see cref="T:EmbedIO.Sessions.ISession"/> contains an element with the key;
            otherwise, <see langword="false"/> .
            </returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is <see langword="null"/>.</exception>
        </member>
        <member name="M:EmbedIO.Sessions.ISession.TryGetValue(System.String,System.Object@)">
            <summary>
            Gets the value associated with the specified key.
            </summary>
            <param name="key">The key whose value to get.</param>
            <param name="value">When this method returns, the value associated with the specified <paramref name="key"/>,
            if the key is found; otherwise, <see langword="null"/>. This parameter is passed uninitialized.</param>
            <returns><see langword="true"/> if the object that implements <see cref="T:EmbedIO.Sessions.ISession"/>
            contains an element with the specified key; otherwise, <see langword="false"/>.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is <see langword="null"/>.</exception>
        </member>
        <member name="M:EmbedIO.Sessions.ISession.TryRemove(System.String,System.Object@)">
            <summary>
            Attempts to remove and return the value that has the specified key from a session.
            </summary>
            <param name="key">The key of the element to remove and return.</param>
            <param name="value">When this method returns, the value removed from the object that implements <see cref="T:EmbedIO.Sessions.ISession"/>,
            if the key is found; otherwise, <see langword="null"/>. This parameter is passed uninitialized.</param>
            <returns><see langword="true"/> if the value was removed successfully; otherwise, <see langword="false"/>.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is <see langword="null"/>.</exception>
        </member>
        <member name="M:EmbedIO.Sessions.ISession.TakeSnapshot">
            <summary>
            Takes and returns a snapshot of the contents of a session at the time of calling.
            </summary>
            <returns>An <see cref="T:System.Collections.Generic.IReadOnlyList`1">IReadOnlyList&lt;KeyValuePair&lt;string,object&gt;&gt;</see> interface
            containing an immutable copy of the session data as it was at the time of calling this method.</returns>
            <remarks>
            <para>The objects contained in the session data are copied by reference, not cloned; therefore
            you should be aware that their state may change even after the snapshot is taken.</para>
            </remarks>
        </member>
        <member name="T:EmbedIO.Sessions.ISessionManager">
            <summary>
            Represents a session manager, which is in charge of managing session objects
            and their association to HTTP contexts.
            </summary>
        </member>
        <member name="M:EmbedIO.Sessions.ISessionManager.Start(System.Threading.CancellationToken)">
            <summary>
            Signals a session manager that the web server is starting.
            </summary>
            <param name="cancellationToken">The cancellation token used to stop the web server.</param>
        </member>
        <member name="M:EmbedIO.Sessions.ISessionManager.Create(EmbedIO.IHttpContext)">
            <summary>
            Returns the session associated with an <see cref="T:EmbedIO.IHttpContext"/>.
            If a session ID can be retrieved for the context and stored session data
            are available, the returned <see cref="T:EmbedIO.Sessions.ISession"/> will contain those data;
            otherwise, a new session is created and its ID is stored in the response
            to be retrieved by subsequent requests.
            </summary>
            <param name="context">The HTTP context.</param>
            <returns>An <see cref="T:EmbedIO.Sessions.ISession"/> interface.</returns>
        </member>
        <member name="M:EmbedIO.Sessions.ISessionManager.Delete(EmbedIO.IHttpContext,System.String)">
            <summary>
            Deletes the session (if any) associated with the specified context
            and removes the session's ID from the context.
            </summary>
            <param name="context">The HTTP context.</param>
            <param name="id">The unique ID of the session.</param>
            <seealso cref="P:EmbedIO.Sessions.ISession.Id"/>
        </member>
        <member name="M:EmbedIO.Sessions.ISessionManager.OnContextClose(EmbedIO.IHttpContext)">
            <summary>
            <para>Called by a session proxy when a session has been obtained
            for an <see cref="T:EmbedIO.IHttpContext"/> and the context is closed,
            even if the session was subsequently deleted.</para>
            <para>This method can be used to save session data to a storage medium.</para>
            </summary>
            <param name="context">The <see cref="T:EmbedIO.IHttpContext"/> for which a session was obtained.</param>
        </member>
        <member name="T:EmbedIO.Sessions.ISessionProxy">
            <summary>
            Represents a session proxy, i.e. an object that provides
            the same interface as a session object, plus a basic interface
            to a session manager.
            </summary>
            <remarks>
            A session proxy can be used just as if it were a session object.
            A session is automatically created wherever its data are accessed.
            </remarks>
            <seealso cref="T:EmbedIO.Sessions.ISession" />
        </member>
        <member name="P:EmbedIO.Sessions.ISessionProxy.Exists">
            <summary>
            Gets a value indicating whether a session exists for the current context.
            </summary>
            <value>
            <see langword="true"/> if a session exists; otherwise, <see langword="false"/>.
            </value>
        </member>
        <member name="M:EmbedIO.Sessions.ISessionProxy.Delete">
            <summary>
            Deletes the session for the current context.
            </summary>
        </member>
        <member name="M:EmbedIO.Sessions.ISessionProxy.Regenerate">
            <summary>
            Deletes the session for the current context and creates a new one.
            </summary>
        </member>
        <member name="T:EmbedIO.Sessions.LocalSessionManager">
            <summary>
            <para>A simple session manager to handle in-memory sessions.</para>
            <para>Not for intensive use or for distributed applications.</para>
            </summary>
        </member>
        <member name="F:EmbedIO.Sessions.LocalSessionManager.DefaultCookieName">
            <summary>
            The default name for session cookies, i.e. <c>"__session"</c>.
            </summary>
        </member>
        <member name="F:EmbedIO.Sessions.LocalSessionManager.DefaultCookiePath">
            <summary>
            The default path for session cookies, i.e. <c>"/"</c>.
            </summary>
        </member>
        <member name="F:EmbedIO.Sessions.LocalSessionManager.DefaultCookieHttpOnly">
            <summary>
            The default HTTP-only flag for session cookies, i.e. <see langword="true"/>.
            </summary>
        </member>
        <member name="F:EmbedIO.Sessions.LocalSessionManager.DefaultCookieDuration">
            <summary>
            The default duration for session cookies, i.e. <see cref="F:System.TimeSpan.Zero"/>.
            </summary>
        </member>
        <member name="F:EmbedIO.Sessions.LocalSessionManager.DefaultSessionDuration">
            <summary>
            The default duration for sessions, i.e. 30 minutes.
            </summary>
        </member>
        <member name="F:EmbedIO.Sessions.LocalSessionManager.DefaultPurgeInterval">
            <summary>
            The default interval between automatic purges of expired and empty sessions, i.e. 30 seconds.
            </summary>
        </member>
        <member name="M:EmbedIO.Sessions.LocalSessionManager.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:EmbedIO.Sessions.LocalSessionManager"/> class
            with default values for all properties.
            </summary>
            <seealso cref="F:EmbedIO.Sessions.LocalSessionManager.DefaultSessionDuration"/>
            <seealso cref="F:EmbedIO.Sessions.LocalSessionManager.DefaultPurgeInterval"/>
            <seealso cref="F:EmbedIO.Sessions.LocalSessionManager.DefaultCookieName"/>
            <seealso cref="F:EmbedIO.Sessions.LocalSessionManager.DefaultCookiePath"/>
            <seealso cref="F:EmbedIO.Sessions.LocalSessionManager.DefaultCookieDuration"/>
            <seealso cref="F:EmbedIO.Sessions.LocalSessionManager.DefaultCookieHttpOnly"/>
        </member>
        <member name="P:EmbedIO.Sessions.LocalSessionManager.SessionDuration">
            <summary>
            Gets or sets the duration of newly-created sessions.
            </summary>
            <exception cref="T:System.InvalidOperationException">This property is being set after calling
            the <see cref="M:EmbedIO.Sessions.LocalSessionManager.Start(System.Threading.CancellationToken)"/> method.</exception>
            <seealso cref="F:EmbedIO.Sessions.LocalSessionManager.DefaultSessionDuration"/>
        </member>
        <member name="P:EmbedIO.Sessions.LocalSessionManager.PurgeInterval">
            <summary>
            Gets or sets the interval between purges of expired sessions.
            </summary>
            <exception cref="T:System.InvalidOperationException">This property is being set after calling
            the <see cref="M:EmbedIO.Sessions.LocalSessionManager.Start(System.Threading.CancellationToken)"/> method.</exception>
            <seealso cref="F:EmbedIO.Sessions.LocalSessionManager.DefaultPurgeInterval"/>
        </member>
        <member name="P:EmbedIO.Sessions.LocalSessionManager.CookieName">
            <summary>
            <para>Gets or sets the name for session cookies.</para>
            </summary>
            <exception cref="T:System.InvalidOperationException">This property is being set after calling
            the <see cref="M:EmbedIO.Sessions.LocalSessionManager.Start(System.Threading.CancellationToken)"/> method.</exception>
            <exception cref="T:System.ArgumentNullException">This property is being set to <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentException">This property is being set and the provided value
            is not a valid URL path.</exception>
            <seealso cref="F:EmbedIO.Sessions.LocalSessionManager.DefaultCookieName"/>
        </member>
        <member name="P:EmbedIO.Sessions.LocalSessionManager.CookiePath">
            <summary>
            <para>Gets or sets the path for session cookies.</para>
            </summary>
            <exception cref="T:System.InvalidOperationException">This property is being set after calling
            the <see cref="M:EmbedIO.Sessions.LocalSessionManager.Start(System.Threading.CancellationToken)"/> method.</exception>
            <exception cref="T:System.ArgumentNullException">This property is being set to <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentException">This property is being set and the provided value
            is not a valid URL path.</exception>
            <seealso cref="F:EmbedIO.Sessions.LocalSessionManager.DefaultCookiePath"/>
        </member>
        <member name="P:EmbedIO.Sessions.LocalSessionManager.CookieDuration">
            <summary>
            Gets or sets the duration of session cookies.
            </summary>
            <exception cref="T:System.InvalidOperationException">This property is being set after calling
            the <see cref="M:EmbedIO.Sessions.LocalSessionManager.Start(System.Threading.CancellationToken)"/> method.</exception>
            <seealso cref="F:EmbedIO.Sessions.LocalSessionManager.DefaultCookieDuration"/>
        </member>
        <member name="P:EmbedIO.Sessions.LocalSessionManager.CookieHttpOnly">
            <summary>
            Gets or sets a value indicating whether session cookies are hidden from Javascript code running on a user agent.
            </summary>
            <exception cref="T:System.InvalidOperationException">This property is being set after calling
            the <see cref="M:EmbedIO.Sessions.LocalSessionManager.Start(System.Threading.CancellationToken)"/> method.</exception>
            <seealso cref="F:EmbedIO.Sessions.LocalSessionManager.DefaultCookieHttpOnly"/>
        </member>
        <member name="M:EmbedIO.Sessions.LocalSessionManager.Start(System.Threading.CancellationToken)">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.Sessions.LocalSessionManager.Create(EmbedIO.IHttpContext)">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.Sessions.LocalSessionManager.Delete(EmbedIO.IHttpContext,System.String)">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.Sessions.LocalSessionManager.OnContextClose(EmbedIO.IHttpContext)">
            <inheritdoc />
        </member>
        <member name="T:EmbedIO.Sessions.Session">
            <summary>
            Provides useful constants related to session management.
            </summary>
        </member>
        <member name="F:EmbedIO.Sessions.Session.IdComparison">
            <summary>
            <para>The <seealso cref="T:System.StringComparison"/> used to disambiguate session IDs.</para>
            <para>Corresponds to <see cref="F:System.StringComparison.Ordinal"/>.</para>
            </summary>
        </member>
        <member name="F:EmbedIO.Sessions.Session.KeyComparison">
            <summary>
            <para>The <seealso cref="T:System.StringComparison"/> used to disambiguate session keys.</para>
            <para>Corresponds to <see cref="F:System.StringComparison.InvariantCulture"/>.</para>
            </summary>
        </member>
        <member name="F:EmbedIO.Sessions.Session.IdComparer">
            <summary>
            <para>The equality comparer used for session IDs.</para>
            <para>Corresponds to <see cref="P:System.StringComparer.Ordinal"/>.</para>
            </summary>
        </member>
        <member name="F:EmbedIO.Sessions.Session.KeyComparer">
            <summary>
            <para>The equality comparer used for session keys.</para>
            <para>Corresponds to <see cref="P:System.StringComparer.InvariantCulture"/>.</para>
            </summary>
        </member>
        <member name="T:EmbedIO.Sessions.SessionExtensions">
            <summary>
            Provides extension methods for types implementing <see cref="T:EmbedIO.Sessions.ISession"/>.
            </summary>
        </member>
        <member name="M:EmbedIO.Sessions.SessionExtensions.TryGetValue``1(EmbedIO.Sessions.ISession,System.String,``0@)">
            <summary>Gets the value associated with the specified key.</summary>
            <typeparam name="T">The desired type of the value.</typeparam>
            <param name="this">The <see cref="T:EmbedIO.Sessions.ISession"/> on which this method is called.</param>
            <param name="key">The key whose value to get from the session.</param>
            <param name="value">
            <para>When this method returns, the value associated with the specified key,
            if the key is found and the associated value is of type <typeparamref name="T"/>;
            otherwise, the default value for <typeparamref name="T"/>.</para>
            <para>This parameter is passed uninitialized.</para>
            </param>
            <returns><see langword="true"/> if the key is found and the associated value is of type <typeparamref name="T"/>;
            otherwise, <see langword="false"/>.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is <see langword="null"/>.</exception>
        </member>
        <member name="M:EmbedIO.Sessions.SessionExtensions.GetValue``1(EmbedIO.Sessions.ISession,System.String)">
            <summary>Gets the value associated with the specified key.</summary>
            <typeparam name="T">The desired type of the value.</typeparam>
            <param name="this">The <see cref="T:EmbedIO.Sessions.ISession"/> on which this method is called.</param>
            <param name="key">The key whose value to get from the session.</param>
            <returns>The value associated with the specified key,
            if the key is found and the associated value is of type <typeparamref name="T"/>;
            otherwise, the default value for <typeparamref name="T"/>.</returns>
        </member>
        <member name="M:EmbedIO.Sessions.SessionExtensions.GetOrDefault``1(EmbedIO.Sessions.ISession,System.String,``0)">
            <summary>Gets the value associated with the specified key.</summary>
            <typeparam name="T">The desired type of the value.</typeparam>
            <param name="this">The <see cref="T:EmbedIO.Sessions.ISession"/> on which this method is called.</param>
            <param name="key">The key whose value to get from the session.</param>
            <param name="defaultValue">The default value to return if the key is not found
            or its associated value is not of type <typeparamref name="T"/>.</param>
            <returns>The value associated with the specified key,
            if the key is found and the associated value is of type <typeparamref name="T"/>;
            otherwise, <paramref name="defaultValue"/>.</returns>
        </member>
        <member name="T:EmbedIO.Sessions.SessionProxy">
            <summary>
            Provides the same interface as a session object,
            plus a basic interface to a session manager.
            </summary>
            <remarks>
            A session proxy can be used just as if it were a session object.
            A session is automatically created wherever its data are accessed.
            </remarks>
            <seealso cref="T:EmbedIO.Sessions.ISessionProxy" />
        </member>
        <member name="P:EmbedIO.Sessions.SessionProxy.None">
            <summary>
            Returns a "dummy" <see cref="T:EmbedIO.Sessions.ISessionProxy"/> interface that will always behave as if no session manager has been defined.
            </summary>
            <remarks>
            <para>The returned <see cref="T:EmbedIO.Sessions.ISessionProxy"/> interface is only useful
            to initialize a non-nullable property of type <see cref="T:EmbedIO.Sessions.ISessionProxy"/>.</para>
            </remarks>
        </member>
        <member name="P:EmbedIO.Sessions.SessionProxy.Exists">
            <inheritdoc/>
        </member>
        <member name="P:EmbedIO.Sessions.SessionProxy.Id">
            <inheritdoc/>
        </member>
        <member name="P:EmbedIO.Sessions.SessionProxy.Duration">
            <inheritdoc/>
        </member>
        <member name="P:EmbedIO.Sessions.SessionProxy.LastActivity">
            <inheritdoc/>
        </member>
        <member name="P:EmbedIO.Sessions.SessionProxy.Count">
            <inheritdoc/>
        </member>
        <member name="P:EmbedIO.Sessions.SessionProxy.IsEmpty">
            <inheritdoc/>
        </member>
        <member name="P:EmbedIO.Sessions.SessionProxy.Item(System.String)">
            <inheritdoc/>
        </member>
        <member name="M:EmbedIO.Sessions.SessionProxy.Delete">
            <inheritdoc/>
        </member>
        <member name="M:EmbedIO.Sessions.SessionProxy.Regenerate">
            <inheritdoc/>
        </member>
        <member name="M:EmbedIO.Sessions.SessionProxy.Clear">
            <inheritdoc/>
        </member>
        <member name="M:EmbedIO.Sessions.SessionProxy.ContainsKey(System.String)">
            <inheritdoc/>
        </member>
        <member name="M:EmbedIO.Sessions.SessionProxy.TryGetValue(System.String,System.Object@)">
            <inheritdoc/>
        </member>
        <member name="M:EmbedIO.Sessions.SessionProxy.TryRemove(System.String,System.Object@)">
            <inheritdoc/>
        </member>
        <member name="M:EmbedIO.Sessions.SessionProxy.TakeSnapshot">
            <inheritdoc/>
        </member>
        <member name="T:EmbedIO.Utilities.ComponentCollectionExtensions">
            <summary>
            Provides extension methods for types implementing <see cref="T:EmbedIO.Utilities.IComponentCollection`1"/>.
            </summary>
        </member>
        <member name="M:EmbedIO.Utilities.ComponentCollectionExtensions.Add``1(EmbedIO.Utilities.IComponentCollection{``0},``0)">
            <summary>
            Adds the specified component to a collection, without giving it a name.
            </summary>
            <typeparam name="T">The type of components in the collection.</typeparam>
            <param name="this">The <see cref="T:EmbedIO.Utilities.IComponentCollection`1" /> on which this method is called.</param>
            <param name="component">The component to add.</param>
            <exception cref="T:System.NullReferenceException"><paramref name="this" /> is <see langword="null" />.</exception>
            <seealso cref="M:EmbedIO.Utilities.IComponentCollection`1.Add(System.String,`0)" />
        </member>
        <member name="T:EmbedIO.Utilities.ComponentCollection`1">
            <summary>
            <para>Implements a collection of components.</para>
            <para>Each component in the collection may be given a unique name for later retrieval.</para>
            </summary>
            <typeparam name="T">The type of components in the collection.</typeparam>
            <seealso cref="T:EmbedIO.Utilities.IComponentCollection`1" />
        </member>
        <member name="P:EmbedIO.Utilities.ComponentCollection`1.Count">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Utilities.ComponentCollection`1.Named">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Utilities.ComponentCollection`1.WithSafeNames">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Utilities.ComponentCollection`1.Item(System.Int32)">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.Utilities.ComponentCollection`1.Item(System.String)">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.Utilities.ComponentCollection`1.GetEnumerator">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.Utilities.ComponentCollection`1.System#Collections#IEnumerable#GetEnumerator">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.Utilities.ComponentCollection`1.Add(System.String,`0)">
            <inheritdoc />
            <exception cref="T:System.InvalidOperationException">The collection is locked.</exception>
        </member>
        <member name="M:EmbedIO.Utilities.ComponentCollection`1.Lock">
            <summary>
            Locks the collection, preventing further additions.
            </summary>
        </member>
        <member name="T:EmbedIO.Utilities.DisposableComponentCollection`1">
            <summary>
            <para>Implements a collection of components that automatically disposes each component
            implementing <see cref="T:System.IDisposable"/>.</para>
            <para>Each component in the collection may be given a unique name for later retrieval.</para>
            </summary>
            <typeparam name="T">The type of components in the collection.</typeparam>
            <seealso cref="T:EmbedIO.Utilities.ComponentCollection`1" />
            <seealso cref="T:EmbedIO.Utilities.IComponentCollection`1" />
        </member>
        <member name="M:EmbedIO.Utilities.DisposableComponentCollection`1.Finalize">
            <summary>
            Finalizes an instance of the <see cref="T:EmbedIO.Utilities.DisposableComponentCollection`1"/> class.
            </summary>
        </member>
        <member name="M:EmbedIO.Utilities.DisposableComponentCollection`1.Dispose">
            <summary>
            Releases unmanaged and - optionally - managed resources.
            </summary>
        </member>
        <member name="M:EmbedIO.Utilities.DisposableComponentCollection`1.Dispose(System.Boolean)">
            <summary>
            Releases unmanaged and - optionally - managed resources.
            </summary>
            <param name="disposing">
            <see langword="true"/> to release both managed and unmanaged resources; <see langword="true"/> to release only unmanaged resources.
            </param>
        </member>
        <member name="T:EmbedIO.Utilities.HttpDate">
            <summary>
            Provides standard methods to parse and format <see cref="T:System.DateTime"/>s according to various RFCs.
            </summary>
        </member>
        <member name="M:EmbedIO.Utilities.HttpDate.TryParse(System.String,System.DateTimeOffset@)">
            <summary>
            Attempts to parse a string containing a date and time, and possibly a time zone offset,
            in one of the formats specified in <see href="https://tools.ietf.org/html/rfc850">RFC850</see>,
            <see href="https://tools.ietf.org/html/rfc1123">RFC1123</see>,
            and <see href="https://tools.ietf.org/html/rfc5322">RFC5322</see>,
            or ANSI C's <see href="https://linux.die.net/man/3/asctime"><c>asctime()</c></see> format.
            </summary>
            <param name="str">The string to parse.</param>
            <param name="result">When this method returns <see langword="true"/>,
            a <see cref="T:System.DateTimeOffset"/> representing the parsed date, time, and time zone offset.
            This parameter is passed uninitialized.</param>
            <returns><see langword="true"/> if <paramref name="str"/> was successfully parsed;
            otherwise, <see langword="false"/>.</returns>
        </member>
        <member name="M:EmbedIO.Utilities.HttpDate.Format(System.DateTimeOffset)">
            <summary>
            Formats the specified <see cref="T:System.DateTimeOffset"/>
            according to <see href="https://tools.ietf.org/html/rfc1123">RFC1123</see>.
            </summary>
            <param name="dateTimeOffset">The <see cref="T:System.DateTimeOffset"/> to format.</param>
            <returns>A string containing the formatted <paramref name="dateTimeOffset"/>.</returns>
        </member>
        <member name="M:EmbedIO.Utilities.HttpDate.Format(System.DateTime)">
            <summary>
            Formats the specified <see cref="T:System.DateTime"/>
            according to <see href="https://tools.ietf.org/html/rfc1123">RFC1123</see>.
            </summary>
            <param name="dateTime">The <see cref="T:System.DateTime"/> to format.</param>
            <returns>A string containing the formatted <paramref name="dateTime"/>.</returns>
        </member>
        <member name="T:EmbedIO.Utilities.IComponentCollection`1">
            <summary>
            <para>Represents a collection of components.</para>
            <para>Each component in the collection may be given a unique name for later retrieval.</para>
            </summary>
            <typeparam name="T">The type of components in the collection.</typeparam>
        </member>
        <member name="P:EmbedIO.Utilities.IComponentCollection`1.Named">
            <summary>
            Gets an <see cref="T:System.Collections.Generic.IReadOnlyDictionary`2"/> interface representing the named components.
            </summary>
            <value>
            The named components.
            </value>
        </member>
        <member name="P:EmbedIO.Utilities.IComponentCollection`1.WithSafeNames">
            <summary>
            <para>Gets an <see cref="T:System.Collections.Generic.IReadOnlyList`1"/> interface representing all components
            associated with safe names.</para>
            <para>The safe name of a component is never <see langword="null"/>.
            If a component's unique name if <see langword="null"/>, its safe name
            will be some non-<see langword="null"/> string somehow identifying it.</para>
            <para>Note that safe names are not necessarily unique.</para>
            </summary>
            <value>
            A list of <see cref="T:System.ValueTuple`2"/>s, each containing a safe name and a component.
            </value>
        </member>
        <member name="P:EmbedIO.Utilities.IComponentCollection`1.Item(System.String)">
            <summary>
            Gets the component with the specified name.
            </summary>
            <value>
            The component.
            </value>
            <param name="name">The name.</param>
            <returns>The component with the specified <paramref name="name"/>.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="name"/> is null.</exception>
            <exception cref="T:System.Collections.Generic.KeyNotFoundException">The property is retrieved and <paramref name="name"/> is not found.</exception>
        </member>
        <member name="M:EmbedIO.Utilities.IComponentCollection`1.Add(System.String,`0)">
            <summary>
            Adds a component to the collection,
            giving it the specified <paramref name="name"/> if it is not <see langword="null"/>.
            </summary>
            <param name="name">The name given to the module, or <see langword="null"/>.</param>
            <param name="component">The component.</param>
        </member>
        <member name="T:EmbedIO.Utilities.IPParser">
            <summary>
            Provides standard methods to parse IP address strings.
            </summary>
        </member>
        <member name="M:EmbedIO.Utilities.IPParser.ParseAsync(System.String)">
            <summary>
            Parses the specified IP address.
            </summary>
            <param name="address">The IP address.</param>
            <returns>A collection of <see cref="T:System.Net.IPAddress"/> parsed correctly from <paramref name="address"/>.</returns>
        </member>
        <member name="M:EmbedIO.Utilities.IPParser.IsCidrNotation(System.String)">
            <summary>
            Determines whether the IP-range string is in CIDR notation.
            </summary>
            <param name="range">The IP-range string.</param>
            <returns>
              <c>true</c> if the IP-range string is CIDR notation; otherwise, <c>false</c>.
            </returns>
        </member>
        <member name="M:EmbedIO.Utilities.IPParser.ParseCidrNotation(System.String)">
            <summary>
            Parse IP-range string in CIDR notation. For example "12.15.0.0/16".
            </summary>
            <param name="range">The IP-range string.</param>
            <returns>A collection of <see cref="T:System.Net.IPAddress"/> parsed correctly from <paramref name="range"/>.</returns>
        </member>
        <member name="M:EmbedIO.Utilities.IPParser.IsSimpleIPRange(System.String)">
            <summary>
            Determines whether the IP-range string is in simple IP range notation.
            </summary>
            <param name="range">The IP-range string.</param>
            <returns>
              <c>true</c> if the IP-range string is in simple IP range notation; otherwise, <c>false</c>.
            </returns>
        </member>
        <member name="M:EmbedIO.Utilities.IPParser.TryParseSimpleIPRange(System.String)">
            <summary>
            Tries to parse IP-range string "12.15-16.1-30.10-255"
            </summary>
            <param name="range">The IP-range string.</param>
            <returns>A collection of <see cref="T:System.Net.IPAddress"/> parsed correctly from <paramref name="range"/>.</returns>
        </member>
        <member name="T:EmbedIO.Utilities.MimeTypeProviderStack">
            <summary>
            <para>Manages a stack of MIME type providers.</para>
            <para>This API supports the EmbedIO infrastructure and is not intended to be used directly from your code.</para>
            </summary>
            <seealso cref="T:EmbedIO.IMimeTypeProvider" />
        </member>
        <member name="M:EmbedIO.Utilities.MimeTypeProviderStack.Push(EmbedIO.IMimeTypeProvider)">
            <summary>
            <para>Pushes the specified MIME type provider on the stack.</para>
            <para>This API supports the EmbedIO infrastructure and is not intended to be used directly from your code.</para>
            </summary>
            <param name="provider">The <see cref="T:EmbedIO.IMimeTypeProvider"/> interface to push on the stack.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="provider"/>is <see langword="null"/>.</exception>
        </member>
        <member name="M:EmbedIO.Utilities.MimeTypeProviderStack.Pop">
            <summary>
            <para>Removes the most recently added MIME type provider from the stack.</para>
            <para>This API supports the EmbedIO infrastructure and is not intended to be used directly from your code.</para>
            </summary>
        </member>
        <member name="M:EmbedIO.Utilities.MimeTypeProviderStack.GetMimeType(System.String)">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.Utilities.MimeTypeProviderStack.TryDetermineCompression(System.String,System.Boolean@)">
            <inheritdoc />
        </member>
        <member name="T:EmbedIO.Utilities.NameValueCollectionExtensions">
            <summary>
            Provides extension methods for <see cref="T:System.Collections.Specialized.NameValueCollection"/>.
            </summary>
        </member>
        <member name="M:EmbedIO.Utilities.NameValueCollectionExtensions.ToDictionary(System.Collections.Specialized.NameValueCollection)">
            <summary>
            <para>Converts a <see cref="T:System.Collections.Specialized.NameValueCollection"/> to a dictionary of objects.</para>
            <para>Values in the returned dictionary will wither be strings, or arrays of strings,
            depending on the presence of multiple values for the same key in the collection.</para>
            </summary>
            <param name="this">The <see cref="T:System.Collections.Specialized.NameValueCollection"/> on which this method is called.</param>
            <returns>A <see cref="T:System.Collections.Generic.Dictionary`2"/> associating the collection's keys
            with their values.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
        </member>
        <member name="M:EmbedIO.Utilities.NameValueCollectionExtensions.ToStringDictionary(System.Collections.Specialized.NameValueCollection)">
            <summary>
            Converts a <see cref="T:System.Collections.Specialized.NameValueCollection"/> to a dictionary of strings.
            </summary>
            <param name="this">The <see cref="T:System.Collections.Specialized.NameValueCollection"/> on which this method is called.</param>
            <returns>A <see cref="T:System.Collections.Generic.Dictionary`2"/> associating the collection's keys
            with their values (or comma-separated lists in case of multiple values).</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
        </member>
        <member name="M:EmbedIO.Utilities.NameValueCollectionExtensions.ToArrayDictionary(System.Collections.Specialized.NameValueCollection)">
            <summary>
            Converts a <see cref="T:System.Collections.Specialized.NameValueCollection"/> to a dictionary of arrays of strings.
            </summary>
            <param name="this">The <see cref="T:System.Collections.Specialized.NameValueCollection"/> on which this method is called.</param>
            <returns>A <see cref="T:System.Collections.Generic.Dictionary`2"/> associating the collection's keys
            with arrays of their values.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
        </member>
        <member name="M:EmbedIO.Utilities.NameValueCollectionExtensions.ContainsKey(System.Collections.Specialized.NameValueCollection,System.String)">
            <summary>
            Determines whether a <see cref="T:System.Collections.Specialized.NameValueCollection"/> contains one or more values
            for the specified <paramref name="key"/>.
            </summary>
            <param name="this">The <see cref="T:System.Collections.Specialized.NameValueCollection"/> on which this method is called.</param>
            <param name="key">The key to look for.</param>
            <returns><see langword="true"/> if at least one value for <paramref name="key"/>
            is present in the collection; otherwise, <see langword="false"/>.
            </returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
        </member>
        <member name="M:EmbedIO.Utilities.NameValueCollectionExtensions.Contains(System.Collections.Specialized.NameValueCollection,System.String,System.String)">
            <summary>
            Determines whether a <see cref="T:System.Collections.Specialized.NameValueCollection"/> contains one or more values
            for the specified <paramref name="name"/>, at least one of which is equal to the specified
            <paramref name="value"/>. Value comparisons are carried out using the
            <see cref="F:System.StringComparison.OrdinalIgnoreCase"/> comparison type.
            </summary>
            <param name="this">The <see cref="T:System.Collections.Specialized.NameValueCollection"/> on which this method is called.</param>
            <param name="name">The name to look for.</param>
            <param name="value">The value to look for.</param>
            <returns><see langword="true"/> if at least one of the values for <paramref name="name"/>
            in the collection is equal to <paramref name="value"/>; otherwise, <see langword="false"/>.
            </returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <remarks>White space is trimmed from the start and end of each value before comparison.</remarks>
            <seealso cref="M:EmbedIO.Utilities.NameValueCollectionExtensions.Contains(System.Collections.Specialized.NameValueCollection,System.String,System.String,System.StringComparison)"/>
        </member>
        <member name="M:EmbedIO.Utilities.NameValueCollectionExtensions.Contains(System.Collections.Specialized.NameValueCollection,System.String,System.String,System.StringComparison)">
            <summary>
            Determines whether a <see cref="T:System.Collections.Specialized.NameValueCollection"/> contains one or more values
            for the specified <paramref name="name"/>, at least one of which is equal to the specified
            <paramref name="value"/>. Value comparisons are carried out using the specified
            <paramref name="comparisonType"/>.
            </summary>
            <param name="this">The <see cref="T:System.Collections.Specialized.NameValueCollection"/> on which this method is called.</param>
            <param name="name">The name to look for.</param>
            <param name="value">The value to look for.</param>
            <param name="comparisonType">One of the <see cref="T:System.StringComparison"/> enumeration values
            that specifies how the strings will be compared.</param>
            <returns><see langword="true"/> if at least one of the values for <paramref name="name"/>
            in the collection is equal to <paramref name="value"/>; otherwise, <see langword="false"/>.
            </returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <remarks>White space is trimmed from the start and end of each value before comparison.</remarks>
            <seealso cref="M:EmbedIO.Utilities.NameValueCollectionExtensions.Contains(System.Collections.Specialized.NameValueCollection,System.String,System.String)"/>
        </member>
        <member name="T:EmbedIO.Utilities.QValueList">
            <summary>
            <para>Represents a list of names with associated quality values extracted from an HTTP header,
            e.g. <c>gzip; q=0.9, deflate</c>.</para>
            <para>See <see href="https://tools.ietf.org/html/rfc7231#section-5.3">RFC7231, section 5.3</see>.</para>
            <para>This class ignores and discards extensions (<c>accept-ext</c> in RFC7231 terminology).</para>
            <para>If a name has one or more parameters (e.g. <c>text/html;level=1</c>) it is not
            further parsed: parameters will appear as part of the name.</para>
            </summary>
        </member>
        <member name="F:EmbedIO.Utilities.QValueList.Wildcard">
            <summary>
            <para>A value signifying "anything will do" in request headers.</para>
            <para>For example, a request header of
            <c>Accept-Encoding: *;q=0.8, gzip</c> means "I prefer GZip compression;
            if it is not available, any other compression (including no compression at all)
            is OK for me".</para>
            </summary>
        </member>
        <member name="M:EmbedIO.Utilities.QValueList.#ctor(System.Boolean,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:EmbedIO.Utilities.QValueList"/> class
            by parsing comma-separated request header values.
            </summary>
            <param name="useWildcard">If set to <see langword="true"/>, a value of <c>*</c>
            will be treated as signifying "anything".</param>
            <param name="headerValues">A list of comma-separated header values.</param>
            <seealso cref="P:EmbedIO.Utilities.QValueList.UseWildcard"/>
        </member>
        <member name="M:EmbedIO.Utilities.QValueList.#ctor(System.Boolean,System.Collections.Generic.IEnumerable{System.String})">
            <summary>
            Initializes a new instance of the <see cref="T:EmbedIO.Utilities.QValueList"/> class
            by parsing comma-separated request header values.
            </summary>
            <param name="useWildcard">If set to <see langword="true"/>, a value of <c>*</c>
            will be treated as signifying "anything".</param>
            <param name="headerValues">An enumeration of header values.
            Note that each element of the enumeration may in turn be
            a comma-separated list.</param>
            <seealso cref="P:EmbedIO.Utilities.QValueList.UseWildcard"/>
        </member>
        <member name="M:EmbedIO.Utilities.QValueList.#ctor(System.Boolean,System.String[])">
            <summary>
            Initializes a new instance of the <see cref="T:EmbedIO.Utilities.QValueList"/> class
            by parsing comma-separated request header values.
            </summary>
            <param name="useWildcard">If set to <see langword="true"/>, a value of <c>*</c>
            will be treated as signifying "anything".</param>
            <param name="headerValues">An array of header values.
            Note that each element of the array may in turn be
            a comma-separated list.</param>
            <seealso cref="P:EmbedIO.Utilities.QValueList.UseWildcard"/>
        </member>
        <member name="P:EmbedIO.Utilities.QValueList.QValues">
            <summary>
            Gets a dictionary associating values with their relative weight
            (an integer ranging from 0 to 1000) and their position in the
            list of header values from which this instance has been constructed.
            </summary>
            <remarks>
            <para>This property does not usually need to be used directly;
            use the <see cref="M:EmbedIO.Utilities.QValueList.IsCandidate(System.String)"/>, <see cref="M:EmbedIO.Utilities.QValueList.FindPreferred(System.Collections.Generic.IEnumerable{System.String})"/>,
            <see cref="M:EmbedIO.Utilities.QValueList.FindPreferredIndex(System.Collections.Generic.IEnumerable{System.String})"/>, and
            <see cref="M:EmbedIO.Utilities.QValueList.FindPreferredIndex(System.String[])"/> methods instead.</para>
            </remarks>
            <seealso cref="M:EmbedIO.Utilities.QValueList.IsCandidate(System.String)"/>
            <seealso cref="M:EmbedIO.Utilities.QValueList.FindPreferred(System.Collections.Generic.IEnumerable{System.String})"/>
            <seealso cref="M:EmbedIO.Utilities.QValueList.FindPreferredIndex(System.Collections.Generic.IEnumerable{System.String})"/>
            <seealso cref="M:EmbedIO.Utilities.QValueList.FindPreferredIndex(System.String[])"/>
        </member>
        <member name="P:EmbedIO.Utilities.QValueList.UseWildcard">
            <summary>
            Gets a value indicating whether <c>*</c> is treated as a special value
            with the meaning of "anything".
            </summary>
        </member>
        <member name="M:EmbedIO.Utilities.QValueList.IsCandidate(System.String)">
            <summary>
            Determines whether the specified value is a possible candidate.
            </summary>
            <param name="value">The value.</param>
            <returns><see langword="true"/>if <paramref name="value"/> is a candidate;
            otherwise, <see langword="false"/>.</returns>
        </member>
        <member name="M:EmbedIO.Utilities.QValueList.TryGetWeight(System.String,System.Int32@)">
            <summary>
            Attempts to determine whether the weight of a possible candidate.
            </summary>
            <param name="value">The value whose weight is to be determined.</param>
            <param name="weight">When this method returns <see langword="true"/>,
            the weight of the candidate.</param>
            <returns><see langword="true"/> if <paramref name="value"/> is a candidate;
            otherwise, <see langword="false"/>.</returns>
        </member>
        <member name="M:EmbedIO.Utilities.QValueList.FindPreferred(System.Collections.Generic.IEnumerable{System.String})">
            <summary>
            Finds the value preferred by the client among an enumeration of values.
            </summary>
            <param name="values">The values.</param>
            <returns>The value preferred by the client, or <see langword="null"/>
            if none of the provided <paramref name="values"/> is accepted.</returns>
        </member>
        <member name="M:EmbedIO.Utilities.QValueList.FindPreferredIndex(System.Collections.Generic.IEnumerable{System.String})">
            <summary>
            Finds the index of the value preferred by the client in a list of values.
            </summary>
            <param name="values">The values.</param>
            <returns>The index of the value preferred by the client, or -1
            if none of the values in <paramref name="values"/> is accepted.</returns>
        </member>
        <member name="M:EmbedIO.Utilities.QValueList.FindPreferredIndex(System.String[])">
            <summary>
            Finds the index of the value preferred by the client in an array of values.
            </summary>
            <param name="values">The values.</param>
            <returns>The index of the value preferred by the client, or -1
            if none of the values in <paramref name="values"/> is accepted.</returns>
        </member>
        <member name="T:EmbedIO.Utilities.QValueListExtensions">
            <summary>
            Provides extension methods for <see cref="T:EmbedIO.Utilities.QValueList"/>.
            </summary>
        </member>
        <member name="M:EmbedIO.Utilities.QValueListExtensions.TryNegotiateContentEncoding(EmbedIO.Utilities.QValueList,System.Boolean,EmbedIO.CompressionMethod@,System.String@)">
            <summary>
            <para>Attempts to proactively negotiate a compression method for a response,
            based on the contents of a <see cref="T:EmbedIO.Utilities.QValueList"/>.</para>
            </summary>
            <param name="this">The <see cref="T:EmbedIO.Utilities.QValueList"/> on which this method is called.</param>
            <param name="preferCompression"><see langword="true"/> if sending compressed data is preferred over
            sending non-compressed data; otherwise, <see langword="false"/>.</param>
            <param name="compressionMethod">When this method returns, the compression method to use for the response,
            if content negotiation is successful. This parameter is passed uninitialized.</param>
            <param name="compressionMethodName">When this method returns, the name of the compression method,
            if content negotiation is successful. This parameter is passed uninitialized.</param>
            <returns><see langword="true"/> if content negotiation is successful;
            otherwise, <see langword="false"/>.</returns>
            <remarks>
            <para>If <paramref name="this"/> is empty, this method always returns <see langword="true"/>,
            setting <paramref name="compressionMethod"/> to <see cref="F:EmbedIO.CompressionMethod.None"/>
            and <paramref name="compressionMethodName"/> to <see cref="F:EmbedIO.CompressionMethodNames.None"/>.</para>
            </remarks>
        </member>
        <member name="T:EmbedIO.Utilities.StringExtensions">
            <summary>
            Provides extension methods for <see cref="T:System.String"/>.
            </summary>
        </member>
        <member name="M:EmbedIO.Utilities.StringExtensions.SplitByAny(System.String,System.Char[])">
            <summary>Splits a string into substrings based on the specified <paramref name="delimiters"/>.
            The returned array includes empty array elements if two or more consecutive delimiters are found
            in <paramref name="this"/>.</summary>
            <param name="this">The <see cref="T:System.String"/> on which this method is called.</param>
            <param name="delimiters">An array of <see cref="T:System.Char"/>s to use as delimiters.</param>
            <returns>An array whose elements contain the substrings in <paramref name="this"/> that are delimited
            by one or more characters in <paramref name="delimiters"/>.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
        </member>
        <member name="M:EmbedIO.Utilities.StringExtensions.SplitByComma(System.String)">
            <summary>Splits a string into substrings, using the comma (<c>,</c>) character as a delimiter.
            The returned array includes empty array elements if two or more commas are found in <paramref name="this"/>.</summary>
            <param name="this">The <see cref="T:System.String"/> on which this method is called.</param>
            <returns>An array whose elements contain the substrings in <paramref name="this"/> that are delimited by commas.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <seealso cref="M:EmbedIO.Utilities.StringExtensions.SplitByComma(System.String,System.StringSplitOptions)"/>
        </member>
        <member name="M:EmbedIO.Utilities.StringExtensions.SplitByComma(System.String,System.StringSplitOptions)">
            <summary>Splits a string into substrings, using the comma (<c>,</c>) character as a delimiter.
            You can specify whether the substrings include empty array elements.</summary>
            <param name="this">The <see cref="T:System.String"/> on which this method is called.</param>
            <param name="options"><see cref="F:System.StringSplitOptions.RemoveEmptyEntries"/> to omit empty array elements from the array returned;
            or <see cref="F:System.StringSplitOptions.None"/> to include empty array elements in the array returned.</param>
            <returns>
            <para>An array whose elements contain the substrings in <paramref name="this"/> that are delimited by commas.</para>
            <para>For more information, see the Remarks section of the <see cref="M:System.String.Split(System.Char[],System.StringSplitOptions)"/> method.</para>
            </returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentException"><paramref name="options">options</paramref> is not one of the <see cref="T:System.StringSplitOptions"/> values.</exception>
            <seealso cref="M:EmbedIO.Utilities.StringExtensions.SplitByComma(System.String)"/>
        </member>
        <member name="M:EmbedIO.Utilities.StringExtensions.NullIfEmpty(System.String)">
            <summary>
            Ensures that a <see cref="T:System.String"/> is never empty,
            by transforming empty strings into <see langword="null"/>.
            </summary>
            <param name="this">The <see cref="T:System.String"/> on which this method is called.</param>
            <returns>If <paramref name="this"/> is the empty string, <see langword="null"/>;
            otherwise, <paramref name="this.."/></returns>
        </member>
        <member name="T:EmbedIO.Utilities.UniqueIdGenerator">
            <summary>
            <para>Generates locally unique string IDs, mainly for logging purposes.</para>
            </summary>
        </member>
        <member name="M:EmbedIO.Utilities.UniqueIdGenerator.GetNext">
            <summary>
            Generates and returns a unique ID.
            </summary>
            <returns>The generated ID.</returns>
        </member>
        <member name="T:EmbedIO.Utilities.UrlEncodedDataParser">
            <summary>
            Parses URL queries or URL-encoded HTML forms.
            </summary>
        </member>
        <member name="M:EmbedIO.Utilities.UrlEncodedDataParser.Parse(System.String,System.Boolean,System.Boolean)">
            <summary>
            <para>Parses a URL query or URL-encoded HTML form.</para>
            <para>Unlike <see cref="P:System.Net.HttpListenerRequest.QueryString" />, the returned
            <see cref="T:System.Collections.Specialized.NameValueCollection" /> will have bracketed indexes stripped away;
            for example, <c>a[0]=1&amp;a[1]=2</c> will yield the same result as <c>a=1&amp;a=2</c>,
            i.e. a <see cref="T:System.Collections.Specialized.NameValueCollection" /> with one key (<c>a</c>) associated with
            two values (<c>1</c> and <c>2</c>).</para>
            </summary>
            <param name="source">The string to parse.</param>
            <param name="groupFlags"><para>If this parameter is <see langword="true" />,
            tokens not followed by an equal sign (e.g. <c>this</c> in <c>a=1&amp;this&amp;b=2</c>)
            will be grouped as values of a <c>null</c> key.
            This is the same behavior as the <see cref="P:EmbedIO.IHttpRequest.QueryString" /> and
            <see cref="P:System.Net.HttpListenerRequest.QueryString" /> properties.</para>
            <para>If this parameter is <see langword="false" />, tokens not followed by an equal sign
            (e.g. <c>this</c> in <c>a=1&amp;this&amp;b=2</c>) will be considered keys with an empty
            value. This is the same behavior as the <see cref="M:EmbedIO.HttpContextExtensions.GetRequestQueryData(EmbedIO.IHttpContext)" />
            extension method.</para></param>
            <param name="mutableResult"><see langword="true" /> (the default) to return
            a mutable (non-read-only) collection; <see langword="false" /> to return a read-only collection.</param>
            <returns>A <see cref="T:System.Collections.Specialized.NameValueCollection" /> containing the parsed data.</returns>
        </member>
        <member name="T:EmbedIO.Utilities.UrlPath">
            <summary>
            Provides utility methods to work with URL paths.
            </summary>
        </member>
        <member name="F:EmbedIO.Utilities.UrlPath.Root">
            <summary>
            The root URL path value, i.e. <c>"/"</c>.
            </summary>
        </member>
        <member name="M:EmbedIO.Utilities.UrlPath.IsValid(System.String)">
            <summary>
            Determines whether a string is a valid URL path.
            </summary>
            <param name="urlPath">The URL path.</param>
            <returns>
            <see langword="true"/> if the specified URL path is valid; otherwise, <see langword="false"/>.
            </returns>
            <remarks>
            <para>For a string to be a valid URL path, it must not be <see langword="null"/>,
            must not be empty, and must start with a slash (<c>/</c>) character.</para>
            <para>To ensure that a method parameter is a valid URL path, use <see cref="M:EmbedIO.Utilities.Validate.UrlPath(System.String,System.String,System.Boolean)"/>.</para>
            </remarks>
            <seealso cref="M:EmbedIO.Utilities.UrlPath.Normalize(System.String,System.Boolean)"/>
            <seealso cref="M:EmbedIO.Utilities.UrlPath.UnsafeNormalize(System.String,System.Boolean)"/>
            <seealso cref="M:EmbedIO.Utilities.Validate.UrlPath(System.String,System.String,System.Boolean)"/>
        </member>
        <member name="M:EmbedIO.Utilities.UrlPath.Normalize(System.String,System.Boolean)">
            <summary>
            Normalizes the specified URL path.
            </summary>
            <param name="urlPath">The URL path.</param>
            <param name="isBasePath">if set to <see langword="true"/>, treat the URL path
            as a base path, i.e. ensure it ends with a slash (<c>/</c>) character;
            otherwise, ensure that it does NOT end with a slash character.</param>
            <returns>The normalized path.</returns>
            <exception cref="T:System.ArgumentException">
            <paramref name="urlPath"/> is not a valid URL path.
            </exception>
            <remarks>
            <para>A normalized URL path is one where each run of two or more slash
            (<c>/</c>) characters has been replaced with a single slash character.</para>
            <para>This method does NOT try to decode URL-encoded characters.</para>
            <para>If you are sure that <paramref name="urlPath"/> is a valid URL path,
            for example because you have called <see cref="M:EmbedIO.Utilities.UrlPath.IsValid(System.String)"/> and it returned
            <see langword="true"/>, then you may call <see cref="M:EmbedIO.Utilities.UrlPath.UnsafeNormalize(System.String,System.Boolean)"/>
            instead of this method. <see cref="M:EmbedIO.Utilities.UrlPath.UnsafeNormalize(System.String,System.Boolean)"/> is slightly faster because
            it skips the initial validity check.</para>
            <para>There is no need to call this method for a method parameter
            for which you have already called <see cref="M:EmbedIO.Utilities.Validate.UrlPath(System.String,System.String,System.Boolean)"/>.</para>
            </remarks>
            <seealso cref="M:EmbedIO.Utilities.UrlPath.UnsafeNormalize(System.String,System.Boolean)"/>
            <seealso cref="M:EmbedIO.Utilities.UrlPath.IsValid(System.String)"/>
            <seealso cref="M:EmbedIO.Utilities.Validate.UrlPath(System.String,System.String,System.Boolean)"/>
        </member>
        <member name="M:EmbedIO.Utilities.UrlPath.UnsafeNormalize(System.String,System.Boolean)">
            <summary>
            Normalizes the specified URL path, assuming that it is valid.
            </summary>
            <param name="urlPath">The URL path.</param>
            <param name="isBasePath">if set to <see langword="true"/>, treat the URL path
            as a base path, i.e. ensure it ends with a slash (<c>/</c>) character;
            otherwise, ensure that it does NOT end with a slash character.</param>
            <returns>The normalized path.</returns>
            <remarks>
            <para>A normalized URL path is one where each run of two or more slash
            (<c>/</c>) characters has been replaced with a single slash character.</para>
            <para>This method does NOT try to decode URL-encoded characters.</para>
            <para>If <paramref name="urlPath"/> is not valid, the behavior of
            this method is unspecified. You should call this method only after
            <see cref="M:EmbedIO.Utilities.UrlPath.IsValid(System.String)"/> has returned <see langword="true"/>
            for the same <paramref name="urlPath"/>.</para>
            <para>You should call <see cref="M:EmbedIO.Utilities.UrlPath.Normalize(System.String,System.Boolean)"/> instead of this method
            if you are not sure that <paramref name="urlPath"/> is valid.</para>
            <para>There is no need to call this method for a method parameter
            for which you have already called <see cref="M:EmbedIO.Utilities.Validate.UrlPath(System.String,System.String,System.Boolean)"/>.</para>
            </remarks>
            <seealso cref="M:EmbedIO.Utilities.UrlPath.Normalize(System.String,System.Boolean)"/>
            <seealso cref="M:EmbedIO.Utilities.UrlPath.IsValid(System.String)"/>
            <seealso cref="M:EmbedIO.Utilities.Validate.UrlPath(System.String,System.String,System.Boolean)"/>