<?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>
            </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="F:EmbedIO.WebServer.DefaultEncoding"/> (UTF-8 without a byte order mark) 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="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)">Json</see>.</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="M:EmbedIO.ResponseSerializer.Json(Swan.Formatters.JsonSerializerCase)">
            <summary>
            Serializes data in JSON format with the specified <paramref name="jsonSerializerCase"/>
            to a HTTP response, using the <see cref="T:Swan.Formatters.Json"/> utility class.
            </summary>
            <param name="jsonSerializerCase">The JSON serializer case.</param>
            <returns>A <see cref="T:EmbedIO.ResponseSerializerCallback"/> that can be used to serialize
            data to a HTTP response.</returns>
        </member>
        <member name="M:EmbedIO.ResponseSerializer.Json(Swan.Formatters.SerializerOptions)">
            <summary>
            Serializes data in JSON format with the specified <paramref name="serializerOptions"/>
            to a HTTP response, using the <see cref="T:Swan.Formatters.Json"/> utility class.
            </summary>
            <param name="serializerOptions">The JSON serializer options.</param>
            <returns>A <see cref="T:EmbedIO.ResponseSerializerCallback"/> that can be used to serialize
            data to a HTTP response.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="serializerOptions"/> is <see langword="null"/>.
            </exception>
        </member>
        <member name="M:EmbedIO.ResponseSerializer.Json(System.Boolean)">
            <summary>
            Serializes data in JSON format to a HTTP response, using the <see cref="T:Swan.Formatters.Json"/> utility class.
            </summary>
            <param name="bufferResponse"><see langword="true"/> to write the response body to a memory buffer first,
            then send it all together with a <c>Content-Length</c> header; <see langword="false"/> to use chunked
            transfer encoding.</param>
            <returns>A <see cref="T:EmbedIO.ResponseSerializerCallback"/> that can be used to serialize
            data to a HTTP response.</returns>
        </member>
        <member name="M:EmbedIO.ResponseSerializer.Json(System.Boolean,Swan.Formatters.JsonSerializerCase)">
            <summary>
            Serializes data in JSON format with the specified <paramref name="jsonSerializerCase"/>
            to a HTTP response, using the <see cref="T:Swan.Formatters.Json"/> utility class.
            </summary>
            <param name="bufferResponse"><see langword="true"/> to write the response body to a memory buffer first,
            then send it all together with a <c>Content-Length</c> header; <see langword="false"/> to use chunked
            transfer encoding.</param>
            <param name="jsonSerializerCase">The JSON serializer case.</param>
            <returns>A <see cref="T:EmbedIO.ResponseSerializerCallback"/> that can be used to serialize
            data to a HTTP response.</returns>
        </member>
        <member name="M:EmbedIO.ResponseSerializer.Json(System.Boolean,Swan.Formatters.SerializerOptions)">
            <summary>
            Serializes data in JSON format with the specified <paramref name="serializerOptions"/>
            to a HTTP response, using the <see cref="T:Swan.Formatters.Json"/> utility class.
            </summary>
            <param name="bufferResponse"><see langword="true"/> to write the response body to a memory buffer first,
            then send it all together with a <c>Content-Length</c> header; <see langword="false"/> to use chunked
            transfer encoding.</param>
            <param name="serializerOptions">The JSON serializer options.</param>
            <returns>A <see cref="T:EmbedIO.ResponseSerializerCallback"/> that can be used to serialize
            data to a HTTP response.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="serializerOptions"/> is <see langword="null"/>.
            </exception>
        </member>
        <member name="M:EmbedIO.ResponseSerializer.None(System.Boolean)">
            <summary>
            Sends data in a HTTP response without serialization.
            </summary>
            <param name="bufferResponse"><see langword="true"/> to write the response body to a memory buffer first,
            then send it all together with a <c>Content-Length</c> header; <see langword="false"/> to use chunked
            transfer encoding.</param>
            <returns>A <see cref="T:EmbedIO.ResponseSerializerCallback"/> that can be used to serialize data to a HTTP response.</returns>
            <remarks>
            <para><see cref="T:System.String"/>s and one-dimensional arrays of <see cref="T:System.Byte"/>s
            are sent to the client unchanged; every other type is converted to a string.</para>
            <para>The <see cref="P:EmbedIO.IHttpResponse.ContentType">ContentType</see> set on the response is used to negotiate
            a compression method, according to request headers.</para>
            <para>Strings (and other types converted to strings) are sent with the encoding specified by <see cref="P:EmbedIO.IHttpResponse.ContentEncoding"/>.</para>
            </remarks>
        </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)"/>
        </member>
        <member name="M:EmbedIO.Utilities.UrlPath.HasPrefix(System.String,System.String)">
            <summary>
            Determines whether the specified URL path is prefixed by the specified base URL path.
            </summary>
            <param name="urlPath">The URL path.</param>
            <param name="baseUrlPath">The base URL path.</param>
            <returns>
            <see langword="true"/> if <paramref name="urlPath"/> is prefixed by <paramref name="baseUrlPath"/>;
            otherwise, <see langword="false"/>.
            </returns>
            <exception cref="T:System.ArgumentException">
            <para><paramref name="urlPath"/> is not a valid URL path.</para>
            <para>- or -</para>
            <para><paramref name="baseUrlPath"/> is not a valid base URL path.</para>
            </exception>
            <remarks>
            <para>This method returns <see langword="true"/> even if the two URL paths are equivalent,
            for example if both are <c>"/"</c>, or if <paramref name="urlPath"/> is <c>"/download"</c> and
            <paramref name="baseUrlPath"/> is <c>"/download/"</c>.</para>
            <para>If you are sure that both <paramref name="urlPath"/> and <paramref name="baseUrlPath"/>
            are valid and normalized, for example because you have called <see cref="M:EmbedIO.Utilities.Validate.UrlPath(System.String,System.String,System.Boolean)"/>,
            then you may call <see cref="M:EmbedIO.Utilities.UrlPath.UnsafeHasPrefix(System.String,System.String)"/> instead of this method. <see cref="M:EmbedIO.Utilities.UrlPath.UnsafeHasPrefix(System.String,System.String)"/>
            is slightly faster because it skips validity checks.</para>
            </remarks>
            <seealso cref="M:EmbedIO.Utilities.UrlPath.UnsafeHasPrefix(System.String,System.String)"/>
            <seealso cref="M:EmbedIO.Utilities.UrlPath.Normalize(System.String,System.Boolean)"/>
            <seealso cref="M:EmbedIO.Utilities.UrlPath.StripPrefix(System.String,System.String)"/>
            <seealso cref="M:EmbedIO.Utilities.Validate.UrlPath(System.String,System.String,System.Boolean)"/>
        </member>
        <member name="M:EmbedIO.Utilities.UrlPath.UnsafeHasPrefix(System.String,System.String)">
            <summary>
            Determines whether the specified URL path is prefixed by the specified base URL path,
            assuming both paths are valid and normalized.
            </summary>
            <param name="urlPath">The URL path.</param>
            <param name="baseUrlPath">The base URL path.</param>
            <returns>
            <see langword="true"/> if <paramref name="urlPath"/> is prefixed by <paramref name="baseUrlPath"/>;
            otherwise, <see langword="false"/>.
            </returns>
            <remarks>
            <para>Unless both <paramref name="urlPath"/> and <paramref name="baseUrlPath"/> are valid,
            normalized URL paths, the behavior of this method is unspecified. You should call this method
            only after calling either <see cref="M:EmbedIO.Utilities.UrlPath.Normalize(System.String,System.Boolean)"/> or <see cref="M:EmbedIO.Utilities.Validate.UrlPath(System.String,System.String,System.Boolean)"/>
            to check and normalize both parameters.</para>
            <para>If you are not sure about the validity and/or normalization of parameters,
            call <see cref="M:EmbedIO.Utilities.UrlPath.HasPrefix(System.String,System.String)"/> instead of this method.</para>
            <para>This method returns <see langword="true"/> even if the two URL paths are equivalent,
            for example if both are <c>"/"</c>, or if <paramref name="urlPath"/> is <c>"/download"</c> and
            <paramref name="baseUrlPath"/> is <c>"/download/"</c>.</para>
            </remarks>
            <seealso cref="M:EmbedIO.Utilities.UrlPath.HasPrefix(System.String,System.String)"/>
            <seealso cref="M:EmbedIO.Utilities.UrlPath.Normalize(System.String,System.Boolean)"/>
            <seealso cref="M:EmbedIO.Utilities.UrlPath.StripPrefix(System.String,System.String)"/>
            <seealso cref="M:EmbedIO.Utilities.Validate.UrlPath(System.String,System.String,System.Boolean)"/>
        </member>
        <member name="M:EmbedIO.Utilities.UrlPath.StripPrefix(System.String,System.String)">
            <summary>
            Strips a base URL path fom a URL path, obtaining a relative path.
            </summary>
            <param name="urlPath">The URL path.</param>
            <param name="baseUrlPath">The base URL path.</param>
            <returns>The relative path, or <see langword="null"/> if <paramref name="urlPath"/>
            is not prefixed by <paramref name="baseUrlPath"/>.</returns>
            <exception cref="T:System.ArgumentException">
            <para><paramref name="urlPath"/> is not a valid URL path.</para>
            <para>- or -</para>
            <para><paramref name="baseUrlPath"/> is not a valid base URL path.</para>
            </exception>
            <remarks>
            <para>The returned relative path is NOT prefixed by a slash (<c>/</c>) character.</para>
            <para>If <paramref name="urlPath"/> and <paramref name="baseUrlPath"/> are equivalent,
            for example if both are <c>"/"</c>, or if <paramref name="urlPath"/> is <c>"/download"</c>
            and <paramref name="baseUrlPath"/> is <c>"/download/"</c>, this method returns an empty string.</para>
            <para>If you are sure that both <paramref name="urlPath"/> and <paramref name="baseUrlPath"/>
            are valid and normalized, for example because you have called <see cref="M:EmbedIO.Utilities.Validate.UrlPath(System.String,System.String,System.Boolean)"/>,
            then you may call <see cref="M:EmbedIO.Utilities.UrlPath.UnsafeStripPrefix(System.String,System.String)"/> instead of this method. <see cref="M:EmbedIO.Utilities.UrlPath.UnsafeStripPrefix(System.String,System.String)"/>
            is slightly faster because it skips validity checks.</para>
            </remarks>
            <seealso cref="M:EmbedIO.Utilities.UrlPath.UnsafeStripPrefix(System.String,System.String)"/>
            <seealso cref="M:EmbedIO.Utilities.UrlPath.Normalize(System.String,System.Boolean)"/>
            <seealso cref="M:EmbedIO.Utilities.UrlPath.HasPrefix(System.String,System.String)"/>
            <seealso cref="M:EmbedIO.Utilities.Validate.UrlPath(System.String,System.String,System.Boolean)"/>
        </member>
        <member name="M:EmbedIO.Utilities.UrlPath.UnsafeStripPrefix(System.String,System.String)">
            <summary>
            Strips a base URL path fom a URL path, obtaining a relative path,
            assuming both paths are valid and normalized.
            </summary>
            <param name="urlPath">The URL path.</param>
            <param name="baseUrlPath">The base URL path.</param>
            <returns>The relative path, or <see langword="null"/> if <paramref name="urlPath"/>
            is not prefixed by <paramref name="baseUrlPath"/>.</returns>
            <remarks>
            <para>Unless both <paramref name="urlPath"/> and <paramref name="baseUrlPath"/> are valid,
            normalized URL paths, the behavior of this method is unspecified. You should call this method
            only after calling either <see cref="M:EmbedIO.Utilities.UrlPath.Normalize(System.String,System.Boolean)"/> or <see cref="M:EmbedIO.Utilities.Validate.UrlPath(System.String,System.String,System.Boolean)"/>
            to check and normalize both parameters.</para>
            <para>If you are not sure about the validity and/or normalization of parameters,
            call <see cref="M:EmbedIO.Utilities.UrlPath.StripPrefix(System.String,System.String)"/> instead of this method.</para>
            <para>The returned relative path is NOT prefixed by a slash (<c>/</c>) character.</para>
            <para>If <paramref name="urlPath"/> and <paramref name="baseUrlPath"/> are equivalent,
            for example if both are <c>"/"</c>, or if <paramref name="urlPath"/> is <c>"/download"</c>
            and <paramref name="baseUrlPath"/> is <c>"/download/"</c>, this method returns an empty string.</para>
            </remarks>
            <seealso cref="M:EmbedIO.Utilities.UrlPath.StripPrefix(System.String,System.String)"/>
            <seealso cref="M:EmbedIO.Utilities.UrlPath.Normalize(System.String,System.Boolean)"/>
            <seealso cref="M:EmbedIO.Utilities.UrlPath.HasPrefix(System.String,System.String)"/>
            <seealso cref="M:EmbedIO.Utilities.Validate.UrlPath(System.String,System.String,System.Boolean)"/>
        </member>
        <member name="M:EmbedIO.Utilities.UrlPath.Split(System.String)">
            <summary>
            Splits the specified URL path into segments.
            </summary>
            <param name="urlPath">The URL path.</param>
            <returns>An enumeration of path segments.</returns>
            <exception cref="T:System.ArgumentException"><paramref name="urlPath"/> is not a valid URL path.</exception>
            <remarks>
            <para>A root URL path (<c>/</c>) will result in an empty enumeration.</para>
            <para>The returned enumeration will be the same whether <paramref name="urlPath"/> is a base URL path or not.</para>
            <para>If you are sure that <paramref name="urlPath"/> is valid and normalized,
            for example because you have called <see cref="M:EmbedIO.Utilities.Validate.UrlPath(System.String,System.String,System.Boolean)"/>,
            then you may call <see cref="M:EmbedIO.Utilities.UrlPath.UnsafeSplit(System.String)"/> instead of this method. <see cref="M:EmbedIO.Utilities.UrlPath.UnsafeSplit(System.String)"/>
            is slightly faster because it skips validity checks.</para>
            </remarks>
            <seealso cref="M:EmbedIO.Utilities.UrlPath.UnsafeSplit(System.String)"/>
            <seealso cref="M:EmbedIO.Utilities.UrlPath.Normalize(System.String,System.Boolean)"/>
            <seealso cref="M:EmbedIO.Utilities.Validate.UrlPath(System.String,System.String,System.Boolean)"/>
        </member>
        <member name="M:EmbedIO.Utilities.UrlPath.UnsafeSplit(System.String)">
            <summary>
            Splits the specified URL path into segments, assuming it is valid and normalized.
            </summary>
            <param name="urlPath">The URL path.</param>
            <returns>An enumeration of path segments.</returns>
            <remarks>
            <para>Unless <paramref name="urlPath"/> is a valid, normalized URL path,
            the behavior of this method is unspecified. You should call this method
            only after calling either <see cref="M:EmbedIO.Utilities.UrlPath.Normalize(System.String,System.Boolean)"/> or <see cref="M:EmbedIO.Utilities.Validate.UrlPath(System.String,System.String,System.Boolean)"/>
            to check and normalize both parameters.</para>
            <para>If you are not sure about the validity and/or normalization of <paramref name="urlPath"/>,
            call <see cref="M:EmbedIO.Utilities.UrlPath.StripPrefix(System.String,System.String)"/> instead of this method.</para>
            <para>A root URL path (<c>/</c>) will result in an empty enumeration.</para>
            <para>The returned enumeration will be the same whether <paramref name="urlPath"/> is a base URL path or not.</para>
            </remarks>
            <seealso cref="M:EmbedIO.Utilities.UrlPath.Split(System.String)"/>
            <seealso cref="M:EmbedIO.Utilities.UrlPath.Normalize(System.String,System.Boolean)"/>
            <seealso cref="M:EmbedIO.Utilities.Validate.UrlPath(System.String,System.String,System.Boolean)"/>
        </member>
        <member name="T:EmbedIO.Utilities.Validate">
            <summary>
            Provides validation methods for method arguments.
            </summary>
        </member>
        <member name="M:EmbedIO.Utilities.Validate.MimeType(System.String,System.String,System.Boolean)">
            <summary>
            <para>Ensures that a <see langword="string"/> argument is valid as MIME type or media range as defined by
            <see href="https://tools.ietf.org/html/rfc7231#section-5.3.2">RFC7231, Section 5,3.2</see>.</para>
            </summary>
            <param name="argumentName">The name of the argument to validate.</param>
            <param name="value">The value to validate.</param>
            <param name="acceptMediaRange">If <see langword="true"/>, media ranges (i.e. strings of the form <c>*/*</c>
            and <c>type/*</c>) are considered valid; otherwise, they are rejected as invalid.</param>
            <returns><paramref name="value"/>, if it is a valid MIME type or media range.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="value"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentException">
            <para><paramref name="value"/> is the empty string.</para>
            <para>- or -</para>
            <para><paramref name="value"/> is not a valid MIME type or media range.</para>
            </exception>
        </member>
        <member name="M:EmbedIO.Utilities.Validate.UrlPath(System.String,System.String,System.Boolean)">
            <summary>
            Ensures that the value of an argument is a valid URL path
            and normalizes it.
            </summary>
            <param name="argumentName">The name of the argument to validate.</param>
            <param name="value">The value to validate.</param>
            <param name="isBasePath">If set to <see langword="true"/><c>true</c>, the returned path
            is ensured to end in a slash (<c>/</c>) character; otherwise, the returned path is
            ensured to not end in a slash character unless it is <c>"/"</c>.</param>
            <returns>The normalized URL path.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="value"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentException">
            <para><paramref name="value"/> is empty.</para>
            <para>- or -</para>
            <para><paramref name="value"/> does not start with a slash (<c>/</c>) character.</para>
            </exception>
            <seealso cref="M:EmbedIO.Utilities.UrlPath.Normalize(System.String,System.Boolean)"/>
        </member>
        <member name="M:EmbedIO.Utilities.Validate.LocalPath(System.String,System.String,System.Boolean)">
            <summary>
            Ensures that the value of an argument is a valid local path
            and, optionally, gets the corresponding full path.
            </summary>
            <param name="argumentName">The name of the argument to validate.</param>
            <param name="value">The value to validate.</param>
            <param name="getFullPath"><see langword="true"/> to get the full path, <see langword="false"/> to leave the path as is..</param>
            <returns>The local path, or the full path if <paramref name="getFullPath"/> is <see langword="true"/>.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="value"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentException">
            <para><paramref name="value"/> is empty.</para>
            <para>- or -</para>
            <para><paramref name="value"/> contains only white space.</para>
            <para>- or -</para>
            <para><paramref name="value"/> contains one or more invalid characters.</para>
            <para>- or -</para>
            <para><paramref name="getFullPath"/> is <see langword="true"/> and the full path could not be obtained.</para>
            </exception>
        </member>
        <member name="M:EmbedIO.Utilities.Validate.Rfc2616Token(System.String,System.String)">
            <summary>
            <para>Ensures that a <see langword="string"/> argument is valid as a token as defined by
            <see href="https://tools.ietf.org/html/rfc2616#section-2.2">RFC2616, Section 2.2</see>.</para>
            <para>RFC2616 tokens are used, for example, as:</para>
            <list type="bullet">
            <item><description>cookie names, as stated in <see href="https://tools.ietf.org/html/rfc6265#section-4.1.1">RFC6265, Section 4.1.1</see>;</description></item>
            <item><description>WebSocket protocol names, as stated in <see href="https://tools.ietf.org/html/rfc6455#section-4.3">RFC6455, Section 4.3</see>.</description></item>
            </list>
            <para>Only a restricted set of characters are allowed in tokens, including:</para>
            <list type="bullet">
            <item><description>upper- and lower-case letters of the English alphabet;</description></item>
            <item><description>decimal digits;</description></item>
            <item><description>the following non-alphanumeric characters:
            <c>!</c>, <c>#</c>, <c>$</c>, <c>%</c>, <c>&amp;</c>, <c>'</c>, <c>*</c>, <c>+</c>,
            <c>-</c>, <c>.</c>, <c>^</c>, <c>_</c>, <c>`</c>, <c>|</c>, <c>~</c>.</description></item>
            </list>
            </summary>
            <param name="argumentName">The name of the argument to validate.</param>
            <param name="value">The value to validate.</param>
            <returns><paramref name="value"/>, if it is a valid token.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="value"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentException">
            <para><paramref name="value"/> is the empty string.</para>
            <para>- or -</para>
            <para><paramref name="value"/> contains one or more characters that are not allowed in a token.</para>
            </exception>
        </member>
        <member name="M:EmbedIO.Utilities.Validate.Route(System.String,System.String,System.Boolean)">
            <summary>
            Ensures that the value of an argument is a valid route.
            </summary>
            <param name="argumentName">The name of the argument to validate.</param>
            <param name="value">The value to validate.</param>
            <param name="isBaseRoute"><see langword="true"/> if the argument must be a base route;
            <see langword="false"/> if the argument must be a non-base route.</param>
            <returns><paramref name="value"/>, if it is a valid route.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="value"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentException">
            <para><paramref name="value"/> is empty.</para>
            <para>- or -</para>
            <para><paramref name="value"/> does not start with a slash (<c>/</c>) character.</para>
            <para>- or -</para>
            <para><paramref name="value"/> does not comply with route syntax.</para>
            </exception>
            <seealso cref="M:EmbedIO.Routing.Route.IsValid(System.String,System.Boolean)"/>
        </member>
        <member name="M:EmbedIO.Utilities.Validate.NotNull``1(System.String,``0)">
            <summary>
            Ensures that an argument is not <see langword="null"/>.
            </summary>
            <typeparam name="T">The type of the argument to validate.</typeparam>
            <param name="argumentName">The name of the argument to validate.</param>
            <param name="value">The value to validate.</param>
            <returns><paramref name="value"/> if not <see langword="null"/>.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="value"/> is <see langword="null"/>.</exception>
        </member>
        <member name="M:EmbedIO.Utilities.Validate.NotNullOrEmpty(System.String,System.String)">
            <summary>
            Ensures that a <see langword="string"/> argument is neither <see langword="null"/> nor the empty string.
            </summary>
            <param name="argumentName">The name of the argument to validate.</param>
            <param name="value">The value to validate.</param>
            <returns><paramref name="value"/> if neither <see langword="null"/> nor the empty string.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="value"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentException"><paramref name="value"/> is the empty string.</exception>
        </member>
        <member name="M:EmbedIO.Utilities.Validate.Url(System.String,System.String,System.UriKind,System.Boolean)">
            <summary>
            Ensures that a valid URL can be constructed from a <see langword="string"/> argument.
            </summary>
            <param name="argumentName">Name of the argument.</param>
            <param name="value">The value.</param>
            <param name="uriKind">Specifies whether <paramref name="value"/> is a relative URL, absolute URL, or is indeterminate.</param>
            <param name="enforceHttp">Ensure that, if <paramref name="value"/> is an absolute URL, its scheme is either <c>http</c> or <c>https</c>.</param>
            <returns>The string representation of the constructed URL.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="value"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentException">
            <para><paramref name="value"/> is not a valid URL.</para>
            <para>- or -</para>
            <para><paramref name="enforceHttp"/> is <see langword="true"/>, <paramref name="value"/> is an absolute URL,
            and <paramref name="value"/>'s scheme is neither <c>http</c> nor <c>https</c>.</para>
            </exception>
            <seealso cref="M:EmbedIO.Utilities.Validate.Url(System.String,System.String,System.Uri,System.Boolean)"/>
        </member>
        <member name="M:EmbedIO.Utilities.Validate.Url(System.String,System.String,System.Uri,System.Boolean)">
            <summary>
            Ensures that a valid URL, either absolute or relative to the given <paramref name="baseUri"/>,
            can be constructed from a <see langword="string"/> argument and returns the absolute URL
            obtained by combining <paramref name="baseUri"/> and <paramref name="value"/>.
            </summary>
            <param name="argumentName">Name of the argument.</param>
            <param name="value">The value.</param>
            <param name="baseUri">The base URI for relative URLs.</param>
            <param name="enforceHttp">Ensure that the resulting URL's scheme is either <c>http</c> or <c>https</c>.</param>
            <returns>The string representation of the constructed URL.</returns>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="baseUri"/> is <see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="value"/> is <see langword="null"/>.</para>
            </exception>
            <exception cref="T:System.ArgumentException">
            <para><paramref name="baseUri"/> is not an absolute URI.</para>
            <para>- or -</para>
            <para><paramref name="value"/> is not a valid URL.</para>
            <para>- or -</para>
            <para><paramref name="enforceHttp"/> is <see langword="true"/>, 
            and the combination of <paramref name="baseUri"/> and <paramref name="value"/> has a scheme
            that is neither <c>http</c> nor <c>https</c>.</para>
            </exception>
            <seealso cref="M:EmbedIO.Utilities.Validate.Url(System.String,System.String,System.UriKind,System.Boolean)"/>
        </member>
        <member name="T:EmbedIO.WebApi.FormDataAttribute">
            <summary>
            <para>Specifies that a parameter of a controller method will receive a <see cref="T:System.Collections.Specialized.NameValueCollection"/>
            of HTML form data, obtained by deserializing a request body with a content type
            of <c>application/x-www-form-urlencoded</c>.</para>
            <para>The received collection will be read-only.</para>
            <para>This class cannot be inherited.</para>
            </summary>
            <seealso cref="T:System.Attribute" />
            <seealso cref="T:EmbedIO.WebApi.IRequestDataAttribute`2" />
        </member>
        <member name="M:EmbedIO.WebApi.FormDataAttribute.GetRequestDataAsync(EmbedIO.WebApi.WebApiController,System.String)">
            <inheritdoc />
        </member>
        <member name="T:EmbedIO.WebApi.FormFieldAttribute">
            <summary>
            <para>Specifies that a parameter of a controller method will receive the value(s) of a field in a HTML form,
            obtained by deserializing a request body with a content type of <c>application/x-www-form-urlencoded</c>.</para>
            <para>The parameter carrying this attribute can be either a simple type or a one-dimension array.</para>
            <para>If multiple values are present for the field, a non-array parameter will receive the last specified value,
            while an array parameter will receive an array of field values converted to the element type of the
            parameter.</para>
            <para>If a single value is present for the field, a non-array parameter will receive the value converted
            to the type of the parameter, while an array parameter will receive an array of length 1, containing
            the value converted to the element type of the parameter</para>
            <para>If no values are present for the field and the <see cref="P:EmbedIO.WebApi.FormFieldAttribute.BadRequestIfMissing"/> property is
            <see langword="true" />, a <c>400 Bad Request</c> response will be sent to the client, with a message
            specifying the name of the missing field.</para>
            <para>If no values are present for the field and the <see cref="P:EmbedIO.WebApi.FormFieldAttribute.BadRequestIfMissing"/> property is
            <see langword="false" />, a non-array parameter will receive the default value for its type, while
            an array parameter will receive an array of length 0.</para>
            <para>This class cannot be inherited.</para>
            </summary>
            <seealso cref="T:System.Attribute" />
            <seealso cref="T:EmbedIO.WebApi.IRequestDataAttribute`2" />
            <seealso cref="T:EmbedIO.WebApi.IRequestDataAttribute`1" />
        </member>
        <member name="M:EmbedIO.WebApi.FormFieldAttribute.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:EmbedIO.WebApi.FormFieldAttribute"/> class.
            The name of the form field to extract will be equal to the name of the parameter
            carrying this attribute.
            </summary>
        </member>
        <member name="M:EmbedIO.WebApi.FormFieldAttribute.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:EmbedIO.WebApi.FormFieldAttribute"/> class.
            </summary>
            <param name="fieldName">The name of the form field to extract.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="fieldName"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentException"><paramref name="fieldName"/> is the empty string (<c>""</c>).</exception>
        </member>
        <member name="M:EmbedIO.WebApi.FormFieldAttribute.#ctor(System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:EmbedIO.WebApi.FormFieldAttribute" /> class.
            The name of the form field to extract will be equal to the name of the parameter
            carrying this attribute.
            </summary>
            <param name="badRequestIfMissing">If set to <see langword="true" />, a <c>400 Bad Request</c>
            response will be sent to the client if no values are found for the field; if set to
            <see langword="false" />, a default value will be assumed.</param>
        </member>
        <member name="M:EmbedIO.WebApi.FormFieldAttribute.#ctor(System.String,System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:EmbedIO.WebApi.FormFieldAttribute"/> class.
            </summary>
            <param name="fieldName">The name of the form field to extract.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="fieldName"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentException"><paramref name="fieldName"/> is the empty string (<c>""</c>).</exception>
            <param name="badRequestIfMissing">If set to <see langword="true" />, a <c>400 Bad Request</c>
            response will be sent to the client if no values are found for the field; if set to
            <see langword="false" />, a default value will be assumed.</param>
        </member>
        <member name="P:EmbedIO.WebApi.FormFieldAttribute.FieldName">
            <summary>
            Gets the name of the form field that this attribute will extract,
            or <see langword="null" /> if the name of the parameter carrying this
            attribute is to be used as field name.
            </summary>
        </member>
        <member name="P:EmbedIO.WebApi.FormFieldAttribute.BadRequestIfMissing">
            <summary>
            <para>Gets or sets a value indicating whether to send a <c>400 Bad Request</c> response
            to the client if the submitted form contains no values for the field.</para>
            <para>If this property is <see langword="true"/> and the submitted form
            contains no values for the field, the <c>400 Bad Request</c> response sent
            to the client will contain a reference to the missing field.</para>
            <para>If this property is <see langword="false"/> and the submitted form
            contains no values for the field, the default value for the parameter
            (or a zero-length array if the parameter is of an array type)
            will be passed to the controller method.</para>
            </summary>
        </member>
        <member name="T:EmbedIO.WebApi.IRequestDataAttribute`1">
            <summary>
            Represents an attribute, applied to a parameter of a web API controller method,
            that causes the parameter to be passed deserialized data from a request.
            </summary>
            <typeparam name="TController">The type of the controller.</typeparam>
            <seealso cref="T:EmbedIO.WebApi.IRequestDataAttribute`2"/>
        </member>
        <member name="M:EmbedIO.WebApi.IRequestDataAttribute`1.GetRequestDataAsync(`0,System.Type,System.String)">
            <summary>
            Asynchronously obtains data from a controller's context.
            </summary>
            <param name="controller">The controller.</param>
            <param name="type">The type of the parameter that has to receive the data.</param>
            <param name="parameterName">The name of the parameter that has to receive the data.</param>
            <returns>a <see cref="T:System.Threading.Tasks.Task"/> whose result will be the data
            to pass as a parameter to a controller method.</returns>
        </member>
        <member name="T:EmbedIO.WebApi.IRequestDataAttribute`2">
            <summary>
            Represents an attribute, applied to a parameter of a web API controller method,
            that causes the parameter to be passed deserialized data from a request.
            </summary>
            <typeparam name="TController">The type of the controller.</typeparam>
            <typeparam name="TData">The type of the data.</typeparam>
            <seealso cref="T:EmbedIO.WebApi.IRequestDataAttribute`1"/>
        </member>
        <member name="M:EmbedIO.WebApi.IRequestDataAttribute`2.GetRequestDataAsync(`0,System.String)">
            <summary>
            Asynchronously obtains data from a controller's context.
            </summary>
            <param name="controller">The controller.</param>
            <param name="parameterName">The name of the parameter that has to receive the data.</param>
            <returns>a <see cref="T:System.Threading.Tasks.Task"/> whose result will be the data
            to pass as a parameter to a controller method.</returns>
        </member>
        <member name="T:EmbedIO.WebApi.JsonDataAttribute">
            <summary>
            <para>Specifies that a parameter of a controller method will receive
            an object obtained by deserializing the request body as JSON.</para>
            <para>The received object will be <see langword="null"/>
            only if the deserialized object is <c>null</c>.</para>
            <para>If the request body is not valid JSON,
            or if it cannot be deserialized to the type of the parameter,
            a <c>400 Bad Request</c> response will be sent to the client.</para>
            <para>This class cannot be inherited.</para>
            </summary>
            <seealso cref="T:System.Attribute" />
            <seealso cref="T:EmbedIO.WebApi.IRequestDataAttribute`1" />
        </member>
        <member name="M:EmbedIO.WebApi.JsonDataAttribute.GetRequestDataAsync(EmbedIO.WebApi.WebApiController,System.Type,System.String)">
            <inheritdoc />
        </member>
        <member name="T:EmbedIO.WebApi.QueryDataAttribute">
            <summary>
            <para>Specifies that a parameter of a controller method will receive a <see cref="T:System.Collections.Specialized.NameValueCollection"/>
            of HTML form data, obtained by deserializing a request URL query.</para>
            <para>The received collection will be read-only.</para>
            <para>This class cannot be inherited.</para>
            </summary>
            <seealso cref="T:System.Attribute" />
            <seealso cref="T:EmbedIO.WebApi.IRequestDataAttribute`2" />
        </member>
        <member name="M:EmbedIO.WebApi.QueryDataAttribute.GetRequestDataAsync(EmbedIO.WebApi.WebApiController,System.String)">
            <inheritdoc />
        </member>
        <member name="T:EmbedIO.WebApi.QueryFieldAttribute">
            <summary>
            <para>Specifies that a parameter of a controller method will receive the value of a field,
            obtained by deserializing a request URL query.</para>
            <para>The parameter carrying this attribute can be either a simple type or a one-dimension array.</para>
            <para>If multiple values are present for the field, a non-array parameter will receive the last specified value,
            while an array parameter will receive an array of field values converted to the element type of the
            parameter.</para>
            <para>If a single value is present for the field, a non-array parameter will receive the value converted
            to the type of the parameter, while an array parameter will receive an array of length 1, containing
            the value converted to the element type of the parameter</para>
            <para>If no values are present for the field and the <see cref="P:EmbedIO.WebApi.QueryFieldAttribute.BadRequestIfMissing"/> property is
            <see langword="true" />, a <c>400 Bad Request</c> response will be sent to the client, with a message
            specifying the name of the missing field.</para>
            <para>If no values are present for the field and the <see cref="P:EmbedIO.WebApi.QueryFieldAttribute.BadRequestIfMissing"/> property is
            <see langword="false" />, a non-array parameter will receive the default value for its type, while
            an array parameter will receive an array of length 0.</para>
            <para>This class cannot be inherited.</para>
            </summary>
            <seealso cref="T:System.Attribute" />
            <seealso cref="T:EmbedIO.WebApi.IRequestDataAttribute`2" />
            <seealso cref="T:EmbedIO.WebApi.IRequestDataAttribute`1" />
        </member>
        <member name="M:EmbedIO.WebApi.QueryFieldAttribute.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:EmbedIO.WebApi.QueryFieldAttribute"/> class.
            The name of the query field to extract will be equal to the name of the parameter
            carrying this attribute.
            </summary>
        </member>
        <member name="M:EmbedIO.WebApi.QueryFieldAttribute.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:EmbedIO.WebApi.QueryFieldAttribute"/> class.
            </summary>
            <param name="fieldName">The name of the query field to extract.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="fieldName"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentException"><paramref name="fieldName"/> is the empty string (<c>""</c>).</exception>
        </member>
        <member name="M:EmbedIO.WebApi.QueryFieldAttribute.#ctor(System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:EmbedIO.WebApi.QueryFieldAttribute" /> class.
            The name of the query field to extract will be equal to the name of the parameter
            carrying this attribute.
            </summary>
            <param name="badRequestIfMissing">If set to <see langword="true" />, a <c>400 Bad Request</c>
            response will be sent to the client if no values are found for the field; if set to
            <see langword="false" />, a default value will be assumed.</param>
        </member>
        <member name="M:EmbedIO.WebApi.QueryFieldAttribute.#ctor(System.String,System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:EmbedIO.WebApi.QueryFieldAttribute"/> class.
            </summary>
            <param name="fieldName">The name of the query field to extract.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="fieldName"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentException"><paramref name="fieldName"/> is the empty string (<c>""</c>).</exception>
            <param name="badRequestIfMissing">If set to <see langword="true" />, a <c>400 Bad Request</c>
            response will be sent to the client if no values are found for the field; if set to
            <see langword="false" />, a default value will be assumed.</param>
        </member>
        <member name="P:EmbedIO.WebApi.QueryFieldAttribute.FieldName">
            <summary>
            Gets the name of the query field that this attribute will extract,
            or <see langword="null" /> if the name of the parameter carrying this
            attribute is to be used as field name.
            </summary>
        </member>
        <member name="P:EmbedIO.WebApi.QueryFieldAttribute.BadRequestIfMissing">
            <summary>
            <para>Gets or sets a value indicating whether to send a <c>400 Bad Request</c> response
            to the client if the URL query contains no values for the field.</para>
            <para>If this property is <see langword="true"/> and the URL query
            contains no values for the field, the <c>400 Bad Request</c> response sent
            to the client will contain a reference to the missing field.</para>
            <para>If this property is <see langword="false"/> and the URL query
            contains no values for the field, the default value for the parameter
            (or a zero-length array if the parameter is of an array type)
            will be passed to the controller method.</para>
            </summary>
        </member>
        <member name="T:EmbedIO.WebApi.WebApiController">
            <summary>
            Inherit from this class and define your own Web API methods
            You must RegisterController in the Web API Module to make it active.
            </summary>
        </member>
        <member name="P:EmbedIO.WebApi.WebApiController.HttpContext">
            <summary>
            <para>Gets the HTTP context.</para>
            <para>This property is automatically initialized upon controller creation.</para>
            </summary>
        </member>
        <member name="P:EmbedIO.WebApi.WebApiController.Route">
            <summary>
            <para>Gets the resolved route.</para>
            <para>This property is automatically initialized upon controller creation.</para>
            </summary>
        </member>
        <member name="P:EmbedIO.WebApi.WebApiController.CancellationToken">
            <summary>
            Gets the <see cref="P:EmbedIO.WebApi.WebApiController.CancellationToken" /> used to cancel processing of the request.
            </summary>
        </member>
        <member name="P:EmbedIO.WebApi.WebApiController.Request">
            <summary>
            Gets the HTTP request.
            </summary>
        </member>
        <member name="P:EmbedIO.WebApi.WebApiController.Response">
            <summary>
            Gets the HTTP response object.
            </summary>
        </member>
        <member name="P:EmbedIO.WebApi.WebApiController.User">
            <summary>
            Gets the user.
            </summary>
        </member>
        <member name="P:EmbedIO.WebApi.WebApiController.Session">
            <summary>
            Gets the session proxy associated with the HTTP context.
            </summary>
        </member>
        <member name="M:EmbedIO.WebApi.WebApiController.PreProcessRequest">
            <summary>
            <para>This method is meant to be called internally by EmbedIO.</para>
            <para>Derived classes can override the <see cref="M:EmbedIO.WebApi.WebApiController.OnBeforeHandler"/> method
            to perform common operations before any handler gets called.</para>
            </summary>
            <seealso cref="M:EmbedIO.WebApi.WebApiController.OnBeforeHandler"/>
        </member>
        <member name="M:EmbedIO.WebApi.WebApiController.OnBeforeHandler">
            <summary>
            <para>Called before a handler to perform common operations.</para>
            <para>The default behavior is to set response headers
            in order to prevent caching of the response.</para>
            </summary>
        </member>
        <member name="T:EmbedIO.WebApi.WebApiModule">
            <summary>
            <para>A module using class methods as handlers.</para>
            <para>Public instance methods that match the WebServerModule.ResponseHandler signature, and have the WebApi handler attribute
            will be used to respond to web server requests.</para>
            </summary>
        </member>
        <member name="M:EmbedIO.WebApi.WebApiModule.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:EmbedIO.WebApi.WebApiModule" /> class,
            using the default response serializer.
            </summary>
            <param name="baseRoute">The base URL path served by this module.</param>
            <seealso cref="P:EmbedIO.IWebModule.BaseRoute" />
            <seealso cref="M:EmbedIO.Utilities.Validate.UrlPath(System.String,System.String,System.Boolean)" />
        </member>
        <member name="M:EmbedIO.WebApi.WebApiModule.#ctor(System.String,EmbedIO.ResponseSerializerCallback)">
            <summary>
            Initializes a new instance of the <see cref="T:EmbedIO.WebApi.WebApiModule" /> class,
            using the specified response serializer.
            </summary>
            <param name="baseRoute">The base URL path served by this module.</param>
            <param name="serializer">A <see cref="T:EmbedIO.ResponseSerializerCallback"/> used to serialize
            the result of controller methods returning <see langword="object"/>
            or <see cref="T:System.Threading.Tasks.Task`1">Task&lt;object&gt;</see>.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="serializer"/> is <see langword="null"/>.</exception>
            <seealso cref="P:EmbedIO.IWebModule.BaseRoute" />
            <seealso cref="M:EmbedIO.Utilities.Validate.UrlPath(System.String,System.String,System.Boolean)" />
        </member>
        <member name="M:EmbedIO.WebApi.WebApiModule.RegisterController``1">
            <summary>
            <para>Registers a controller type using a constructor.</para>
            <para>See <see cref="M:EmbedIO.WebApi.WebApiModuleBase.RegisterControllerType``1"/>
            for further information.</para>
            </summary>
            <typeparam name="TController">The type of the controller.</typeparam>
            <seealso cref="M:EmbedIO.WebApi.WebApiModule.RegisterController``1(System.Func{``0})"/>
            <seealso cref="M:EmbedIO.WebApi.WebApiModule.RegisterController(System.Type)"/>
            <seealso cref="M:EmbedIO.WebApi.WebApiModuleBase.RegisterControllerType``1"/>
        </member>
        <member name="M:EmbedIO.WebApi.WebApiModule.RegisterController``1(System.Func{``0})">
            <summary>
            <para>Registers a controller type using a factory method.</para>
            <para>See <see cref="M:EmbedIO.WebApi.WebApiModuleBase.RegisterControllerType``1(System.Func{``0})"/>
            for further information.</para>
            </summary>
            <typeparam name="TController">The type of the controller.</typeparam>
            <param name="factory">The factory method used to construct instances of <typeparamref name="TController"/>.</param>
            <seealso cref="M:EmbedIO.WebApi.WebApiModule.RegisterController``1"/>
            <seealso cref="M:EmbedIO.WebApi.WebApiModule.RegisterController(System.Type,System.Func{EmbedIO.WebApi.WebApiController})"/>
            <seealso cref="M:EmbedIO.WebApi.WebApiModuleBase.RegisterControllerType``1(System.Func{``0})"/>
        </member>
        <member name="M:EmbedIO.WebApi.WebApiModule.RegisterController(System.Type)">
            <summary>
            <para>Registers a controller type using a constructor.</para>
            <para>See <see cref="M:EmbedIO.WebApi.WebApiModuleBase.RegisterControllerType(System.Type)"/>
            for further information.</para>
            </summary>
            <param name="controllerType">The type of the controller.</param>
            <seealso cref="M:EmbedIO.WebApi.WebApiModule.RegisterController(System.Type,System.Func{EmbedIO.WebApi.WebApiController})"/>
            <seealso cref="M:EmbedIO.WebApi.WebApiModule.RegisterController``1"/>
            <seealso cref="M:EmbedIO.WebApi.WebApiModuleBase.RegisterControllerType(System.Type)"/>
        </member>
        <member name="M:EmbedIO.WebApi.WebApiModule.RegisterController(System.Type,System.Func{EmbedIO.WebApi.WebApiController})">
            <summary>
            <para>Registers a controller type using a factory method.</para>
            <para>See <see cref="M:EmbedIO.WebApi.WebApiModuleBase.RegisterControllerType(System.Type,System.Func{EmbedIO.WebApi.WebApiController})"/>
            for further information.</para>
            </summary>
            <param name="controllerType">The type of the controller.</param>
            <param name="factory">The factory method used to construct instances of <paramref name="controllerType"/>.</param>
            <seealso cref="M:EmbedIO.WebApi.WebApiModule.RegisterController(System.Type)"/>
            <seealso cref="M:EmbedIO.WebApi.WebApiModule.RegisterController``1(System.Func{``0})"/>
            <seealso cref="M:EmbedIO.WebApi.WebApiModuleBase.RegisterControllerType(System.Type,System.Func{EmbedIO.WebApi.WebApiController})"/>
        </member>
        <member name="T:EmbedIO.WebApi.WebApiModuleBase">
            <summary>
            <para>A module using objects derived from <see cref="T:EmbedIO.WebApi.WebApiController"/>
            as collections of handler methods.</para>
            </summary>
        </member>
        <member name="M:EmbedIO.WebApi.WebApiModuleBase.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:EmbedIO.WebApi.WebApiModuleBase" /> class,
            using the default response serializer.
            </summary>
            <param name="baseRoute">The base route served by this module.</param>
            <seealso cref="P:EmbedIO.IWebModule.BaseRoute" />
            <seealso cref="M:EmbedIO.Utilities.Validate.UrlPath(System.String,System.String,System.Boolean)" />
        </member>
        <member name="M:EmbedIO.WebApi.WebApiModuleBase.#ctor(System.String,EmbedIO.ResponseSerializerCallback)">
            <summary>
            Initializes a new instance of the <see cref="T:EmbedIO.WebApi.WebApiModuleBase" /> class,
            using the specified response serializer.
            </summary>
            <param name="baseRoute">The base route served by this module.</param>
            <param name="serializer">A <see cref="T:EmbedIO.ResponseSerializerCallback"/> used to serialize
            the result of controller methods returning <see langword="object"/>
            or <see cref="T:System.Threading.Tasks.Task`1">Task&lt;object&gt;</see>.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="serializer"/> is <see langword="null"/>.</exception>
            <seealso cref="P:EmbedIO.IWebModule.BaseRoute" />
            <seealso cref="M:EmbedIO.Utilities.Validate.UrlPath(System.String,System.String,System.Boolean)" />
        </member>
        <member name="P:EmbedIO.WebApi.WebApiModuleBase.Serializer">
            <summary>
            A <see cref="T:EmbedIO.ResponseSerializerCallback"/> used to serialize
            the result of controller methods returning values.
            </summary>
        </member>
        <member name="P:EmbedIO.WebApi.WebApiModuleBase.ControllerCount">
            <summary>
            Gets the number of controller types registered in this module.
            </summary>
        </member>
        <member name="M:EmbedIO.WebApi.WebApiModuleBase.RegisterControllerType``1">
            <summary>
            <para>Registers a controller type using a constructor.</para>
            <para>In order for registration to be successful, the specified controller type:</para>
            <list type="bullet">
            <item><description>must be a subclass of <see cref="T:EmbedIO.WebApi.WebApiController"/>;</description></item>
            <item><description>must not be an abstract class;</description></item>
            <item><description>must not be a generic type definition;</description></item>
            <item><description>must have a public parameterless constructor.</description></item>
            </list>
            </summary>
            <typeparam name="TController">The type of the controller.</typeparam>
            <exception cref="T:System.InvalidOperationException">The module's configuration is locked.</exception>
            <exception cref="T:System.ArgumentException">
            <para><typeparamref name="TController"/> is already registered in this module.</para>
            <para><typeparamref name="TController"/> does not satisfy the prerequisites
            listed in the Summary section.</para>
            </exception>
            <remarks>
            <para>A new instance of <typeparamref name="TController"/> will be created
            for each request to handle, and dereferenced immediately afterwards,
            to be collected during next garbage collection cycle.</para>
            <para><typeparamref name="TController"/> is not required to be thread-safe,
            as it will be constructed and used in the same synchronization context.
            However, since request handling is asynchronous, the actual execution thread
            may vary during execution. Care must be exercised when using thread-sensitive
            resources or thread-static data.</para>
            <para>If <typeparamref name="TController"/> implements <see cref="T:System.IDisposable"/>,
            its <see cref="M:System.IDisposable.Dispose">Dispose</see> method will be called when it has
            finished handling a request.</para>
            </remarks>
            <seealso cref="M:EmbedIO.WebApi.WebApiModuleBase.RegisterControllerType``1(System.Func{``0})"/>
            <seealso cref="M:EmbedIO.WebApi.WebApiModuleBase.RegisterControllerType(System.Type)"/>
        </member>
        <member name="M:EmbedIO.WebApi.WebApiModuleBase.RegisterControllerType``1(System.Func{``0})">
            <summary>
            <para>Registers a controller type using a factory method.</para>
            <para>In order for registration to be successful:</para>
            <list type="bullet">
            <item><description><typeparamref name="TController"/> must be a subclass of <see cref="T:EmbedIO.WebApi.WebApiController"/>;</description></item>
            <item><description><typeparamref name="TController"/> must not be a generic type definition;</description></item>
            <item><description><paramref name="factory"/>'s return type must be either <typeparamref name="TController"/>
            or a subclass of <typeparamref name="TController"/>.</description></item>
            </list>
            </summary>
            <typeparam name="TController">The type of the controller.</typeparam>
            <param name="factory">The factory method used to construct instances of <typeparamref name="TController"/>.</param>
            <exception cref="T:System.InvalidOperationException">The module's configuration is locked.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="factory"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentException">
            <para><typeparamref name="TController"/> is already registered in this module.</para>
            <para>- or -</para>
            <para><paramref name="factory"/> does not satisfy the prerequisites listed in the Summary section.</para>
            </exception>
            <remarks>
            <para><paramref name="factory"/>will be called once for each request to handle
            in order to obtain an instance of <typeparamref name="TController"/>.
            The returned instance will be dereferenced immediately after handling the request.</para>
            <para><typeparamref name="TController"/> is not required to be thread-safe,
            as it will be constructed and used in the same synchronization context.
            However, since request handling is asynchronous, the actual execution thread
            may vary during execution. Care must be exercised when using thread-sensitive
            resources or thread-static data.</para>
            <para>If <typeparamref name="TController"/> implements <see cref="T:System.IDisposable"/>,
            its <see cref="M:System.IDisposable.Dispose">Dispose</see> method will be called when it has
            finished handling a request. In this case it is recommended that
            <paramref name="factory"/> return a newly-constructed instance of <typeparamref name="TController"/>
            at each invocation.</para>
            <para>If <typeparamref name="TController"/> does not implement <see cref="T:System.IDisposable"/>,
            <paramref name="factory"/> may employ techniques such as instance pooling to avoid
            the overhead of constructing a new instance of <typeparamref name="TController"/>
            at each invocation. If so, resources such as file handles, database connections, etc.
            should be freed before returning from each handler method to avoid
            <see href="https://en.wikipedia.org/wiki/Starvation_(computer_science)">starvation</see>.</para>
            </remarks>
            <seealso cref="M:EmbedIO.WebApi.WebApiModuleBase.RegisterControllerType``1"/>
            <seealso cref="M:EmbedIO.WebApi.WebApiModuleBase.RegisterControllerType(System.Type,System.Func{EmbedIO.WebApi.WebApiController})"/>
        </member>
        <member name="M:EmbedIO.WebApi.WebApiModuleBase.RegisterControllerType(System.Type)">
            <summary>
            <para>Registers a controller type using a constructor.</para>
            <para>In order for registration to be successful, the specified <paramref name="controllerType"/>: </para>
            <list type="bullet">
            <item><description>must be a subclass of <see cref="T:EmbedIO.WebApi.WebApiController"/>;</description></item>
            <item><description>must not be an abstract class;</description></item>
            <item><description>must not be a generic type definition;</description></item>
            <item><description>must have a public parameterless constructor.</description></item>
            </list>
            </summary>
            <param name="controllerType">The type of the controller.</param>
            <exception cref="T:System.InvalidOperationException">The module's configuration is locked.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="controllerType"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentException">
            <para><paramref name="controllerType"/> is already registered in this module.</para>
            <para>- or -</para>
            <para><paramref name="controllerType"/> does not satisfy the prerequisites
            listed in the Summary section.</para>
            </exception>
            <remarks>
            <para>A new instance of <paramref name="controllerType"/> will be created
            for each request to handle, and dereferenced immediately afterwards,
            to be collected during next garbage collection cycle.</para>
            <para><paramref name="controllerType"/> is not required to be thread-safe,
            as it will be constructed and used in the same synchronization context.
            However, since request handling is asynchronous, the actual execution thread
            may vary during execution. Care must be exercised when using thread-sensitive
            resources or thread-static data.</para>
            <para>If <paramref name="controllerType"/> implements <see cref="T:System.IDisposable"/>,
            its <see cref="M:System.IDisposable.Dispose">Dispose</see> method will be called when it has
            finished handling a request.</para>
            </remarks>
            <seealso cref="M:EmbedIO.WebApi.WebApiModuleBase.RegisterControllerType(System.Type,System.Func{EmbedIO.WebApi.WebApiController})"/>
            <seealso cref="M:EmbedIO.WebApi.WebApiModuleBase.RegisterControllerType``1"/>
        </member>
        <member name="M:EmbedIO.WebApi.WebApiModuleBase.RegisterControllerType(System.Type,System.Func{EmbedIO.WebApi.WebApiController})">
            <summary>
            <para>Registers a controller type using a factory method.</para>
            <para>In order for registration to be successful:</para>
            <list type="bullet">
            <item><description><paramref name="controllerType"/> must be a subclass of <see cref="T:EmbedIO.WebApi.WebApiController"/>;</description></item>
            <item><description><paramref name="controllerType"/> must not be a generic type definition;</description></item>
            <item><description><paramref name="factory"/>'s return type must be either <paramref name="controllerType"/>
            or a subclass of <paramref name="controllerType"/>.</description></item>
            </list>
            </summary>
            <param name="controllerType">The type of the controller.</param>
            <param name="factory">The factory method used to construct instances of <paramref name="controllerType"/>.</param>
            <exception cref="T:System.InvalidOperationException">The module's configuration is locked.</exception>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="controllerType"/> is <see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="factory"/> is <see langword="null"/>.</para>
            </exception>
            <exception cref="T:System.ArgumentException">
            <para><paramref name="controllerType"/> is already registered in this module.</para>
            <para>- or -</para>
            <para>One or more parameters do not satisfy the prerequisites listed in the Summary section.</para>
            </exception>
            <remarks>
            <para><paramref name="factory"/>will be called once for each request to handle
            in order to obtain an instance of <paramref name="controllerType"/>.
            The returned instance will be dereferenced immediately after handling the request.</para>
            <para><paramref name="controllerType"/> is not required to be thread-safe,
            as it will be constructed and used in the same synchronization context.
            However, since request handling is asynchronous, the actual execution thread
            may vary during execution. Care must be exercised when using thread-sensitive
            resources or thread-static data.</para>
            <para>If <paramref name="controllerType"/> implements <see cref="T:System.IDisposable"/>,
            its <see cref="M:System.IDisposable.Dispose">Dispose</see> method will be called when it has
            finished handling a request. In this case it is recommended that
            <paramref name="factory"/> return a newly-constructed instance of <paramref name="controllerType"/>
            at each invocation.</para>
            <para>If <paramref name="controllerType"/> does not implement <see cref="T:System.IDisposable"/>,
            <paramref name="factory"/> may employ techniques such as instance pooling to avoid
            the overhead of constructing a new instance of <paramref name="controllerType"/>
            at each invocation. If so, resources such as file handles, database connections, etc.
            should be freed before returning from each handler method to avoid
            <see href="https://en.wikipedia.org/wiki/Starvation_(computer_science)">starvation</see>.</para>
            </remarks>
            <seealso cref="M:EmbedIO.WebApi.WebApiModuleBase.RegisterControllerType(System.Type)"/>
            <seealso cref="M:EmbedIO.WebApi.WebApiModuleBase.RegisterControllerType``1(System.Func{``0})"/>
        </member>
        <member name="T:EmbedIO.WebApi.WebApiModuleExtensions">
            <summary>
            Provides extension methods for <see cref="T:EmbedIO.WebApi.WebApiModule"/>.
            </summary>
        </member>
        <member name="M:EmbedIO.WebApi.WebApiModuleExtensions.WithController``1(EmbedIO.WebApi.WebApiModule)">
            <summary>
            <para>Registers a controller type using a constructor.</para>
            <para>See <see cref="M:EmbedIO.WebApi.WebApiModuleBase.RegisterControllerType``1"/>
            for further information.</para>
            </summary>
            <typeparam name="TController">The type of the controller.</typeparam>
            <param name="this">The <see cref="T:EmbedIO.WebApi.WebApiModule"/> on which this method is called.</param>
            <returns><paramref name="this"/> with the controller type registered.</returns>
            <seealso cref="M:EmbedIO.WebApi.WebApiModuleExtensions.WithController``1(EmbedIO.WebApi.WebApiModule,System.Func{``0})"/>
            <seealso cref="M:EmbedIO.WebApi.WebApiModuleExtensions.WithController(EmbedIO.WebApi.WebApiModule,System.Type)"/>
            <seealso cref="M:EmbedIO.WebApi.WebApiModuleBase.RegisterControllerType``1"/>
        </member>
        <member name="M:EmbedIO.WebApi.WebApiModuleExtensions.WithController``1(EmbedIO.WebApi.WebApiModule,System.Func{``0})">
            <summary>
            <para>Registers a controller type using a factory method.</para>
            <para>See <see cref="M:EmbedIO.WebApi.WebApiModuleBase.RegisterControllerType``1(System.Func{``0})"/>
            for further information.</para>
            </summary>
            <typeparam name="TController">The type of the controller.</typeparam>
            <param name="this">The <see cref="T:EmbedIO.WebApi.WebApiModule"/> on which this method is called.</param>
            <param name="factory">The factory method used to construct instances of <typeparamref name="TController"/>.</param>
            <returns><paramref name="this"/> with the controller type registered.</returns>
            <seealso cref="M:EmbedIO.WebApi.WebApiModuleExtensions.WithController``1(EmbedIO.WebApi.WebApiModule)"/>
            <seealso cref="M:EmbedIO.WebApi.WebApiModuleExtensions.WithController(EmbedIO.WebApi.WebApiModule,System.Type,System.Func{EmbedIO.WebApi.WebApiController})"/>
            <seealso cref="M:EmbedIO.WebApi.WebApiModuleBase.RegisterControllerType``1(System.Func{``0})"/>
        </member>
        <member name="M:EmbedIO.WebApi.WebApiModuleExtensions.WithController(EmbedIO.WebApi.WebApiModule,System.Type)">
            <summary>
            <para>Registers a controller type using a constructor.</para>
            <para>See <see cref="M:EmbedIO.WebApi.WebApiModuleBase.RegisterControllerType(System.Type)"/>
            for further information.</para>
            </summary>
            <param name="this">The <see cref="T:EmbedIO.WebApi.WebApiModule"/> on which this method is called.</param>
            <param name="controllerType">The type of the controller.</param>
            <returns><paramref name="this"/> with the controller type registered.</returns>
            <seealso cref="M:EmbedIO.WebApi.WebApiModuleExtensions.WithController(EmbedIO.WebApi.WebApiModule,System.Type,System.Func{EmbedIO.WebApi.WebApiController})"/>
            <seealso cref="M:EmbedIO.WebApi.WebApiModuleExtensions.WithController``1(EmbedIO.WebApi.WebApiModule)"/>
            <seealso cref="M:EmbedIO.WebApi.WebApiModuleBase.RegisterControllerType(System.Type)"/>
        </member>
        <member name="M:EmbedIO.WebApi.WebApiModuleExtensions.WithController(EmbedIO.WebApi.WebApiModule,System.Type,System.Func{EmbedIO.WebApi.WebApiController})">
            <summary>
            <para>Registers a controller type using a factory method.</para>
            <para>See <see cref="M:EmbedIO.WebApi.WebApiModuleBase.RegisterControllerType(System.Type,System.Func{EmbedIO.WebApi.WebApiController})"/>
            for further information.</para>
            </summary>
            <param name="this">The <see cref="T:EmbedIO.WebApi.WebApiModule"/> on which this method is called.</param>
            <param name="controllerType">The type of the controller.</param>
            <param name="factory">The factory method used to construct instances of <paramref name="controllerType"/>.</param>
            <returns><paramref name="this"/> with the controller type registered.</returns>
            <seealso cref="M:EmbedIO.WebApi.WebApiModuleExtensions.WithController(EmbedIO.WebApi.WebApiModule,System.Type)"/>
            <seealso cref="M:EmbedIO.WebApi.WebApiModuleExtensions.WithController``1(EmbedIO.WebApi.WebApiModule,System.Func{``0})"/>
            <seealso cref="M:EmbedIO.WebApi.WebApiModuleBase.RegisterControllerType(System.Type,System.Func{EmbedIO.WebApi.WebApiController})"/>
        </member>
        <member name="T:EmbedIO.WebModuleBase">
            <summary>
            <para>Base class to define web modules.</para>
            <para>Although it is not required that a module inherits from this class,
            it provides some useful features:</para>
            <list type="bullet">
            <item><description>validation and immutability of the <see cref="P:EmbedIO.WebModuleBase.BaseRoute"/> property,
            which are of paramount importance for the correct functioning of a web server;</description></item>
            <item><description>support for configuration locking upon web server startup
            (see the <see cref="P:Swan.Configuration.ConfiguredObject.ConfigurationLocked"/> property
            and the <see cref="M:Swan.Configuration.ConfiguredObject.EnsureConfigurationNotLocked"/> method);</description></item>
            <item><description>a basic implementation of the <see cref="M:EmbedIO.IWebModule.Start(System.Threading.CancellationToken)"/> method
            for modules that do not need to do anything upon web server startup;</description></item>
            <item><description>implementation of the <see cref="P:EmbedIO.WebModuleBase.OnUnhandledException"/> callback property.</description></item>
            </list>
            </summary>
        </member>
        <member name="M:EmbedIO.WebModuleBase.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:EmbedIO.WebModuleBase"/> class.
            </summary>
            <param name="baseRoute">The base route served by this module.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="baseRoute"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentException"><paramref name="baseRoute"/> is not a valid base route.</exception>
            <seealso cref="P:EmbedIO.IWebModule.BaseRoute"/>
            <seealso cref="M:EmbedIO.Utilities.Validate.Route(System.String,System.String,System.Boolean)"/>
        </member>
        <member name="P:EmbedIO.WebModuleBase.BaseRoute">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.WebModuleBase.OnUnhandledException">
            <inheritdoc />
            <exception cref="T:System.InvalidOperationException">The module's configuration is locked.</exception>
        </member>
        <member name="P:EmbedIO.WebModuleBase.OnHttpException">
            <inheritdoc />
            <exception cref="T:System.InvalidOperationException">The module's configuration is locked.</exception>
        </member>
        <member name="P:EmbedIO.WebModuleBase.IsFinalHandler">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.WebModuleBase.LogSource">
            <summary>
            Gets a string to use as a source for log messages.
            </summary>
        </member>
        <member name="M:EmbedIO.WebModuleBase.Start(System.Threading.CancellationToken)">
            <inheritdoc />
            <remarks>
            <para>The module's configuration is locked before returning from this method.</para>
            </remarks>
        </member>
        <member name="M:EmbedIO.WebModuleBase.MatchUrlPath(System.String)">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.WebModuleBase.HandleRequestAsync(EmbedIO.IHttpContext)">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.WebModuleBase.OnRequestAsync(EmbedIO.IHttpContext)">
            <summary>
            Called to handle 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="M:EmbedIO.WebModuleBase.OnStart(System.Threading.CancellationToken)">
            <summary>
            Called when a module is started, immediately before locking the module's configuration.
            </summary>
            <param name="cancellationToken">A <see cref="T:System.Threading.CancellationToken"/> used to stop the web server.</param>
        </member>
        <member name="T:EmbedIO.WebModuleContainer">
            <summary>
            Provides useful constants for dealing with module containers.
            </summary>
        </member>
        <member name="F:EmbedIO.WebModuleContainer.None">
            <summary>
            <para>Gets an <see cref="T:EmbedIO.IWebModuleContainer"/> interface that does not and cannot contain
            any module.</para>
            <para>This field is useful to initialize non-nullable fields or properties
            of type <see cref="T:EmbedIO.IWebModuleContainer"/>.</para>
            </summary>
        </member>
        <member name="T:EmbedIO.WebModuleContainerExtensions">
            <summary>
            Contains extension methods for types implementing <see cref="T:EmbedIO.IWebModuleContainer"/>.
            </summary>
        </member>
        <member name="M:EmbedIO.WebModuleContainerExtensions.WithAction``1(``0,System.String,EmbedIO.HttpVerbs,EmbedIO.RequestHandlerCallback)">
            <summary>
            Creates an instance of <see cref="T:EmbedIO.Actions.ActionModule"/> and adds it to a module container.
            </summary>
            <typeparam name="TContainer">The type of the module container.</typeparam>
            <param name="this">The <typeparamref name="TContainer"/> on which this method is called.</param>
            <param name="baseRoute">The base route of the module.</param>
            <param name="verb">The HTTP verb that will be served by <paramref name="handler"/>.</param>
            <param name="handler">The callback used to handle requests.</param>
            <returns><paramref name="this"/> with a <see cref="T:EmbedIO.Actions.ActionModule"/> added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <seealso cref="T:EmbedIO.Actions.ActionModule"/>
            <seealso cref="P:EmbedIO.IWebModuleContainer.Modules"/>
            <seealso cref="M:EmbedIO.Utilities.IComponentCollection`1.Add(System.String,`0)"/>
        </member>
        <member name="M:EmbedIO.WebModuleContainerExtensions.WithAction``1(``0,EmbedIO.HttpVerbs,EmbedIO.RequestHandlerCallback)">
            <summary>
            Creates an instance of <see cref="T:EmbedIO.Actions.ActionModule"/> with a base URL path of <c>"/"</c>
            and adds it to a module container.
            </summary>
            <typeparam name="TContainer">The type of the module container.</typeparam>
            <param name="this">The <typeparamref name="TContainer"/> on which this method is called.</param>
            <param name="verb">The HTTP verb that will be served by <paramref name="handler"/>.</param>
            <param name="handler">The callback used to handle requests.</param>
            <returns><paramref name="this"/> with a <see cref="T:EmbedIO.Actions.ActionModule"/> added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <seealso cref="T:EmbedIO.Actions.ActionModule"/>
            <seealso cref="P:EmbedIO.IWebModuleContainer.Modules"/>
            <seealso cref="M:EmbedIO.Utilities.IComponentCollection`1.Add(System.String,`0)"/>
        </member>
        <member name="M:EmbedIO.WebModuleContainerExtensions.OnAny``1(``0,System.String,EmbedIO.RequestHandlerCallback)">
            <summary>
            Creates an instance of <see cref="T:EmbedIO.Actions.ActionModule"/> that intercepts all requests
            under the specified <paramref name="baseRoute"/> and adds it to a module container.
            </summary>
            <typeparam name="TContainer">The type of the module container.</typeparam>
            <param name="this">The <typeparamref name="TContainer"/> on which this method is called.</param>
            <param name="baseRoute">The base route of the module.</param>
            <param name="handler">The callback used to handle requests.</param>
            <returns><paramref name="this"/> with a <see cref="T:EmbedIO.Actions.ActionModule"/> added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <seealso cref="T:EmbedIO.Actions.ActionModule"/>
            <seealso cref="P:EmbedIO.IWebModuleContainer.Modules"/>
            <seealso cref="M:EmbedIO.Utilities.IComponentCollection`1.Add(System.String,`0)"/>
        </member>
        <member name="M:EmbedIO.WebModuleContainerExtensions.OnAny``1(``0,EmbedIO.RequestHandlerCallback)">
            <summary>
            Creates an instance of <see cref="T:EmbedIO.Actions.ActionModule"/> that intercepts all requests
            and adds it to a module container.
            </summary>
            <typeparam name="TContainer">The type of the module container.</typeparam>
            <param name="this">The <typeparamref name="TContainer"/> on which this method is called.</param>
            <param name="handler">The callback used to handle requests.</param>
            <returns><paramref name="this"/> with a <see cref="T:EmbedIO.Actions.ActionModule"/> added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <seealso cref="T:EmbedIO.Actions.ActionModule"/>
            <seealso cref="P:EmbedIO.IWebModuleContainer.Modules"/>
            <seealso cref="M:EmbedIO.Utilities.IComponentCollection`1.Add(System.String,`0)"/>
        </member>
        <member name="M:EmbedIO.WebModuleContainerExtensions.OnDelete``1(``0,System.String,EmbedIO.RequestHandlerCallback)">
            <summary>
            Creates an instance of <see cref="T:EmbedIO.Actions.ActionModule"/> that intercepts all <c>DELETE</c>requests
            under the specified <paramref name="baseRoute"/> and adds it to a module container.
            </summary>
            <typeparam name="TContainer">The type of the module container.</typeparam>
            <param name="this">The <typeparamref name="TContainer"/> on which this method is called.</param>
            <param name="baseRoute">The base route of the module.</param>
            <param name="handler">The callback used to handle requests.</param>
            <returns><paramref name="this"/> with a <see cref="T:EmbedIO.Actions.ActionModule"/> added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <seealso cref="T:EmbedIO.Actions.ActionModule"/>
            <seealso cref="P:EmbedIO.IWebModuleContainer.Modules"/>
            <seealso cref="M:EmbedIO.Utilities.IComponentCollection`1.Add(System.String,`0)"/>
        </member>
        <member name="M:EmbedIO.WebModuleContainerExtensions.OnDelete``1(``0,EmbedIO.RequestHandlerCallback)">
            <summary>
            Creates an instance of <see cref="T:EmbedIO.Actions.ActionModule"/> that intercepts all <c>DELETE</c>requests
            and adds it to a module container.
            </summary>
            <typeparam name="TContainer">The type of the module container.</typeparam>
            <param name="this">The <typeparamref name="TContainer"/> on which this method is called.</param>
            <param name="handler">The callback used to handle requests.</param>
            <returns><paramref name="this"/> with a <see cref="T:EmbedIO.Actions.ActionModule"/> added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <seealso cref="T:EmbedIO.Actions.ActionModule"/>
            <seealso cref="P:EmbedIO.IWebModuleContainer.Modules"/>
            <seealso cref="M:EmbedIO.Utilities.IComponentCollection`1.Add(System.String,`0)"/>
        </member>
        <member name="M:EmbedIO.WebModuleContainerExtensions.OnGet``1(``0,System.String,EmbedIO.RequestHandlerCallback)">
            <summary>
            Creates an instance of <see cref="T:EmbedIO.Actions.ActionModule"/> that intercepts all <c>GET</c>requests
            under the specified <paramref name="baseRoute"/> and adds it to a module container.
            </summary>
            <typeparam name="TContainer">The type of the module container.</typeparam>
            <param name="this">The <typeparamref name="TContainer"/> on which this method is called.</param>
            <param name="baseRoute">The base route of the module.</param>
            <param name="handler">The callback used to handle requests.</param>
            <returns><paramref name="this"/> with a <see cref="T:EmbedIO.Actions.ActionModule"/> added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <seealso cref="T:EmbedIO.Actions.ActionModule"/>
            <seealso cref="P:EmbedIO.IWebModuleContainer.Modules"/>
            <seealso cref="M:EmbedIO.Utilities.IComponentCollection`1.Add(System.String,`0)"/>
        </member>
        <member name="M:EmbedIO.WebModuleContainerExtensions.OnGet``1(``0,EmbedIO.RequestHandlerCallback)">
            <summary>
            Creates an instance of <see cref="T:EmbedIO.Actions.ActionModule"/> that intercepts all <c>GET</c>requests
            and adds it to a module container.
            </summary>
            <typeparam name="TContainer">The type of the module container.</typeparam>
            <param name="this">The <typeparamref name="TContainer"/> on which this method is called.</param>
            <param name="handler">The callback used to handle requests.</param>
            <returns><paramref name="this"/> with a <see cref="T:EmbedIO.Actions.ActionModule"/> added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <seealso cref="T:EmbedIO.Actions.ActionModule"/>
            <seealso cref="P:EmbedIO.IWebModuleContainer.Modules"/>
            <seealso cref="M:EmbedIO.Utilities.IComponentCollection`1.Add(System.String,`0)"/>
        </member>
        <member name="M:EmbedIO.WebModuleContainerExtensions.OnHead``1(``0,System.String,EmbedIO.RequestHandlerCallback)">
            <summary>
            Creates an instance of <see cref="T:EmbedIO.Actions.ActionModule"/> that intercepts all <c>HEAD</c>requests
            under the specified <paramref name="baseRoute"/> and adds it to a module container.
            </summary>
            <typeparam name="TContainer">The type of the module container.</typeparam>
            <param name="this">The <typeparamref name="TContainer"/> on which this method is called.</param>
            <param name="baseRoute">The base route of the module.</param>
            <param name="handler">The callback used to handle requests.</param>
            <returns><paramref name="this"/> with a <see cref="T:EmbedIO.Actions.ActionModule"/> added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <seealso cref="T:EmbedIO.Actions.ActionModule"/>
            <seealso cref="P:EmbedIO.IWebModuleContainer.Modules"/>
            <seealso cref="M:EmbedIO.Utilities.IComponentCollection`1.Add(System.String,`0)"/>
        </member>
        <member name="M:EmbedIO.WebModuleContainerExtensions.OnHead``1(``0,EmbedIO.RequestHandlerCallback)">
            <summary>
            Creates an instance of <see cref="T:EmbedIO.Actions.ActionModule"/> that intercepts all <c>HEAD</c>requests
            and adds it to a module container.
            </summary>
            <typeparam name="TContainer">The type of the module container.</typeparam>
            <param name="this">The <typeparamref name="TContainer"/> on which this method is called.</param>
            <param name="handler">The callback used to handle requests.</param>
            <returns><paramref name="this"/> with a <see cref="T:EmbedIO.Actions.ActionModule"/> added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <seealso cref="T:EmbedIO.Actions.ActionModule"/>
            <seealso cref="P:EmbedIO.IWebModuleContainer.Modules"/>
            <seealso cref="M:EmbedIO.Utilities.IComponentCollection`1.Add(System.String,`0)"/>
        </member>
        <member name="M:EmbedIO.WebModuleContainerExtensions.OnOptions``1(``0,System.String,EmbedIO.RequestHandlerCallback)">
            <summary>
            Creates an instance of <see cref="T:EmbedIO.Actions.ActionModule"/> that intercepts all <c>OPTIONS</c>requests
            under the specified <paramref name="baseRoute"/> and adds it to a module container.
            </summary>
            <typeparam name="TContainer">The type of the module container.</typeparam>
            <param name="this">The <typeparamref name="TContainer"/> on which this method is called.</param>
            <param name="baseRoute">The base route of the module.</param>
            <param name="handler">The callback used to handle requests.</param>
            <returns><paramref name="this"/> with a <see cref="T:EmbedIO.Actions.ActionModule"/> added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <seealso cref="T:EmbedIO.Actions.ActionModule"/>
            <seealso cref="P:EmbedIO.IWebModuleContainer.Modules"/>
            <seealso cref="M:EmbedIO.Utilities.IComponentCollection`1.Add(System.String,`0)"/>
        </member>
        <member name="M:EmbedIO.WebModuleContainerExtensions.OnOptions``1(``0,EmbedIO.RequestHandlerCallback)">
            <summary>
            Creates an instance of <see cref="T:EmbedIO.Actions.ActionModule"/> that intercepts all <c>OPTIONS</c>requests
            and adds it to a module container.
            </summary>
            <typeparam name="TContainer">The type of the module container.</typeparam>
            <param name="this">The <typeparamref name="TContainer"/> on which this method is called.</param>
            <param name="handler">The callback used to handle requests.</param>
            <returns><paramref name="this"/> with a <see cref="T:EmbedIO.Actions.ActionModule"/> added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <seealso cref="T:EmbedIO.Actions.ActionModule"/>
            <seealso cref="P:EmbedIO.IWebModuleContainer.Modules"/>
            <seealso cref="M:EmbedIO.Utilities.IComponentCollection`1.Add(System.String,`0)"/>
        </member>
        <member name="M:EmbedIO.WebModuleContainerExtensions.OnPatch``1(``0,System.String,EmbedIO.RequestHandlerCallback)">
            <summary>
            Creates an instance of <see cref="T:EmbedIO.Actions.ActionModule"/> that intercepts all <c>PATCH</c>requests
            under the specified <paramref name="baseRoute"/> and adds it to a module container.
            </summary>
            <typeparam name="TContainer">The type of the module container.</typeparam>
            <param name="this">The <typeparamref name="TContainer"/> on which this method is called.</param>
            <param name="baseRoute">The base route of the module.</param>
            <param name="handler">The callback used to handle requests.</param>
            <returns><paramref name="this"/> with a <see cref="T:EmbedIO.Actions.ActionModule"/> added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <seealso cref="T:EmbedIO.Actions.ActionModule"/>
            <seealso cref="P:EmbedIO.IWebModuleContainer.Modules"/>
            <seealso cref="M:EmbedIO.Utilities.IComponentCollection`1.Add(System.String,`0)"/>
        </member>
        <member name="M:EmbedIO.WebModuleContainerExtensions.OnPatch``1(``0,EmbedIO.RequestHandlerCallback)">
            <summary>
            Creates an instance of <see cref="T:EmbedIO.Actions.ActionModule"/> that intercepts all <c>PATCH</c>requests
            and adds it to a module container.
            </summary>
            <typeparam name="TContainer">The type of the module container.</typeparam>
            <param name="this">The <typeparamref name="TContainer"/> on which this method is called.</param>
            <param name="handler">The callback used to handle requests.</param>
            <returns><paramref name="this"/> with a <see cref="T:EmbedIO.Actions.ActionModule"/> added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <seealso cref="T:EmbedIO.Actions.ActionModule"/>
            <seealso cref="P:EmbedIO.IWebModuleContainer.Modules"/>
            <seealso cref="M:EmbedIO.Utilities.IComponentCollection`1.Add(System.String,`0)"/>
        </member>
        <member name="M:EmbedIO.WebModuleContainerExtensions.OnPost``1(``0,System.String,EmbedIO.RequestHandlerCallback)">
            <summary>
            Creates an instance of <see cref="T:EmbedIO.Actions.ActionModule"/> that intercepts all <c>POST</c>requests
            under the specified <paramref name="baseRoute"/> and adds it to a module container.
            </summary>
            <typeparam name="TContainer">The type of the module container.</typeparam>
            <param name="this">The <typeparamref name="TContainer"/> on which this method is called.</param>
            <param name="baseRoute">The base route of the module.</param>
            <param name="handler">The callback used to handle requests.</param>
            <returns><paramref name="this"/> with a <see cref="T:EmbedIO.Actions.ActionModule"/> added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <seealso cref="T:EmbedIO.Actions.ActionModule"/>
            <seealso cref="P:EmbedIO.IWebModuleContainer.Modules"/>
            <seealso cref="M:EmbedIO.Utilities.IComponentCollection`1.Add(System.String,`0)"/>
        </member>
        <member name="M:EmbedIO.WebModuleContainerExtensions.OnPost``1(``0,EmbedIO.RequestHandlerCallback)">
            <summary>
            Creates an instance of <see cref="T:EmbedIO.Actions.ActionModule"/> that intercepts all <c>POST</c>requests
            and adds it to a module container.
            </summary>
            <typeparam name="TContainer">The type of the module container.</typeparam>
            <param name="this">The <typeparamref name="TContainer"/> on which this method is called.</param>
            <param name="handler">The callback used to handle requests.</param>
            <returns><paramref name="this"/> with a <see cref="T:EmbedIO.Actions.ActionModule"/> added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <seealso cref="T:EmbedIO.Actions.ActionModule"/>
            <seealso cref="P:EmbedIO.IWebModuleContainer.Modules"/>
            <seealso cref="M:EmbedIO.Utilities.IComponentCollection`1.Add(System.String,`0)"/>
        </member>
        <member name="M:EmbedIO.WebModuleContainerExtensions.OnPut``1(``0,System.String,EmbedIO.RequestHandlerCallback)">
            <summary>
            Creates an instance of <see cref="T:EmbedIO.Actions.ActionModule"/> that intercepts all <c>PUT</c>requests
            under the specified <paramref name="baseRoute"/> and adds it to a module container.
            </summary>
            <typeparam name="TContainer">The type of the module container.</typeparam>
            <param name="this">The <typeparamref name="TContainer"/> on which this method is called.</param>
            <param name="baseRoute">The base route of the module.</param>
            <param name="handler">The callback used to handle requests.</param>
            <returns><paramref name="this"/> with a <see cref="T:EmbedIO.Actions.ActionModule"/> added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <seealso cref="T:EmbedIO.Actions.ActionModule"/>
            <seealso cref="P:EmbedIO.IWebModuleContainer.Modules"/>
            <seealso cref="M:EmbedIO.Utilities.IComponentCollection`1.Add(System.String,`0)"/>
        </member>
        <member name="M:EmbedIO.WebModuleContainerExtensions.OnPut``1(``0,EmbedIO.RequestHandlerCallback)">
            <summary>
            Creates an instance of <see cref="T:EmbedIO.Actions.ActionModule"/> that intercepts all <c>PUT</c>requests
            and adds it to a module container.
            </summary>
            <typeparam name="TContainer">The type of the module container.</typeparam>
            <param name="this">The <typeparamref name="TContainer"/> on which this method is called.</param>
            <param name="handler">The callback used to handle requests.</param>
            <returns><paramref name="this"/> with a <see cref="T:EmbedIO.Actions.ActionModule"/> added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <seealso cref="T:EmbedIO.Actions.ActionModule"/>
            <seealso cref="P:EmbedIO.IWebModuleContainer.Modules"/>
            <seealso cref="M:EmbedIO.Utilities.IComponentCollection`1.Add(System.String,`0)"/>
        </member>
        <member name="M:EmbedIO.WebModuleContainerExtensions.WithCors``1(``0,System.String,System.String,System.String,System.String)">
            <summary>
            Creates an instance of <see cref="T:EmbedIO.Cors.CorsModule"/> and adds it to a module container.
            </summary>
            <typeparam name="TContainer">The type of the module container.</typeparam>
            <param name="this">The <typeparamref name="TContainer"/> on which this method is called.</param>
            <param name="baseRoute">The base route of the module.</param>
            <param name="origins">The valid origins. Default is <c>"*"</c>, meaning all origins.</param>
            <param name="headers">The valid headers. Default is <c>"*"</c>, meaning all headers.</param>
            <param name="methods">The valid method. Default is <c>"*"</c>, meaning all methods.</param>
            <returns><paramref name="this"/> with a <see cref="T:EmbedIO.Cors.CorsModule"/> added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <seealso cref="T:EmbedIO.Cors.CorsModule"/>
        </member>
        <member name="M:EmbedIO.WebModuleContainerExtensions.WithCors``1(``0,System.String,System.String,System.String)">
            <summary>
            Creates an instance of <see cref="T:EmbedIO.Cors.CorsModule"/> and adds it to a module container.
            </summary>
            <typeparam name="TContainer">The type of the module container.</typeparam>
            <param name="this">The <typeparamref name="TContainer"/> on which this method is called.</param>
            <param name="origins">The valid origins. Default is <c>"*"</c>, meaning all origins.</param>
            <param name="headers">The valid headers. Default is <c>"*"</c>, meaning all headers.</param>
            <param name="methods">The valid method. Default is <c>"*"</c>, meaning all methods.</param>
            <returns><paramref name="this"/> with a <see cref="T:EmbedIO.Cors.CorsModule"/> added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <seealso cref="T:EmbedIO.Cors.CorsModule"/>
        </member>
        <member name="M:EmbedIO.WebModuleContainerExtensions.WithStaticFolder``1(``0,System.String,System.String,System.Boolean,System.Action{EmbedIO.Files.FileModule})">
            <summary>
            Creates an instance of <see cref="T:EmbedIO.Files.FileSystemProvider"/>, uses it to initialize
            a <seealso cref="T:EmbedIO.Files.FileModule"/>, and adds the latter to a module container.
            </summary>
            <typeparam name="TContainer">The type of the module container.</typeparam>
            <param name="this">The <typeparamref name="TContainer"/> on which this method is called.</param>
            <param name="baseRoute">The base route of the module.</param>
            <param name="fileSystemPath">The path of the directory to serve.</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>
            <param name="configure">A callback used to configure the module.</param>
            <returns><paramref name="this"/> with a <see cref="T:EmbedIO.Files.FileModule"/> added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <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="T:EmbedIO.Files.FileModule"/>
            <seealso cref="T:EmbedIO.Files.FileSystemProvider"/>
            <seealso cref="P:EmbedIO.IWebModuleContainer.Modules"/>
            <seealso cref="M:EmbedIO.Utilities.IComponentCollection`1.Add(System.String,`0)"/>
        </member>
        <member name="M:EmbedIO.WebModuleContainerExtensions.WithStaticFolder``1(``0,System.String,System.String,System.String,System.Boolean,System.Action{EmbedIO.Files.FileModule})">
            <summary>
            Creates an instance of <see cref="T:EmbedIO.Files.FileSystemProvider"/>, uses it to initialize
            a <seealso cref="T:EmbedIO.Files.FileModule"/>, and adds the latter to a module container,
            giving it the specified <paramref name="name"/> if not <see langword="null"/>.
            </summary>
            <remarks>
            OSX doesn't support <see cref="T:System.IO.FileSystemWatcher" />, the parameter <paramref name="isImmutable" /> will be always <see langword="true"/>.
            </remarks>
            <typeparam name="TContainer">The type of the module container.</typeparam>
            <param name="this">The <typeparamref name="TContainer"/> on which this method is called.</param>
            <param name="name">The name.</param>
            <param name="baseRoute">The base route of the module.</param>
            <param name="fileSystemPath">The path of the directory to serve.</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>
            <param name="configure">A callback used to configure the module.</param>
            <returns><paramref name="this"/> with a <see cref="T:EmbedIO.Files.FileModule"/> added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <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="T:EmbedIO.Files.FileModule"/>
            <seealso cref="T:EmbedIO.Files.FileSystemProvider"/>
            <seealso cref="P:EmbedIO.IWebModuleContainer.Modules"/>
            <seealso cref="M:EmbedIO.Utilities.IComponentCollection`1.Add(System.String,`0)"/>
        </member>
        <member name="M:EmbedIO.WebModuleContainerExtensions.WithEmbeddedResources``1(``0,System.String,System.Reflection.Assembly,System.String,System.Action{EmbedIO.Files.FileModule})">
            <summary>
            Creates an instance of <see cref="T:EmbedIO.Files.ResourceFileProvider"/>, uses it to initialize
            a <seealso cref="T:EmbedIO.Files.FileModule"/>, and adds the latter to a module container.
            </summary>
            <typeparam name="TContainer">The type of the module container.</typeparam>
            <param name="this">The <typeparamref name="TContainer"/> on which this method is called.</param>
            <param name="baseRoute">The base route of the module.</param>
            <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>
            <param name="configure">A callback used to configure the module.</param>
            <returns><paramref name="this"/> with a <see cref="T:EmbedIO.Files.FileModule"/> added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="assembly"/> is <see langword="null"/>.</exception>
            <seealso cref="T:EmbedIO.Files.FileModule"/>
            <seealso cref="T:EmbedIO.Files.ResourceFileProvider"/>
            <seealso cref="P:EmbedIO.IWebModuleContainer.Modules"/>
            <seealso cref="M:EmbedIO.Utilities.IComponentCollection`1.Add(System.String,`0)"/>
        </member>
        <member name="M:EmbedIO.WebModuleContainerExtensions.WithEmbeddedResources``1(``0,System.String,System.String,System.Reflection.Assembly,System.String,System.Action{EmbedIO.Files.FileModule})">
            <summary>
            Creates an instance of <see cref="T:EmbedIO.Files.ResourceFileProvider"/>, uses it to initialize
            a <seealso cref="T:EmbedIO.Files.FileModule"/>, and adds the latter to a module container,
            giving it the specified <paramref name="name"/> if not <see langword="null"/>.
            </summary>
            <typeparam name="TContainer">The type of the module container.</typeparam>
            <param name="this">The <typeparamref name="TContainer"/> on which this method is called.</param>
            <param name="name">The name.</param>
            <param name="baseRoute">The base route of the module.</param>
            <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>
            <param name="configure">A callback used to configure the module.</param>
            <returns><paramref name="this"/> with a <see cref="T:EmbedIO.Files.FileModule"/> added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="assembly"/> is <see langword="null"/>.</exception>
            <seealso cref="T:EmbedIO.Files.FileModule"/>
            <seealso cref="T:EmbedIO.Files.ResourceFileProvider"/>
            <seealso cref="P:EmbedIO.IWebModuleContainer.Modules"/>
            <seealso cref="M:EmbedIO.Utilities.IComponentCollection`1.Add(System.String,`0)"/>
        </member>
        <member name="M:EmbedIO.WebModuleContainerExtensions.WithZipFile``1(``0,System.String,System.String,System.Action{EmbedIO.Files.FileModule})">
            <summary>
            Creates an instance of <see cref="T:EmbedIO.Files.ZipFileProvider"/> using a file-system path, uses it to initialize
            a <seealso cref="T:EmbedIO.Files.FileModule"/>, and adds the latter to a module container.
            </summary>
            <typeparam name="TContainer">The type of the module container.</typeparam>
            <param name="this">The <typeparamref name="TContainer"/> on which this method is called.</param>
            <param name="baseRoute">The base route of the module.</param>
            <param name="zipFilePath">The local path of the Zip file.</param>
            <param name="configure">A callback used to configure the module.</param>
            <returns><paramref name="this"/> with a <see cref="T:EmbedIO.Files.FileModule"/> added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <seealso cref="T:EmbedIO.Files.FileModule"/>
            <seealso cref="T:EmbedIO.Files.ZipFileProvider"/>
            <seealso cref="P:EmbedIO.IWebModuleContainer.Modules"/>
            <seealso cref="M:EmbedIO.Utilities.IComponentCollection`1.Add(System.String,`0)"/>
        </member>
        <member name="M:EmbedIO.WebModuleContainerExtensions.WithZipFile``1(``0,System.String,System.String,System.String,System.Action{EmbedIO.Files.FileModule})">
            <summary>
            Creates an instance of <see cref="T:EmbedIO.Files.ZipFileProvider"/> using a file-system path, uses it to initialize
            a <seealso cref="T:EmbedIO.Files.FileModule"/>, and adds the latter to a module container,
            giving it the specified <paramref name="name"/> if not <see langword="null"/>.
            </summary>
            <typeparam name="TContainer">The type of the module container.</typeparam>
            <param name="this">The <typeparamref name="TContainer"/> on which this method is called.</param>
            <param name="name">The name.</param>
            <param name="baseRoute">The base route of the module.</param>
            <param name="zipFilePath">The zip file-system path.</param>
            <param name="configure">A callback used to configure the module.</param>
            <returns><paramref name="this"/> with a <see cref="T:EmbedIO.Files.FileModule"/> added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <seealso cref="T:EmbedIO.Files.FileModule"/>
            <seealso cref="T:EmbedIO.Files.ZipFileProvider"/>
            <seealso cref="P:EmbedIO.IWebModuleContainer.Modules"/>
            <seealso cref="M:EmbedIO.Utilities.IComponentCollection`1.Add(System.String,`0)"/>
        </member>
        <member name="M:EmbedIO.WebModuleContainerExtensions.WithZipFileStream``1(``0,System.String,System.IO.Stream,System.Action{EmbedIO.Files.FileModule})">
            <summary>
            Creates an instance of <see cref="T:EmbedIO.Files.ZipFileProvider"/> using a zip file as stream, uses it to initialize
            a <seealso cref="T:EmbedIO.Files.FileModule"/>, and adds the latter to a module container.
            </summary>
            <typeparam name="TContainer">The type of the module container.</typeparam>
            <param name="this">The <typeparamref name="TContainer"/> on which this method is called.</param>
            <param name="baseRoute">The base route of the module.</param>
            <param name="zipFileStream">The zip file as stream.</param>
            <param name="configure">A callback used to configure the module.</param>
            <returns><paramref name="this"/> with a <see cref="T:EmbedIO.Files.FileModule"/> added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <seealso cref="T:EmbedIO.Files.FileModule"/>
            <seealso cref="T:EmbedIO.Files.ZipFileProvider"/>
            <seealso cref="P:EmbedIO.IWebModuleContainer.Modules"/>
            <seealso cref="M:EmbedIO.Utilities.IComponentCollection`1.Add(System.String,`0)"/>
        </member>
        <member name="M:EmbedIO.WebModuleContainerExtensions.WithZipFileStream``1(``0,System.String,System.String,System.IO.Stream,System.Action{EmbedIO.Files.FileModule})">
            <summary>
            Creates an instance of <see cref="T:EmbedIO.Files.ZipFileProvider"/> using a zip file as stream, uses it to initialize
            a <seealso cref="T:EmbedIO.Files.FileModule"/>, and adds the latter to a module container,
            giving it the specified <paramref name="name"/> if not <see langword="null"/>.
            </summary>
            <typeparam name="TContainer">The type of the module container.</typeparam>
            <param name="this">The <typeparamref name="TContainer"/> on which this method is called.</param>
            <param name="name">The name.</param>
            <param name="baseRoute">The base route of the module.</param>
            <param name="zipFileStream">The zip file as stream.</param>
            <param name="configure">A callback used to configure the module.</param>
            <returns><paramref name="this"/> with a <see cref="T:EmbedIO.Files.FileModule"/> added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <seealso cref="T:EmbedIO.Files.FileModule"/>
            <seealso cref="T:EmbedIO.Files.ZipFileProvider"/>
            <seealso cref="P:EmbedIO.IWebModuleContainer.Modules"/>
            <seealso cref="M:EmbedIO.Utilities.IComponentCollection`1.Add(System.String,`0)"/>
        </member>
        <member name="M:EmbedIO.WebModuleContainerExtensions.WithRouting``1(``0,System.String,System.Action{EmbedIO.Routing.RoutingModule})">
            <summary>
            Creates an instance of <see cref="T:EmbedIO.Routing.RoutingModule"/> and adds it to a module container.
            </summary>
            <typeparam name="TContainer">The type of the module container.</typeparam>
            <param name="this">The <typeparamref name="TContainer"/> on which this method is called.</param>
            <param name="baseRoute">The base route of the module.</param>
            <param name="configure">A callback used to configure the newly-created <see cref="T:EmbedIO.Routing.RoutingModule"/>.</param>
            <returns><paramref name="this"/> with a <see cref="T:EmbedIO.Routing.RoutingModule"/> added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="configure"/> is <see langword="null"/>.</exception>
            <seealso cref="T:EmbedIO.Routing.RoutingModule"/>
            <seealso cref="T:EmbedIO.Routing.RoutingModuleExtensions"/>
            <seealso cref="P:EmbedIO.IWebModuleContainer.Modules"/>
            <seealso cref="M:EmbedIO.Utilities.IComponentCollection`1.Add(System.String,`0)"/>
        </member>
        <member name="M:EmbedIO.WebModuleContainerExtensions.WithRouting``1(``0,System.String,System.String,System.Action{EmbedIO.Routing.RoutingModule})">
            <summary>
            Creates an instance of <see cref="T:EmbedIO.Routing.RoutingModule"/> and adds it to a module container,
            giving it the specified <paramref name="name"/> if not <see langword="null"/>.
            </summary>
            <typeparam name="TContainer">The type of the module container.</typeparam>
            <param name="this">The <typeparamref name="TContainer"/> on which this method is called.</param>
            <param name="name">The name.</param>
            <param name="baseRoute">The base route of the module.</param>
            <param name="configure">A callback used to configure the newly-created <see cref="T:EmbedIO.Routing.RoutingModule"/>.</param>
            <returns><paramref name="this"/> with a <see cref="T:EmbedIO.Routing.RoutingModule"/> added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="configure"/> is <see langword="null"/>.</exception>
            <seealso cref="T:EmbedIO.Routing.RoutingModule"/>
            <seealso cref="T:EmbedIO.Routing.RoutingModuleExtensions"/>
            <seealso cref="P:EmbedIO.IWebModuleContainer.Modules"/>
            <seealso cref="M:EmbedIO.Utilities.IComponentCollection`1.Add(System.String,`0)"/>
        </member>
        <member name="M:EmbedIO.WebModuleContainerExtensions.WithIPBanning``1(``0,System.Collections.Generic.IEnumerable{System.String},System.Int32)">
            <summary>
            Creates an instance of <see cref="T:EmbedIO.Security.IPBanningModule" /> and adds it to a module container.
            </summary>
            <typeparam name="TContainer">The type of the module container.</typeparam>
            <param name="this">The <typeparamref name="TContainer" /> on which this method is called.</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>
            <returns>
              <paramref name="this" /> with an <see cref="T:EmbedIO.Security.IPBanningModule" /> added.
            </returns>
        </member>
        <member name="M:EmbedIO.WebModuleContainerExtensions.WithIPBanning``1(``0,System.Action{EmbedIO.Security.IPBanningModule},System.Collections.Generic.IEnumerable{System.String},System.Int32)">
            <summary>
            Creates an instance of <see cref="T:EmbedIO.Security.IPBanningModule" /> and adds it to a module container.
            </summary>
            <typeparam name="TContainer">The type of the module container.</typeparam>
            <param name="this">The <typeparamref name="TContainer" /> on which this method is called.</param>
            <param name="configure">The configure.</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>
            <returns>
              <paramref name="this" /> with an <see cref="T:EmbedIO.Security.IPBanningModule" /> added.
            </returns>
        </member>
        <member name="M:EmbedIO.WebModuleContainerExtensions.WithWebApi``1(``0,System.String,System.Action{EmbedIO.WebApi.WebApiModule})">
            <summary>
            Creates an instance of <see cref="T:EmbedIO.WebApi.WebApiModule"/> using the default response serializer
            and adds it to a module container without giving it a name.
            </summary>
            <typeparam name="TContainer">The type of the module container.</typeparam>
            <param name="this">The <typeparamref name="TContainer"/> on which this method is called.</param>
            <param name="baseRoute">The base route of the module.</param>
            <param name="configure">A callback used to configure the newly-created <see cref="T:EmbedIO.WebApi.WebApiModule"/>.</param>
            <returns><paramref name="this"/> with a <see cref="T:EmbedIO.Routing.RoutingModule"/> added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="configure"/> is <see langword="null"/>.</exception>
            <seealso cref="T:EmbedIO.WebApi.WebApiModule"/>
            <seealso cref="T:EmbedIO.WebApi.WebApiModuleExtensions"/>
            <seealso cref="P:EmbedIO.IWebModuleContainer.Modules"/>
            <seealso cref="M:EmbedIO.Utilities.IComponentCollection`1.Add(System.String,`0)"/>
        </member>
        <member name="M:EmbedIO.WebModuleContainerExtensions.WithWebApi``1(``0,System.String,EmbedIO.ResponseSerializerCallback,System.Action{EmbedIO.WebApi.WebApiModule})">
            <summary>
            Creates an instance of <see cref="T:EmbedIO.WebApi.WebApiModule"/> using the specified response serializer
            and adds it to a module container without giving it a name.
            </summary>
            <typeparam name="TContainer">The type of the module container.</typeparam>
            <param name="this">The <typeparamref name="TContainer"/> on which this method is called.</param>
            <param name="baseRoute">The base route of the module.</param>
            <param name="serializer">A <see cref="T:EmbedIO.ResponseSerializerCallback"/> used to serialize
            the result of controller methods returning <see langword="object"/>
            or <see cref="T:System.Threading.Tasks.Task`1">Task&lt;object&gt;</see>.</param>
            <param name="configure">A callback used to configure the newly-created <see cref="T:EmbedIO.WebApi.WebApiModule"/>.</param>
            <returns><paramref name="this"/> with a <see cref="T:EmbedIO.Routing.RoutingModule"/> added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="serializer"/> is <see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="configure"/> is <see langword="null"/>.</para>
            </exception>
            <seealso cref="T:EmbedIO.WebApi.WebApiModule"/>
            <seealso cref="T:EmbedIO.WebApi.WebApiModuleExtensions"/>
            <seealso cref="P:EmbedIO.IWebModuleContainer.Modules"/>
            <seealso cref="M:EmbedIO.Utilities.IComponentCollection`1.Add(System.String,`0)"/>
        </member>
        <member name="M:EmbedIO.WebModuleContainerExtensions.WithWebApi``1(``0,System.String,System.String,System.Action{EmbedIO.WebApi.WebApiModule})">
            <summary>
            Creates an instance of <see cref="T:EmbedIO.WebApi.WebApiModule"/> using the default response serializer
            and adds it to a module container, giving it the specified <paramref name="name"/>
            if not <see langword="null"/>
            </summary>
            <typeparam name="TContainer">The type of the module container.</typeparam>
            <param name="this">The <typeparamref name="TContainer"/> on which this method is called.</param>
            <param name="name">The name.</param>
            <param name="baseRoute">The base route of the module.</param>
            <param name="configure">A callback used to configure the newly-created <see cref="T:EmbedIO.WebApi.WebApiModule"/>.</param>
            <returns><paramref name="this"/> with a <see cref="T:EmbedIO.Routing.RoutingModule"/> added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="configure"/> is <see langword="null"/>.</exception>
            <seealso cref="T:EmbedIO.WebApi.WebApiModule"/>
            <seealso cref="T:EmbedIO.WebApi.WebApiModuleExtensions"/>
            <seealso cref="P:EmbedIO.IWebModuleContainer.Modules"/>
            <seealso cref="M:EmbedIO.Utilities.IComponentCollection`1.Add(System.String,`0)"/>
        </member>
        <member name="M:EmbedIO.WebModuleContainerExtensions.WithWebApi``1(``0,System.String,System.String,EmbedIO.ResponseSerializerCallback,System.Action{EmbedIO.WebApi.WebApiModule})">
            <summary>
            Creates an instance of <see cref="T:EmbedIO.WebApi.WebApiModule"/>, using the specified response serializer
            and adds it to a module container, giving it the specified <paramref name="name"/>
            if not <see langword="null"/>
            </summary>
            <typeparam name="TContainer">The type of the module container.</typeparam>
            <param name="this">The <typeparamref name="TContainer"/> on which this method is called.</param>
            <param name="name">The name.</param>
            <param name="baseRoute">The base route of the module.</param>
            <param name="serializer">A <see cref="T:EmbedIO.ResponseSerializerCallback"/> used to serialize
            the result of controller methods returning <see langword="object"/>
            or <see cref="T:System.Threading.Tasks.Task`1">Task&lt;object&gt;</see>.</param>
            <param name="configure">A callback used to configure the newly-created <see cref="T:EmbedIO.WebApi.WebApiModule"/>.</param>
            <returns><paramref name="this"/> with a <see cref="T:EmbedIO.Routing.RoutingModule"/> added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="serializer"/> is <see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="configure"/> is <see langword="null"/>.</para>
            </exception>
            <seealso cref="T:EmbedIO.WebApi.WebApiModule"/>
            <seealso cref="T:EmbedIO.WebApi.WebApiModuleExtensions"/>
            <seealso cref="P:EmbedIO.IWebModuleContainer.Modules"/>
            <seealso cref="M:EmbedIO.Utilities.IComponentCollection`1.Add(System.String,`0)"/>
        </member>
        <member name="M:EmbedIO.WebModuleContainerExtensions.WithModule``1(``0,EmbedIO.IWebModule)">
            <summary>
            Adds the specified <paramref name="module"/> to a module container, without giving it a name.
            </summary>
            <typeparam name="TContainer">The type of the module container.</typeparam>
            <param name="this">The <typeparamref name="TContainer"/> on which this method is called.</param>
            <param name="module">The module.</param>
            <returns><paramref name="this"/> with <paramref name="module"/> added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <seealso cref="P:EmbedIO.IWebModuleContainer.Modules"/>
            <seealso cref="M:EmbedIO.Utilities.IComponentCollection`1.Add(System.String,`0)"/>
        </member>
        <member name="M:EmbedIO.WebModuleContainerExtensions.WithModule``1(``0,System.String,EmbedIO.IWebModule)">
            <summary>
            Adds the specified <paramref name="module"/> to a module container,
            giving it the specified <paramref name="name"/> if not <see langword="null"/>.
            </summary>
            <typeparam name="TContainer">The type of the module container.</typeparam>
            <param name="this">The <typeparamref name="TContainer"/> on which this method is called.</param>
            <param name="name">The name.</param>
            <param name="module">The module.</param>
            <returns><paramref name="this"/> with <paramref name="module"/> added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <seealso cref="P:EmbedIO.IWebModuleContainer.Modules"/>
            <seealso cref="M:EmbedIO.Utilities.IComponentCollection`1.Add(System.String,`0)"/>
        </member>
        <member name="M:EmbedIO.WebModuleContainerExtensions.WithModule``2(``0,``1,System.Action{``1})">
            <summary>
            Adds the specified <paramref name="module"/> to a module container, without giving it a name.
            </summary>
            <typeparam name="TContainer">The type of the module container.</typeparam>
            <typeparam name="TWebModule">The type of the <paramref name="module"/>.</typeparam>
            <param name="this">The <typeparamref name="TContainer"/> on which this method is called.</param>
            <param name="module">The module.</param>
            <param name="configure">A callback used to configure the <paramref name="module"/>.</param>
            <returns><paramref name="this"/> with <paramref name="module"/> added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <seealso cref="P:EmbedIO.IWebModuleContainer.Modules"/>
            <seealso cref="M:EmbedIO.Utilities.IComponentCollection`1.Add(System.String,`0)"/>
        </member>
        <member name="M:EmbedIO.WebModuleContainerExtensions.WithModule``2(``0,System.String,``1,System.Action{``1})">
            <summary>
            Adds the specified <paramref name="module"/> to a module container,
            giving it the specified <paramref name="name"/> if not <see langword="null"/>.
            </summary>
            <typeparam name="TContainer">The type of the module container.</typeparam>
            <typeparam name="TWebModule">The type of the <paramref name="module"/>.</typeparam>
            <param name="this">The <typeparamref name="TContainer"/> on which this method is called.</param>
            <param name="name">The name.</param>
            <param name="module">The module.</param>
            <param name="configure">A callback used to configure the <paramref name="module"/>.</param>
            <returns><paramref name="this"/> with <paramref name="module"/> added.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <seealso cref="P:EmbedIO.IWebModuleContainer.Modules"/>
            <seealso cref="M:EmbedIO.Utilities.IComponentCollection`1.Add(System.String,`0)"/>
        </member>
        <member name="T:EmbedIO.WebModuleExtensions">
            <summary>
            Provides extension methods for types implementing <see cref="T:EmbedIO.IWebModule"/>.
            </summary>
        </member>
        <member name="M:EmbedIO.WebModuleExtensions.HandleHttpException``1(``0,EmbedIO.HttpExceptionHandlerCallback)">
            <summary>
            Sets the HTTP exception handler on an <see cref="T:EmbedIO.IWebModule" />.
            </summary>
            <typeparam name="TWebModule">The type of the web server.</typeparam>
            <param name="this">The <typeparamref name="TWebModule" /> on which this method is called.</param>
            <param name="handler">The HTTP exception handler.</param>
            <returns><paramref name="this"/> with the <see cref="P:EmbedIO.IWebModule.OnHttpException">OnHttpException</see>
            property set to <paramref name="handler" />.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this" /> is <see langword="null" />.</exception>
            <exception cref="T:System.InvalidOperationException">The module's configuration is locked.</exception>
            <seealso cref="P:EmbedIO.IWebModule.OnHttpException" />
            <seealso cref="T:EmbedIO.HttpExceptionHandler" />
        </member>
        <member name="M:EmbedIO.WebModuleExtensions.HandleUnhandledException``1(``0,EmbedIO.ExceptionHandlerCallback)">
            <summary>
            Sets the unhandled exception handler on an <see cref="T:EmbedIO.IWebModule" />.
            </summary>
            <typeparam name="TWebModule">The type of the web server.</typeparam>
            <param name="this">The <typeparamref name="TWebModule" /> on which this method is called.</param>
            <param name="handler">The unhandled exception handler.</param>
            <returns><paramref name="this"/> with the <see cref="P:EmbedIO.IWebModule.OnUnhandledException">OnUnhandledException</see>
            property set to <paramref name="handler" />.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this" /> is <see langword="null" />.</exception>
            <exception cref="T:System.InvalidOperationException">The module's configuration is locked.</exception>
            <seealso cref="P:EmbedIO.IWebModule.OnUnhandledException" />
            <seealso cref="T:EmbedIO.ExceptionHandler" />
        </member>
        <member name="T:EmbedIO.WebServer">
            <summary>
            <para>EmbedIO's web server. This is the default implementation of <see cref="T:EmbedIO.IWebServer"/>.</para>
            <para>This class also contains some useful constants related to EmbedIO's internal working.</para>
            </summary>
        </member>
        <member name="F:EmbedIO.WebServer.StreamCopyBufferSize">
            <summary>
            <para>The size, in bytes,of buffers used to transfer contents between streams.</para>
            <para>The value of this constant is the same as the default used by the
            <see cref="M:System.IO.Stream.CopyToAsync(System.IO.Stream)"/> method. For the reasons why this value was chosen, see
            <see href="https://referencesource.microsoft.com/#mscorlib/system/io/stream.cs,50">.NET Framework reference source</see>.</para>
            </summary>
        </member>
        <member name="F:EmbedIO.WebServer.UriSchemeNull">
            <summary>
            <para>The scheme of <see cref="F:EmbedIO.WebServer.NullUri"/>.</para>
            </summary>
        </member>
        <member name="F:EmbedIO.WebServer.Signature">
            <summary>
            The signature string included in <c>Server</c> response headers.
            </summary>
        </member>
        <member name="F:EmbedIO.WebServer.Utf8NoBomEncoding">
            <summary>
            <para>An <see cref="T:System.Text.Encoding"/> that can be used to send UTF-8 responses without a byte order mark (BOM).</para>
            <para>This is the default encoding used by <see cref="T:EmbedIO.WebServer"/> and should be used instead of <see cref="P:System.Text.Encoding.UTF8"/>
            when specifying an encoding for <see cref="M:EmbedIO.HttpContextExtensions.OpenResponseText(EmbedIO.IHttpContext,System.Text.Encoding,System.Boolean,System.Boolean)"/>.</para>
            </summary>
        </member>
        <member name="F:EmbedIO.WebServer.DefaultEncoding">
            <summary>
            <para>The default encoding that is both assumed for requests that do not specify an encoding,
            and used for responses when an encoding is not specified.</para>
            <para>This is the same as <see cref="F:EmbedIO.WebServer.Utf8NoBomEncoding"/>.</para>
            </summary>
        </member>
        <member name="F:EmbedIO.WebServer.NullUri">
            <summary>
            <para>An <see cref="T:System.Uri"/> which cannot be equal to any HTTP / HTTP URI.</para>
            <para>Used as the default value for non-nullable properties of type <see cref="T:System.Uri"/>.</para>
            </summary>
        </member>
        <member name="M:EmbedIO.WebServer.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:EmbedIO.WebServer"/> class,
            that will respond on HTTP port 80 on all network interfaces.
            </summary>
        </member>
        <member name="M:EmbedIO.WebServer.#ctor(System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:EmbedIO.WebServer"/> class,
            that will respond on the specified HTTP port on all network interfaces.
            </summary>
            <param name="port">The port.</param>
        </member>
        <member name="M:EmbedIO.WebServer.#ctor(System.String[])">
            <summary>
            Initializes a new instance of the <see cref="T:EmbedIO.WebServer"/> class
            with the specified URL prefixes.
            </summary>
            <param name="urlPrefixes">The URL prefixes to configure.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="urlPrefixes"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentException">
            <para>One or more of the elements of <paramref name="urlPrefixes"/> is the empty string.</para>
            <para>- or -</para>
            <para>One or more of the elements of <paramref name="urlPrefixes"/> is already registered.</para>
            </exception>
        </member>
        <member name="M:EmbedIO.WebServer.#ctor(EmbedIO.HttpListenerMode,System.String[])">
            <summary>
            Initializes a new instance of the <see cref="T:EmbedIO.WebServer" /> class.
            </summary>
            <param name="mode">The type of HTTP listener to configure.</param>
            <param name="urlPrefixes">The URL prefixes to configure.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="urlPrefixes"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentException">
            <para>One or more of the elements of <paramref name="urlPrefixes"/> is the empty string.</para>
            <para>- or -</para>
            <para>One or more of the elements of <paramref name="urlPrefixes"/> is already registered.</para>
            </exception>
        </member>
        <member name="M:EmbedIO.WebServer.#ctor(EmbedIO.HttpListenerMode,System.Security.Cryptography.X509Certificates.X509Certificate2,System.String[])">
            <summary>
            Initializes a new instance of the <see cref="T:EmbedIO.WebServer" /> class.
            </summary>
            <param name="mode">The type of HTTP listener to configure.</param>
            <param name="certificate">The X.509 certificate to use for SSL connections.</param>
            <param name="urlPrefixes">The URL prefixes to configure.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="urlPrefixes"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentException">
            <para>One or more of the elements of <paramref name="urlPrefixes"/> is the empty string.</para>
            <para>- or -</para>
            <para>One or more of the elements of <paramref name="urlPrefixes"/> is already registered.</para>
            </exception>
        </member>
        <member name="M:EmbedIO.WebServer.#ctor(EmbedIO.WebServerOptions)">
            <summary>
            Initializes a new instance of the <see cref="T:EmbedIO.WebServer"/> class.
            </summary>
            <param name="options">A <see cref="T:EmbedIO.WebServerOptions"/> object used to configure this instance.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="options"/> is <see langword="null"/>.</exception>
        </member>
        <member name="M:EmbedIO.WebServer.#ctor(System.Action{EmbedIO.WebServerOptions})">
            <summary>
            Initializes a new instance of the <see cref="T:EmbedIO.WebServer"/> class.
            </summary>
            <param name="configure">A callback that will be used to configure
            the server's options.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="configure"/> is <see langword="null"/>.</exception>
        </member>
        <member name="P:EmbedIO.WebServer.Listener">
            <summary>
            Gets the underlying HTTP listener.
            </summary>
        </member>
        <member name="M:EmbedIO.WebServer.Dispose(System.Boolean)">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.WebServer.Prepare(System.Threading.CancellationToken)">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.WebServer.ProcessRequestsAsync(System.Threading.CancellationToken)">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.WebServer.OnFatalException">
            <inheritdoc />
        </member>
        <member name="T:EmbedIO.WebServerBase`1">
            <summary>
            Base class for <see cref="T:EmbedIO.IWebServer" /> implementations.
            </summary>
            <typeparam name="TOptions">The type of the options object used to configure an instance.</typeparam>
            <seealso cref="T:EmbedIO.IHttpContextHandler" />
            <seealso cref="T:EmbedIO.IWebServer" />
        </member>
        <member name="M:EmbedIO.WebServerBase`1.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:EmbedIO.WebServerBase`1" /> class.
            </summary>
        </member>
        <member name="M:EmbedIO.WebServerBase`1.#ctor(`0)">
            <summary>
            Initializes a new instance of the <see cref="T:EmbedIO.WebServerBase`1" /> class.
            </summary>
            <param name="options">A <typeparamref name="TOptions"/> instance that will be used
            to configure the server.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="options"/> is <see langword="null"/>.</exception>
        </member>
        <member name="M:EmbedIO.WebServerBase`1.#ctor(System.Action{`0})">
            <summary>
            Initializes a new instance of the <see cref="T:EmbedIO.WebServerBase`1" /> class.
            </summary>
            <param name="configure">A callback that will be used to configure
            the server's options.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="configure"/> is <see langword="null"/>.</exception>
        </member>
        <member name="M:EmbedIO.WebServerBase`1.Finalize">
            <summary>
            Finalizes an instance of the <see cref="T:EmbedIO.WebServerBase`1"/> class.
            </summary>
        </member>
        <member name="E:EmbedIO.WebServerBase`1.StateChanged">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.WebServerBase`1.Modules">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.WebServerBase`1.Options">
            <summary>
            Gets the options object used to configure this instance.
            </summary>
        </member>
        <member name="P:EmbedIO.WebServerBase`1.OnUnhandledException">
            <inheritdoc />
            <exception cref="T:System.InvalidOperationException">The server's configuration is locked.</exception>
            <exception cref="T:System.ArgumentNullException">this property is being set to <see langword="null"/>.</exception>
            <remarks>
            <para>The default value for this property is <see cref="P:EmbedIO.ExceptionHandler.Default"/>.</para>
            </remarks>
            <seealso cref="T:EmbedIO.ExceptionHandler"/>
        </member>
        <member name="P:EmbedIO.WebServerBase`1.OnHttpException">
            <inheritdoc />
            <exception cref="T:System.InvalidOperationException">The server's configuration is locked.</exception>
            <exception cref="T:System.ArgumentNullException">this property is being set to <see langword="null"/>.</exception>
            <remarks>
            <para>The default value for this property is <see cref="P:EmbedIO.HttpExceptionHandler.Default"/>.</para>
            </remarks>
            <seealso cref="T:EmbedIO.HttpExceptionHandler"/>
        </member>
        <member name="P:EmbedIO.WebServerBase`1.SessionManager">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.WebServerBase`1.State">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.WebServerBase`1.LogSource">
            <summary>
            Gets a string to use as a source for log messages.
            </summary>
        </member>
        <member name="M:EmbedIO.WebServerBase`1.HandleContextAsync(EmbedIO.IHttpContextImpl)">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.WebServerBase`1.AddCustomMimeType(System.String,System.String)">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.WebServerBase`1.PreferCompression(System.String,System.Boolean)">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.WebServerBase`1.RunAsync(System.Threading.CancellationToken)">
            <inheritdoc />
            <exception cref="T:System.InvalidOperationException">The method was already called.</exception>
            <exception cref="T:System.OperationCanceledException">Cancellation was requested.</exception>
        </member>
        <member name="M:EmbedIO.WebServerBase`1.Dispose">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.WebServerBase`1.DoHandleContextAsync(EmbedIO.IHttpContextImpl)">
            <summary>
            Asynchronously handles a received request.
            </summary>
            <param name="context">The context of the request.</param>
            <returns>A <see cref="T:System.Threading.Tasks.Task"/> representing the ongoing operation.</returns>
        </member>
        <member name="M:EmbedIO.WebServerBase`1.OnBeforeLockConfiguration">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.WebServerBase`1.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="M:EmbedIO.WebServerBase`1.Prepare(System.Threading.CancellationToken)">
            <summary>
            Prepares a web server for running.
            </summary>
            <param name="cancellationToken">A <see cref="T:System.Threading.CancellationToken"/> used to stop the web server.</param>
        </member>
        <member name="M:EmbedIO.WebServerBase`1.ProcessRequestsAsync(System.Threading.CancellationToken)">
            <summary>
            <para>Asynchronously receives requests and processes them.</para>
            </summary>
            <param name="cancellationToken">A <see cref="T:System.Threading.CancellationToken"/> used to stop the web server.</param>
            <returns>A <see cref="T:System.Threading.Tasks.Task"/> representing the ongoing operation.</returns>
        </member>
        <member name="M:EmbedIO.WebServerBase`1.OnFatalException">
            <summary>
            <para>Called when an exception is caught in the web server's request processing loop.</para>
            <para>This method should tell the server socket to stop accepting further requests.</para>
            </summary>
        </member>
        <member name="T:EmbedIO.WebServerExtensions">
            <summary>
            Provides extension methods for types implementing <see cref="T:EmbedIO.IWebServer"/>.
            </summary>
        </member>
        <member name="M:EmbedIO.WebServerExtensions.HandleHttpException``1(``0,EmbedIO.HttpExceptionHandlerCallback)">
            <summary>
            Sets the HTTP exception handler on an <see cref="T:EmbedIO.IWebServer" />.
            </summary>
            <typeparam name="TWebServer">The type of the web server.</typeparam>
            <param name="this">The <typeparamref name="TWebServer" /> on which this method is called.</param>
            <param name="handler">The HTTP exception handler.</param>
            <returns><paramref name="this"/> with the <see cref="P:EmbedIO.IWebServer.OnHttpException">OnHttpException</see>
            property set to <paramref name="handler" />.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this" /> is <see langword="null" />.</exception>
            <exception cref="T:System.InvalidOperationException">The web server has already been started.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="handler" /> is <see langwrd="null" />.</exception>
            <seealso cref="P:EmbedIO.IWebServer.OnHttpException" />
            <seealso cref="T:EmbedIO.HttpExceptionHandler" />
        </member>
        <member name="M:EmbedIO.WebServerExtensions.HandleUnhandledException``1(``0,EmbedIO.ExceptionHandlerCallback)">
            <summary>
            Sets the unhandled exception handler on an <see cref="T:EmbedIO.IWebServer" />.
            </summary>
            <typeparam name="TWebServer">The type of the web server.</typeparam>
            <param name="this">The <typeparamref name="TWebServer" /> on which this method is called.</param>
            <param name="handler">The unhandled exception handler.</param>
            <returns><paramref name="this"/> with the <see cref="P:EmbedIO.IWebServer.OnUnhandledException">OnUnhandledException</see>
            property set to <paramref name="handler" />.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this" /> is <see langword="null" />.</exception>
            <exception cref="T:System.InvalidOperationException">The web server has already been started.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="handler" /> is <see langwrd="null" />.</exception>
            <seealso cref="P:EmbedIO.IWebServer.OnUnhandledException" />
            <seealso cref="T:EmbedIO.ExceptionHandler" />
        </member>
        <member name="M:EmbedIO.WebServerExtensions.WithSessionManager``1(``0,EmbedIO.Sessions.ISessionManager)">
            <summary>
            Sets the session manager on an <see cref="T:EmbedIO.IWebServer"/>.
            </summary>
            <typeparam name="TWebServer">The type of the web server.</typeparam>
            <param name="this">The <see cref="T:EmbedIO.IWebServer"/> on which this method is called.</param>
            <param name="sessionManager">The session manager.</param>
            <returns><paramref name="this"/> with the session manager set.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.InvalidOperationException">The web server has already been started.</exception>
        </member>
        <member name="M:EmbedIO.WebServerExtensions.WithLocalSessionManager``1(``0,System.Action{EmbedIO.Sessions.LocalSessionManager})">
            <summary>
            <para>Creates a <see cref="T:EmbedIO.Sessions.LocalSessionManager"/> with all properties set to their default values
            and sets it as session manager on an <see cref="T:EmbedIO.IWebServer"/>.</para>
            </summary>
            <typeparam name="TWebServer">The type of the web server.</typeparam>
            <param name="this">The <see cref="T:EmbedIO.IWebServer"/> on which this method is called.</param>
            <param name="configure">A callback used to configure the session manager.</param>
            <returns><paramref name="this"/> with the session manager set.</returns>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.InvalidOperationException">The web server has already been started.</exception>
        </member>
        <member name="M:EmbedIO.WebServerExtensions.Start(EmbedIO.IWebServer,System.Threading.CancellationToken)">
            <summary>
            Starts a web server by calling <see cref="M:EmbedIO.IWebServer.RunAsync(System.Threading.CancellationToken)"/>
            in another thread.
            </summary>
            <param name="this">The <see cref="T:EmbedIO.IWebServer"/> on which this method is called.</param>
            <param name="cancellationToken">A <see cref="T:System.Threading.CancellationToken"/> used to stop the web server.</param>
            <exception cref="T:System.NullReferenceException"><paramref name="this"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.InvalidOperationException">The web server has already been started.</exception>
        </member>
        <member name="T:EmbedIO.WebServerOptions">
            <summary>
            Contains options for configuring an instance of <see cref="T:EmbedIO.WebServer"/>.
            </summary>
        </member>
        <member name="P:EmbedIO.WebServerOptions.UrlPrefixes">
            <summary>
            Gets the URL prefixes.
            </summary>
        </member>
        <member name="P:EmbedIO.WebServerOptions.Mode">
            <summary>
            Gets or sets the type of HTTP listener.
            </summary>
            <exception cref="T:System.InvalidOperationException">This property is being set,
            and this instance's configuration is locked.</exception>
            <seealso cref="T:EmbedIO.HttpListenerMode"/>
        </member>
        <member name="P:EmbedIO.WebServerOptions.Certificate">
            <summary>
            Gets or sets the X.509 certificate to use for SSL connections.
            </summary>
            <exception cref="T:System.InvalidOperationException">This property is being set,
            and this instance's configuration is locked.</exception>
        </member>
        <member name="P:EmbedIO.WebServerOptions.CertificateThumbprint">
            <summary>
            Gets or sets the thumbprint of the X.509 certificate to use for SSL connections.
            </summary>
            <exception cref="T:System.InvalidOperationException">This property is being set,
            and this instance's configuration is locked.</exception>
        </member>
        <member name="P:EmbedIO.WebServerOptions.AutoLoadCertificate">
            <summary>
            Gets or sets a value indicating whether to automatically load the X.509 certificate.
            </summary>
            <exception cref="T:System.InvalidOperationException">This property is being set,
            and this instance's configuration is locked.</exception>
            <exception cref="T:System.PlatformNotSupportedException">This property is being set to <see langword="true"/>
            and the underlying operating system is not Windows.</exception>
        </member>
        <member name="P:EmbedIO.WebServerOptions.AutoRegisterCertificate">
            <summary>
            Gets or sets a value indicating whether to automatically bind the X.509 certificate
            to the port used for HTTPS.
            </summary>
            <exception cref="T:System.InvalidOperationException">This property is being set,
            and this instance's configuration is locked.</exception>
            <exception cref="T:System.PlatformNotSupportedException">This property is being set to <see langword="true"/>
            and the underlying operating system is not Windows.</exception>
        </member>
        <member name="P:EmbedIO.WebServerOptions.StoreName">
            <summary>
            Gets or sets a value indicating the X.509 certificate store where to load the certificate from.
            </summary>
            <exception cref="T:System.InvalidOperationException">This property is being set,
            and this instance's configuration is locked.</exception>
            <seealso cref="T:System.Security.Cryptography.X509Certificates.StoreName"/>
        </member>
        <member name="P:EmbedIO.WebServerOptions.StoreLocation">
            <summary>
            Gets or sets a value indicating the location of the X.509 certificate store where to load the certificate from.
            </summary>
            <exception cref="T:System.InvalidOperationException">This property is being set,
            and this instance's configuration is locked.</exception>
            <seealso cref="T:System.Security.Cryptography.X509Certificates.StoreLocation"/>
        </member>
        <member name="M:EmbedIO.WebServerOptions.AddUrlPrefix(System.String)">
            <summary>
            Adds a URL prefix.
            </summary>
            <param name="urlPrefix">The URL prefix.</param>
            <exception cref="T:System.InvalidOperationException">This instance's configuration is locked.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="urlPrefix"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentException">
            <para><paramref name="urlPrefix"/> is the empty string.</para>
            <para>- or -</para>
            <para><paramref name="urlPrefix"/> is already registered.</para>
            </exception>
        </member>
        <member name="T:EmbedIO.WebServerOptionsBase">
            <summary>
            Base class for web server options.
            </summary>
        </member>
        <member name="P:EmbedIO.WebServerOptionsBase.SupportCompressedRequests">
            <summary>
            <para>Gets or sets a value indicating whether compressed request bodies are supported.</para>
            <para>The default value is <see langword="false"/>, because of the security risk
            posed by <see href="https://en.wikipedia.org/wiki/Zip_bomb">decompression bombs</see>.</para>
            </summary>
            <exception cref="T:System.InvalidOperationException">This property is being set and this instance's
            configuration is locked.</exception>
        </member>
        <member name="M:EmbedIO.WebServerOptionsBase.Lock">
            <summary>
            Locks this instance, preventing further configuration.
            </summary>
        </member>
        <member name="T:EmbedIO.WebServerOptionsBaseExtensions">
            <summary>
            Provides extension methods for classes derived from <see cref="T:EmbedIO.WebServerOptionsBase"/>.
            </summary>
        </member>
        <member name="M:EmbedIO.WebServerOptionsBaseExtensions.WithSupportCompressedRequests``1(``0,System.Boolean)">
            <summary>
            Adds a URL prefix.
            </summary>
            <typeparam name="TOptions">The type of the object on which this method is called.</typeparam>
            <param name="this">The object on which this method is called.</param>
            <param name="value">If <see langword="true"/>, enable support for compressed request bodies.</param>
            <returns><paramref name="this"/> with its <see cref="P:EmbedIO.WebServerOptionsBase.SupportCompressedRequests">SupportCompressedRequests</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>
        </member>
        <member name="T:EmbedIO.WebServerOptionsExtensions">
            <summary>
            Provides extension methods for <see cref="T:EmbedIO.WebServerOptions"/>.
            </summary>
        </member>
        <member name="M:EmbedIO.WebServerOptionsExtensions.WithUrlPrefix(EmbedIO.WebServerOptions,System.String)">
            <summary>
            Adds a URL prefix.
            </summary>
            <param name="this">The <see cref="T:EmbedIO.WebServerOptions"/> on which this method is called.</param>
            <param name="urlPrefix">The URL prefix.</param>
            <returns><paramref name="this"/> with <paramref name="urlPrefix"/> added.</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="urlPrefix"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentException">
            <para><paramref name="urlPrefix"/> is the empty string.</para>
            <para>- or -</para>
            <para><paramref name="urlPrefix"/> is already registered.</para>
            </exception>
        </member>
        <member name="M:EmbedIO.WebServerOptionsExtensions.WithUrlPrefixes(EmbedIO.WebServerOptions,System.Collections.Generic.IEnumerable{System.String})">
            <summary>
            Adds zero or more URL prefixes.
            </summary>
            <param name="this">The <see cref="T:EmbedIO.WebServerOptions"/> on which this method is called.</param>
            <param name="urlPrefixes">An enumeration of URL prefixes to add.</param>
            <returns><paramref name="this"/> with every non-<see langword="null"/> element
            of <paramref name="urlPrefixes"/> added.</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="urlPrefixes"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentException">
            <para>One or more of the elements of <paramref name="urlPrefixes"/> is the empty string.</para>
            <para>- or -</para>
            <para>One or more of the elements of <paramref name="urlPrefixes"/> is already registered.</para>
            </exception>
        </member>
        <member name="M:EmbedIO.WebServerOptionsExtensions.WithUrlPrefixes(EmbedIO.WebServerOptions,System.String[])">
            <summary>
            Adds zero or more URL prefixes.
            </summary>
            <param name="this">The <see cref="T:EmbedIO.WebServerOptions"/> on which this method is called.</param>
            <param name="urlPrefixes">An array of URL prefixes to add.</param>
            <returns><paramref name="this"/> with every non-<see langword="null"/> element
            of <paramref name="urlPrefixes"/> added.</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="urlPrefixes"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentException">
            <para>One or more of the elements of <paramref name="urlPrefixes"/> is the empty string.</para>
            <para>- or -</para>
            <para>One or more of the elements of <paramref name="urlPrefixes"/> is already registered.</para>
            </exception>
        </member>
        <member name="M:EmbedIO.WebServerOptionsExtensions.WithMode(EmbedIO.WebServerOptions,EmbedIO.HttpListenerMode)">
            <summary>
            Sets the type of HTTP listener.
            </summary>
            <param name="this">The <see cref="T:EmbedIO.WebServerOptions"/> on which this method is called.</param>
            <param name="value">The type of HTTP listener.</param>
            <returns><paramref name="this"/> with its <see cref="P:EmbedIO.WebServerOptions.Mode">Mode</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>
        </member>
        <member name="M:EmbedIO.WebServerOptionsExtensions.WithEmbedIOHttpListener(EmbedIO.WebServerOptions)">
            <summary>
            Sets the type of HTTP listener to <see cref="F:EmbedIO.HttpListenerMode.EmbedIO"/>.
            </summary>
            <param name="this">The <see cref="T:EmbedIO.WebServerOptions"/> on which this method is called.</param>
            <returns><paramref name="this"/> with its <see cref="P:EmbedIO.WebServerOptions.Mode">Mode</see> property
            set to <see cref="F:EmbedIO.HttpListenerMode.EmbedIO"/>.</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>
        </member>
        <member name="M:EmbedIO.WebServerOptionsExtensions.WithMicrosoftHttpListener(EmbedIO.WebServerOptions)">
            <summary>
            Sets the type of HTTP listener to <see cref="F:EmbedIO.HttpListenerMode.Microsoft"/>.
            </summary>
            <param name="this">The <see cref="T:EmbedIO.WebServerOptions"/> on which this method is called.</param>
            <returns><paramref name="this"/> with its <see cref="P:EmbedIO.WebServerOptions.Mode">Mode</see> property
            set to <see cref="F:EmbedIO.HttpListenerMode.Microsoft"/>.</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>
        </member>
        <member name="M:EmbedIO.WebServerOptionsExtensions.WithCertificate(EmbedIO.WebServerOptions,System.Security.Cryptography.X509Certificates.X509Certificate2)">
            <summary>
            Sets the X.509 certificate to use for SSL connections.
            </summary>
            <param name="this">The <see cref="T:EmbedIO.WebServerOptions"/> on which this method is called.</param>
            <param name="value">The X.509 certificate to use for SSL connections.</param>
            <returns><paramref name="this"/> with its <see cref="P:EmbedIO.WebServerOptions.Certificate">Certificate</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>
        </member>
        <member name="M:EmbedIO.WebServerOptionsExtensions.WithCertificateThumbprint(EmbedIO.WebServerOptions,System.String)">
            <summary>
            Sets the thumbprint of the X.509 certificate to use for SSL connections.
            </summary>
            <param name="this">The <see cref="T:EmbedIO.WebServerOptions"/> on which this method is called.</param>
            <param name="value">The thumbprint of the X.509 certificate to use for SSL connections.</param>
            <returns><paramref name="this"/> with its <see cref="P:EmbedIO.WebServerOptions.CertificateThumbprint">CertificateThumbprint</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>
        </member>
        <member name="M:EmbedIO.WebServerOptionsExtensions.WithAutoLoadCertificate(EmbedIO.WebServerOptions,System.Boolean)">
            <summary>
            Sets a value indicating whether to automatically load the X.509 certificate.
            </summary>
            <param name="this">The <see cref="T:EmbedIO.WebServerOptions"/> on which this method is called.</param>
            <param name="value">If <see langword="true"/>, automatically load the X.509 certificate.</param>
            <returns><paramref name="this"/> with its <see cref="P:EmbedIO.WebServerOptions.AutoLoadCertificate">AutoLoadCertificate</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.PlatformNotSupportedException"><paramref name="value "/> is <see langword="true"/>
            and the underlying operating system is not Windows.</exception>
        </member>
        <member name="M:EmbedIO.WebServerOptionsExtensions.WithAutoLoadCertificate(EmbedIO.WebServerOptions)">
            <summary>
            Instructs a <see cref="T:EmbedIO.WebServerOptions"/> instance to automatically load the X.509 certificate.
            </summary>
            <param name="this">The <see cref="T:EmbedIO.WebServerOptions"/> on which this method is called.</param>
            <returns><paramref name="this"/> with its <see cref="P:EmbedIO.WebServerOptions.AutoLoadCertificate">AutoLoadCertificate</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>
            <exception cref="T:System.PlatformNotSupportedException">The underlying operating system is not Windows.</exception>
        </member>
        <member name="M:EmbedIO.WebServerOptionsExtensions.WithoutAutoLoadCertificate(EmbedIO.WebServerOptions)">
            <summary>
            Instructs a <see cref="T:EmbedIO.WebServerOptions"/> instance to not load the X.509 certificate automatically .
            </summary>
            <param name="this">The <see cref="T:EmbedIO.WebServerOptions"/> on which this method is called.</param>
            <returns><paramref name="this"/> with its <see cref="P:EmbedIO.WebServerOptions.AutoLoadCertificate">AutoLoadCertificate</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>
        </member>
        <member name="M:EmbedIO.WebServerOptionsExtensions.WithAutoRegisterCertificate(EmbedIO.WebServerOptions,System.Boolean)">
            <summary>
            Sets a value indicating whether to automatically bind the X.509 certificate
            to the port used for HTTPS.
            </summary>
            <param name="this">The <see cref="T:EmbedIO.WebServerOptions"/> on which this method is called.</param>
            <param name="value">If <see langword="true"/>, automatically bind the X.509 certificate
            to the port used for HTTPS.</param>
            <returns><paramref name="this"/> with its <see cref="P:EmbedIO.WebServerOptions.AutoRegisterCertificate">AutoRegisterCertificate</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.PlatformNotSupportedException"><paramref name="value "/> is <see langword="true"/>
            and the underlying operating system is not Windows.</exception>
        </member>
        <member name="M:EmbedIO.WebServerOptionsExtensions.WithAutoRegisterCertificate(EmbedIO.WebServerOptions)">
            <summary>
            Instructs a <see cref="T:EmbedIO.WebServerOptions"/> instance to automatically bind the X.509 certificate
            to the port used for HTTPS.
            </summary>
            <param name="this">The <see cref="T:EmbedIO.WebServerOptions"/> on which this method is called.</param>
            <returns><paramref name="this"/> with its <see cref="P:EmbedIO.WebServerOptions.AutoRegisterCertificate">AutoRegisterCertificate</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>
            <exception cref="T:System.PlatformNotSupportedException">The underlying operating system is not Windows.</exception>
        </member>
        <member name="M:EmbedIO.WebServerOptionsExtensions.WithoutAutoRegisterCertificate(EmbedIO.WebServerOptions)">
            <summary>
            Instructs a <see cref="T:EmbedIO.WebServerOptions"/> instance to not bind the X.509 certificate automatically.
            </summary>
            <param name="this">The <see cref="T:EmbedIO.WebServerOptions"/> on which this method is called.</param>
            <returns><paramref name="this"/> with its <see cref="P:EmbedIO.WebServerOptions.AutoRegisterCertificate">AutoRegisterCertificate</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>
        </member>
        <member name="M:EmbedIO.WebServerOptionsExtensions.WithStoreName(EmbedIO.WebServerOptions,System.Security.Cryptography.X509Certificates.StoreName)">
            <summary>
            Sets a value indicating the X.509 certificate store where to load the certificate from.
            </summary>
            <param name="this">The <see cref="T:EmbedIO.WebServerOptions"/> on which this method is called.</param>
            <param name="value">One of the <see cref="T:System.Security.Cryptography.X509Certificates.StoreName"/> constants.</param>
            <returns><paramref name="this"/> with its <see cref="P:EmbedIO.WebServerOptions.StoreName">StoreName</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="T:System.Security.Cryptography.X509Certificates.StoreName"/>
        </member>
        <member name="M:EmbedIO.WebServerOptionsExtensions.WithStoreLocation(EmbedIO.WebServerOptions,System.Security.Cryptography.X509Certificates.StoreLocation)">
            <summary>
            Sets a value indicating the location of the X.509 certificate store where to load the certificate from.
            </summary>
            <param name="this">The <see cref="T:EmbedIO.WebServerOptions"/> on which this method is called.</param>
            <param name="value">One of the <see cref="T:System.Security.Cryptography.X509Certificates.StoreLocation"/> constants.</param>
            <returns><paramref name="this"/> with its <see cref="P:EmbedIO.WebServerOptions.StoreLocation">StoreLocation</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="T:System.Security.Cryptography.X509Certificates.StoreLocation"/>
        </member>
        <member name="M:EmbedIO.WebServerOptionsExtensions.WithStore(EmbedIO.WebServerOptions,System.Security.Cryptography.X509Certificates.StoreName,System.Security.Cryptography.X509Certificates.StoreLocation)">
            <summary>
            Sets the name and location of the X.509 certificate store where to load the certificate from.
            </summary>
            <param name="this">The <see cref="T:EmbedIO.WebServerOptions"/> on which this method is called.</param>
            <param name="name">One of the <see cref="T:System.Security.Cryptography.X509Certificates.StoreName"/> constants.</param>
            <param name="location">One of the <see cref="T:System.Security.Cryptography.X509Certificates.StoreLocation"/> constants.</param>
            <returns><paramref name="this"/> with its <see cref="P:EmbedIO.WebServerOptions.StoreName">StoreName</see> property
            set to <paramref name="name"/> and its <see cref="P:EmbedIO.WebServerOptions.StoreLocation">StoreLocation</see> property
            set to <paramref name="location"/>.</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="T:System.Security.Cryptography.X509Certificates.StoreName"/>
            <seealso cref="T:System.Security.Cryptography.X509Certificates.StoreLocation"/>
        </member>
        <member name="T:EmbedIO.WebServerState">
            <summary>
            Represents the state of a web server.
            </summary>
        </member>
        <member name="F:EmbedIO.WebServerState.Created">
            <summary>
            The web server has not been started yet.
            </summary>
        </member>
        <member name="F:EmbedIO.WebServerState.Loading">
            <summary>
            The web server has been started but it is still initializing.
            </summary>
        </member>
        <member name="F:EmbedIO.WebServerState.Listening">
            <summary>
            The web server is ready to accept incoming requests.
            </summary>
        </member>
        <member name="F:EmbedIO.WebServerState.Stopped">
            <summary>
            The web server has been stopped.
            </summary>
        </member>
        <member name="T:EmbedIO.WebServerStateChangedEventArgs">
            <summary>
            Represents event arguments whenever the state of a web server changes.
            </summary>
        </member>
        <member name="M:EmbedIO.WebServerStateChangedEventArgs.#ctor(EmbedIO.WebServerState,EmbedIO.WebServerState)">
            <summary>
            Initializes a new instance of the <see cref="T:EmbedIO.WebServerStateChangedEventArgs"/> class.
            </summary>
            <param name="oldState">The old state.</param>
            <param name="newState">The new state.</param>
        </member>
        <member name="P:EmbedIO.WebServerStateChangedEventArgs.NewState">
            <summary>
            Gets the state to which the application service changed.
            </summary>
        </member>
        <member name="P:EmbedIO.WebServerStateChangedEventArgs.OldState">
            <summary>
            Gets the old state.
            </summary>
        </member>
        <member name="T:EmbedIO.WebServerStateChangedEventHandler">
            <summary>
            An event handler that is called whenever the state of a web server is changed.
            </summary>
            <param name="sender">The sender.</param>
            <param name="e">The <see cref="T:EmbedIO.WebServerStateChangedEventArgs"/> instance containing the event data.</param>
        </member>
        <member name="T:EmbedIO.WebSockets.CloseStatusCode">
            <summary>
            Indicates the status code for the WebSocket connection close.
            </summary>
            <remarks>
              <para>
              The values of this enumeration are defined in
              <see href="http://tools.ietf.org/html/rfc6455#section-7.4">Section 7.4</see> of RFC 6455.
              </para>
              <para>
              "Reserved value" must not be set as a status code in a connection close frame by
              an endpoint. It's designated for use in applications expecting a status code to
              indicate that the connection was closed due to the system grounds.
              </para>
            </remarks>
        </member>
        <member name="F:EmbedIO.WebSockets.CloseStatusCode.Normal">
            <summary>
            Equivalent to close status 1000. Indicates normal close.
            </summary>
        </member>
        <member name="F:EmbedIO.WebSockets.CloseStatusCode.Away">
            <summary>
            Equivalent to close status 1001. Indicates that an endpoint is going away.
            </summary>
        </member>
        <member name="F:EmbedIO.WebSockets.CloseStatusCode.ProtocolError">
            <summary>
            Equivalent to close status 1002. Indicates that an endpoint is terminating
            the connection due to a protocol error.
            </summary>
        </member>
        <member name="F:EmbedIO.WebSockets.CloseStatusCode.UnsupportedData">
            <summary>
            Equivalent to close status 1003. Indicates that an endpoint is terminating
            the connection because it has received a type of data that it cannot accept.
            </summary>
        </member>
        <member name="F:EmbedIO.WebSockets.CloseStatusCode.Undefined">
            <summary>
            Equivalent to close status 1004. Still undefined. A Reserved value.
            </summary>
        </member>
        <member name="F:EmbedIO.WebSockets.CloseStatusCode.NoStatus">
            <summary>
            Equivalent to close status 1005. Indicates that no status code was actually present.
            A Reserved value.
            </summary>
        </member>
        <member name="F:EmbedIO.WebSockets.CloseStatusCode.Abnormal">
            <summary>
            Equivalent to close status 1006. Indicates that the connection was closed abnormally.
            A Reserved value.
            </summary>
        </member>
        <member name="F:EmbedIO.WebSockets.CloseStatusCode.InvalidData">
            <summary>
            Equivalent to close status 1007. Indicates that an endpoint is terminating
            the connection because it has received a message that contains data that
            isn't consistent with the type of the message.
            </summary>
        </member>
        <member name="F:EmbedIO.WebSockets.CloseStatusCode.PolicyViolation">
            <summary>
            Equivalent to close status 1008. Indicates that an endpoint is terminating
            the connection because it has received a message that violates its policy.
            </summary>
        </member>
        <member name="F:EmbedIO.WebSockets.CloseStatusCode.TooBig">
            <summary>
            Equivalent to close status 1009. Indicates that an endpoint is terminating
            the connection because it has received a message that is too big to process.
            </summary>
        </member>
        <member name="F:EmbedIO.WebSockets.CloseStatusCode.MandatoryExtension">
            <summary>
            Equivalent to close status 1010. Indicates that a client is terminating
            the connection because it has expected the server to negotiate one or more extension,
            but the server didn't return them in the handshake response.
            </summary>
        </member>
        <member name="F:EmbedIO.WebSockets.CloseStatusCode.ServerError">
            <summary>
            Equivalent to close status 1011. Indicates that a server is terminating
            the connection because it has encountered an unexpected condition that
            prevented it from fulfilling the request.
            </summary>
        </member>
        <member name="F:EmbedIO.WebSockets.CloseStatusCode.TlsHandshakeFailure">
            <summary>
            Equivalent to close status 1015. Indicates that the connection was closed
            due to a failure to perform a TLS handshake. A Reserved value.
            </summary>
        </member>
        <member name="T:EmbedIO.WebSockets.Internal.Fin">
            <summary>
            Indicates whether a WebSocket frame is the final frame of a message.
            </summary>
            <remarks>
            The values of this enumeration are defined in
            <see href="http://tools.ietf.org/html/rfc6455#section-5.2">Section 5.2</see> of RFC 6455.
            </remarks>
        </member>
        <member name="F:EmbedIO.WebSockets.Internal.Fin.More">
            <summary>
            Equivalent to numeric value 0. Indicates more frames of a message follow.
            </summary>
        </member>
        <member name="F:EmbedIO.WebSockets.Internal.Fin.Final">
            <summary>
            Equivalent to numeric value 1. Indicates the final frame of a message.
            </summary>
        </member>
        <member name="T:EmbedIO.WebSockets.Internal.Mask">
            <summary>
            Indicates whether the payload data of a WebSocket frame is masked.
            </summary>
            <remarks>
            The values of this enumeration are defined in
            <see href="http://tools.ietf.org/html/rfc6455#section-5.2">Section 5.2</see> of RFC 6455.
            </remarks>
        </member>
        <member name="F:EmbedIO.WebSockets.Internal.Mask.Off">
            <summary>
            Equivalent to numeric value 0. Indicates not masked.
            </summary>
        </member>
        <member name="F:EmbedIO.WebSockets.Internal.Mask.On">
            <summary>
            Equivalent to numeric value 1. Indicates masked.
            </summary>
        </member>
        <member name="T:EmbedIO.WebSockets.Internal.MessageEventArgs">
            <summary>
            Represents the event data for the <see cref="E:EmbedIO.WebSockets.Internal.WebSocket.OnMessage"/> event.
            </summary>
            <remarks>
              <para>
              That event occurs when the <see cref="T:EmbedIO.WebSockets.Internal.WebSocket"/> receives
              a message or a ping if the <see cref="P:EmbedIO.WebSockets.Internal.WebSocket.EmitOnPing"/>
              property is set to <c>true</c>.
              </para>
              <para>
              If you would like to get the message data, you should access
              the <see cref="P:EmbedIO.WebSockets.Internal.MessageEventArgs.Data"/> or <see cref="P:EmbedIO.WebSockets.Internal.MessageEventArgs.RawData"/> property.
              </para>
            </remarks>
        </member>
        <member name="P:EmbedIO.WebSockets.Internal.MessageEventArgs.Data">
            <summary>
            Gets the message data as a <see cref="T:System.String"/>.
            </summary>
            <value>
            A <see cref="T:System.String"/> that represents the message data if its type is
            text or ping and if decoding it to a string has successfully done;
            otherwise, <see langword="null"/>.
            </value>
        </member>
        <member name="P:EmbedIO.WebSockets.Internal.MessageEventArgs.IsBinary">
            <summary>
            Gets a value indicating whether the message type is binary.
            </summary>
            <value>
            <c>true</c> if the message type is binary; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:EmbedIO.WebSockets.Internal.MessageEventArgs.IsPing">
            <summary>
            Gets a value indicating whether the message type is ping.
            </summary>
            <value>
            <c>true</c> if the message type is ping; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:EmbedIO.WebSockets.Internal.MessageEventArgs.IsText">
            <summary>
            Gets a value indicating whether the message type is text.
            </summary>
            <value>
            <c>true</c> if the message type is text; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:EmbedIO.WebSockets.Internal.MessageEventArgs.RawData">
            <summary>
            Gets the message data as an array of <see cref="T:System.Byte"/>.
            </summary>
            <value>
            An array of <see cref="T:System.Byte"/> that represents the message data.
            </value>
        </member>
        <member name="T:EmbedIO.WebSockets.Internal.Rsv">
            <summary>
            Indicates whether each RSV (RSV1, RSV2, and RSV3) of a WebSocket frame is non-zero.
            </summary>
            <remarks>
            The values of this enumeration are defined in
            <see href="http://tools.ietf.org/html/rfc6455#section-5.2">Section 5.2</see> of RFC 6455.
            </remarks>
        </member>
        <member name="F:EmbedIO.WebSockets.Internal.Rsv.Off">
            <summary>
            Equivalent to numeric value 0. Indicates zero.
            </summary>
        </member>
        <member name="F:EmbedIO.WebSockets.Internal.Rsv.On">
            <summary>
            Equivalent to numeric value 1. Indicates non-zero.
            </summary>
        </member>
        <member name="M:EmbedIO.WebSockets.Internal.SystemWebSocket.SendAsync(System.Byte[],System.Boolean,System.Threading.CancellationToken)">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.WebSockets.Internal.SystemWebSocket.CloseAsync(System.Threading.CancellationToken)">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.WebSockets.Internal.SystemWebSocket.CloseAsync(EmbedIO.WebSockets.CloseStatusCode,System.String,System.Threading.CancellationToken)">
            <inheritdoc />
        </member>
        <member name="T:EmbedIO.WebSockets.Internal.SystemWebSocketReceiveResult">
            <summary>
            Represents a wrapper around a regular WebSocketContext.
            </summary>
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.WebSockets.Internal.SystemWebSocketReceiveResult.#ctor(System.Net.WebSockets.WebSocketReceiveResult)">
            <summary>
            Initializes a new instance of the <see cref="T:EmbedIO.WebSockets.Internal.SystemWebSocketReceiveResult"/> class.
            </summary>
            <param name="results">The results.</param>
        </member>
        <member name="P:EmbedIO.WebSockets.Internal.SystemWebSocketReceiveResult.Count">
            <inheritdoc/>
        </member>
        <member name="P:EmbedIO.WebSockets.Internal.SystemWebSocketReceiveResult.EndOfMessage">
            <inheritdoc/>
        </member>
        <member name="P:EmbedIO.WebSockets.Internal.SystemWebSocketReceiveResult.MessageType">
            <inheritdoc/>
        </member>
        <member name="T:EmbedIO.WebSockets.Internal.WebSocket">
            <summary>
            Implements the WebSocket interface.
            </summary>
            <remarks>
            The WebSocket class provides a set of methods and properties for two-way communication using
            the WebSocket protocol (<see href="http://tools.ietf.org/html/rfc6455">RFC 6455</see>).
            </remarks>
        </member>
        <member name="E:EmbedIO.WebSockets.Internal.WebSocket.OnMessage">
            <summary>
            Occurs when the <see cref="T:EmbedIO.WebSockets.Internal.WebSocket"/> receives a message.
            </summary>
        </member>
        <member name="P:EmbedIO.WebSockets.Internal.WebSocket.State">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.WebSockets.Internal.WebSocket.SendAsync(System.Byte[],System.Boolean,System.Threading.CancellationToken)">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.WebSockets.Internal.WebSocket.CloseAsync(System.Threading.CancellationToken)">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.WebSockets.Internal.WebSocket.CloseAsync(EmbedIO.WebSockets.CloseStatusCode,System.String,System.Threading.CancellationToken)">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.WebSockets.Internal.WebSocket.PingAsync">
            <summary>
            Sends a ping using the WebSocket connection.
            </summary>
            <returns>
            <c>true</c> if the <see cref="T:EmbedIO.WebSockets.Internal.WebSocket"/> receives a pong to this ping in a time;
            otherwise, <c>false</c>.
            </returns>
        </member>
        <member name="M:EmbedIO.WebSockets.Internal.WebSocket.PingAsync(System.String)">
            <summary>
            Sends a ping with the specified <paramref name="message"/> using the WebSocket connection.
            </summary>
            <returns>
            <c>true</c> if the <see cref="T:EmbedIO.WebSockets.Internal.WebSocket"/> receives a pong to this ping in a time;
            otherwise, <c>false</c>.
            </returns>
            <param name="message">
            A <see cref="T:System.String"/> that represents the message to send.
            </param>
        </member>
        <member name="M:EmbedIO.WebSockets.Internal.WebSocket.SendAsync(System.Byte[],EmbedIO.WebSockets.Opcode,System.Threading.CancellationToken)">
            <summary>
            Sends binary <paramref name="data" /> using the WebSocket connection.
            </summary>
            <param name="data">An array of <see cref="T:System.Byte" /> that represents the binary data to send.</param>
            <param name="opcode">The opcode.</param>
            <param name="cancellationToken">The cancellation token.</param>
            <returns>
            A task that represents the asynchronous of send 
            binary data using websocket.
            </returns>
        </member>
        <member name="M:EmbedIO.WebSockets.Internal.WebSocket.Dispose">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.WebSockets.Internal.WebSocketContext.Id">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.WebSockets.Internal.WebSocketContext.CancellationToken">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.WebSockets.Internal.WebSocketContext.HttpContextId">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.WebSockets.Internal.WebSocketContext.Session">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.WebSockets.Internal.WebSocketContext.Items">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.WebSockets.Internal.WebSocketContext.LocalEndPoint">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.WebSockets.Internal.WebSocketContext.RemoteEndPoint">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.WebSockets.Internal.WebSocketContext.RequestUri">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.WebSockets.Internal.WebSocketContext.Headers">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.WebSockets.Internal.WebSocketContext.Origin">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.WebSockets.Internal.WebSocketContext.RequestedProtocols">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.WebSockets.Internal.WebSocketContext.AcceptedProtocol">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.WebSockets.Internal.WebSocketContext.WebSocketVersion">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.WebSockets.Internal.WebSocketContext.Cookies">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.WebSockets.Internal.WebSocketContext.User">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.WebSockets.Internal.WebSocketContext.IsAuthenticated">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.WebSockets.Internal.WebSocketContext.IsLocal">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.WebSockets.Internal.WebSocketContext.IsSecureConnection">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.WebSockets.Internal.WebSocketContext.WebSocket">
            <inheritdoc />
        </member>
        <member name="T:EmbedIO.WebSockets.Internal.WebSocketReceiveResult">
            <summary>
            Represents a WS Receive result.
            </summary>
        </member>
        <member name="P:EmbedIO.WebSockets.Internal.WebSocketReceiveResult.Count">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.WebSockets.Internal.WebSocketReceiveResult.EndOfMessage">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.WebSockets.Internal.WebSocketReceiveResult.MessageType">
            <inheritdoc />
        </member>
        <member name="T:EmbedIO.WebSockets.IWebSocket">
            <inheritdoc />
            <summary>
            Interface to create a WebSocket implementation.
            </summary>
            <seealso cref="T:System.IDisposable" />
        </member>
        <member name="P:EmbedIO.WebSockets.IWebSocket.State">
            <summary>
            Gets the state.
            </summary>
            <value>
            The state.
            </value>
        </member>
        <member name="M:EmbedIO.WebSockets.IWebSocket.SendAsync(System.Byte[],System.Boolean,System.Threading.CancellationToken)">
            <summary>
            Sends the buffer to the web socket asynchronously.
            </summary>
            <param name="buffer">The buffer.</param>
            <param name="isText">if set to <c>true</c> [is text].</param>
            <param name="cancellationToken">The cancellation token.</param>
            <returns>
            A task that represents the asynchronous of send data using websocket.
            </returns>
        </member>
        <member name="M:EmbedIO.WebSockets.IWebSocket.CloseAsync(System.Threading.CancellationToken)">
            <summary>
            Closes the web socket asynchronously.
            </summary>
            <param name="cancellationToken">The cancellation token.</param>
            <returns>
            The task object representing the asynchronous operation.
            </returns>
        </member>
        <member name="M:EmbedIO.WebSockets.IWebSocket.CloseAsync(EmbedIO.WebSockets.CloseStatusCode,System.String,System.Threading.CancellationToken)">
            <summary>
            Closes the web socket asynchronously.
            </summary>
            <param name="code">The code.</param>
            <param name="comment">The comment.</param>
            <param name="cancellationToken">The cancellation token.</param>
            <returns>
            The task object representing the asynchronous operation.
            </returns>
        </member>
        <member name="T:EmbedIO.WebSockets.IWebSocketContext">
            <summary>
            Represents the context of a WebSocket connection.
            </summary>
        </member>
        <member name="P:EmbedIO.WebSockets.IWebSocketContext.Id">
            <summary>
            Gets a unique identifier for a WebSocket context.
            </summary>
        </member>
        <member name="P:EmbedIO.WebSockets.IWebSocketContext.CancellationToken">
            <summary>
            Gets the <see cref="P:EmbedIO.WebSockets.IWebSocketContext.CancellationToken"/> used to cancel operations.
            </summary>
        </member>
        <member name="P:EmbedIO.WebSockets.IWebSocketContext.HttpContextId">
            <summary>
            Gets the unique identifier of the opening handshake HTTP context.
            </summary>
        </member>
        <member name="P:EmbedIO.WebSockets.IWebSocketContext.Session">
            <summary>
            Gets the session proxy associated with the opening handshake HTTP context.
            </summary>
        </member>
        <member name="P:EmbedIO.WebSockets.IWebSocketContext.Items">
            <summary>
            Gets the dictionary of data associated with the opening handshake HTTP context.
            </summary>
        </member>
        <member name="P:EmbedIO.WebSockets.IWebSocketContext.LocalEndPoint">
            <summary>
            Gets the server IP address and port number to which the opening handshake request is directed.
            </summary>
        </member>
        <member name="P:EmbedIO.WebSockets.IWebSocketContext.RemoteEndPoint">
            <summary>
            Gets the client IP address and port number from which the opening handshake request originated.
            </summary>
        </member>
        <member name="P:EmbedIO.WebSockets.IWebSocketContext.RequestUri">
            <summary>The URI requested by the WebSocket client.</summary>
        </member>
        <member name="P:EmbedIO.WebSockets.IWebSocketContext.Headers">
            <summary>The HTTP headers that were sent to the server during the opening handshake.</summary>
        </member>
        <member name="P:EmbedIO.WebSockets.IWebSocketContext.Origin">
            <summary>The value of the Origin HTTP header included in the opening handshake.</summary>
        </member>
        <member name="P:EmbedIO.WebSockets.IWebSocketContext.WebSocketVersion">
            <summary>The value of the SecWebSocketKey HTTP header included in the opening handshake.</summary>
        </member>
        <member name="P:EmbedIO.WebSockets.IWebSocketContext.RequestedProtocols">
            <summary>The list of subprotocols requested by the WebSocket client.</summary>
        </member>
        <member name="P:EmbedIO.WebSockets.IWebSocketContext.AcceptedProtocol">
            <summary>The accepted subprotocol.</summary>
        </member>
        <member name="P:EmbedIO.WebSockets.IWebSocketContext.Cookies">
            <summary>The cookies that were passed to the server during the opening handshake.</summary>
        </member>
        <member name="P:EmbedIO.WebSockets.IWebSocketContext.User">
            <summary>An object used to obtain identity, authentication information, and security roles for the WebSocket client.</summary>
        </member>
        <member name="P:EmbedIO.WebSockets.IWebSocketContext.IsAuthenticated">
            <summary>Whether the WebSocket client is authenticated.</summary>
        </member>
        <member name="P:EmbedIO.WebSockets.IWebSocketContext.IsLocal">
            <summary>Whether the WebSocket client connected from the local machine.</summary>
        </member>
        <member name="P:EmbedIO.WebSockets.IWebSocketContext.IsSecureConnection">
            <summary>Whether the WebSocket connection is secured using Secure Sockets Layer (SSL).</summary>
        </member>
        <member name="P:EmbedIO.WebSockets.IWebSocketContext.WebSocket">
            <summary>The <see cref="T:EmbedIO.WebSockets.IWebSocket"/> interface used to interact with the WebSocket connection.</summary>
        </member>
        <member name="T:EmbedIO.WebSockets.IWebSocketReceiveResult">
            <summary>
            Interface for WebSocket Receive Result object.
            </summary>
        </member>
        <member name="P:EmbedIO.WebSockets.IWebSocketReceiveResult.Count">
            <summary>
            Gets the count.
            </summary>
            <value>
            The count.
            </value>
        </member>
        <member name="P:EmbedIO.WebSockets.IWebSocketReceiveResult.EndOfMessage">
            <summary>
            Gets a value indicating whether [end of message].
            </summary>
            <value>
              <c>true</c> if [end of message]; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:EmbedIO.WebSockets.IWebSocketReceiveResult.MessageType">
            <summary>
            Gets the type of the message.
            </summary>
            <value>
            The type of the message.
            </value>
        </member>
        <member name="T:EmbedIO.WebSockets.Opcode">
            <summary>
            Indicates the WebSocket frame type.
            </summary>
            <remarks>
            The values of this enumeration are defined in
            <see href="http://tools.ietf.org/html/rfc6455#section-5.2">
            Section 5.2</see> of RFC 6455.
            </remarks>
        </member>
        <member name="F:EmbedIO.WebSockets.Opcode.Cont">
            <summary>
            Equivalent to numeric value 0. Indicates continuation frame.
            </summary>
        </member>
        <member name="F:EmbedIO.WebSockets.Opcode.Text">
            <summary>
            Equivalent to numeric value 1. Indicates text frame.
            </summary>
        </member>
        <member name="F:EmbedIO.WebSockets.Opcode.Binary">
            <summary>
            Equivalent to numeric value 2. Indicates binary frame.
            </summary>
        </member>
        <member name="F:EmbedIO.WebSockets.Opcode.Close">
            <summary>
            Equivalent to numeric value 8. Indicates connection close frame.
            </summary>
        </member>
        <member name="F:EmbedIO.WebSockets.Opcode.Ping">
            <summary>
            Equivalent to numeric value 9. Indicates ping frame.
            </summary>
        </member>
        <member name="F:EmbedIO.WebSockets.Opcode.Pong">
            <summary>
            Equivalent to numeric value 10. Indicates pong frame.
            </summary>
        </member>
        <member name="T:EmbedIO.WebSockets.WebSocketException">
            <summary>
            The exception that is thrown when a WebSocket gets a fatal error.
            </summary>
        </member>
        <member name="P:EmbedIO.WebSockets.WebSocketException.Code">
            <summary>
            Gets the status code indicating the cause of the exception.
            </summary>
            <value>
            One of the <see cref="T:EmbedIO.WebSockets.CloseStatusCode"/> enum values, represents the status code
            indicating the cause of the exception.
            </value>
        </member>
        <member name="T:EmbedIO.WebSockets.WebSocketModule">
            <summary>
            A base class for modules that handle WebSocket connections.
            </summary>
            <remarks>
            <para>Each WebSocket server has a list of WebSocket subprotocols it can accept.</para>
            <para>When a client initiates a WebSocket opening handshake:</para>
            <list type="bullet">
            <item><description>if the list of accepted subprotocols is empty,
            the connection is accepted only if no <c>SecWebSocketProtocol</c>
            header is present in the request;</description></item>
            <item><description>if the list of accepted subprotocols is not empty,
            the connection is accepted only if one or more <c>SecWebSocketProtocol</c>
            headers are present in the request and one of them specifies one
            of the subprotocols in the list. The first subprotocol specified by the client
            that is also present in the module's list is then specified in the
            handshake response.</description></item>
            </list>
            If a connection is not accepted because of a subprotocol mismatch,
            a <c>400 Bad Request</c> response is sent back to the client. The response
            contains one or more <c>SecWebSocketProtocol</c> headers that specify
            the list of accepted subprotocols (if any).
            </remarks>
        </member>
        <member name="M:EmbedIO.WebSockets.WebSocketModule.#ctor(System.String,System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:EmbedIO.WebSockets.WebSocketModule" /> class.
            </summary>
            <param name="urlPath">The URL path of the WebSocket endpoint to serve.</param>
            <param name="enableConnectionWatchdog">If set to <see langword="true"/>,
            contexts representing closed connections will automatically be purged
            from <see cref="P:EmbedIO.WebSockets.WebSocketModule.ActiveContexts"/> every 30 seconds..</param>
        </member>
        <member name="P:EmbedIO.WebSockets.WebSocketModule.IsFinalHandler">
            <inheritdoc />
        </member>
        <member name="P:EmbedIO.WebSockets.WebSocketModule.MaxMessageSize">
            <summary>
            <para>Gets or sets the maximum size of a received message.
            If a message exceeding the maximum size is received from a client,
            the connection is closed automatically.</para>
            <para>The default value is 0, which disables message size checking.</para>
            </summary>
        </member>
        <member name="P:EmbedIO.WebSockets.WebSocketModule.KeepAliveInterval">
            <summary>
            Gets or sets the keep-alive interval for the WebSocket connection.
            The default is 30 seconds.
            </summary>
            <exception cref="T:System.ArgumentOutOfRangeException">This property is being set to a value
            that is too small to be acceptable.</exception>
        </member>
        <member name="P:EmbedIO.WebSockets.WebSocketModule.Encoding">
            <summary>
            Gets the <see cref="P:EmbedIO.WebSockets.WebSocketModule.Encoding"/> used by the <see cref="M:EmbedIO.WebSockets.WebSocketModule.SendAsync(EmbedIO.WebSockets.IWebSocketContext,System.String)"/> method
            to send a string. The default is <see cref="P:System.Text.Encoding.UTF8"/> per the WebSocket specification.
            </summary>
            <exception cref="T:System.ArgumentNullException">This property is being set to <see langword="null"/>.</exception>
        </member>
        <member name="P:EmbedIO.WebSockets.WebSocketModule.ActiveContexts">
            <summary>
            Gets a list of <see cref="T:EmbedIO.WebSockets.IWebSocketContext"/> interfaces
            representing the currently connected clients.
            </summary>
        </member>
        <member name="M:EmbedIO.WebSockets.WebSocketModule.Dispose">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.WebSockets.WebSocketModule.OnRequestAsync(EmbedIO.IHttpContext)">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.WebSockets.WebSocketModule.OnStart(System.Threading.CancellationToken)">
            <inheritdoc />
        </member>
        <member name="M:EmbedIO.WebSockets.WebSocketModule.AddProtocol(System.String)">
            <summary>
            Adds a WebSocket subprotocol to the list of protocols supported by a <see cref="T:EmbedIO.WebSockets.WebSocketModule"/>.
            </summary>
            <param name="protocol">The protocol name to add to the list.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="protocol"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentException">
            <para><paramref name="protocol"/> contains one or more invalid characters, as defined
            in <see href="https://tools.ietf.org/html/rfc6455#section-4.3">RFC6455, Section 4.3</see>.</para>
            <para>- or -</para>
            <para><paramref name="protocol"/> is already in the list of supported protocols.</para>
            </exception>
            <exception cref="T:System.InvalidOperationException">The <see cref="T:EmbedIO.WebSockets.WebSocketModule"/> has already been started.</exception>
            <seealso cref="M:EmbedIO.Utilities.Validate.Rfc2616Token(System.String,System.String)"/>
            <seealso cref="M:EmbedIO.WebSockets.WebSocketModule.AddProtocols(System.Collections.Generic.IEnumerable{System.String})"/>
            <seealso cref="M:EmbedIO.WebSockets.WebSocketModule.AddProtocols(System.String[])"/>
        </member>
        <member name="M:EmbedIO.WebSockets.WebSocketModule.AddProtocols(System.Collections.Generic.IEnumerable{System.String})">
            <summary>
            Adds one or more WebSocket subprotocols to the list of protocols supported by a <see cref="T:EmbedIO.WebSockets.WebSocketModule"/>.
            </summary>
            <param name="protocols">The protocol names to add to the list.</param>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="protocols"/> is <see langword="null"/>.</para>
            <para>- or -</para>
            <para>One or more of the strings in <paramref name="protocols"/> is <see langword="null"/>.</para>
            </exception>
            <exception cref="T:System.ArgumentException">
            <para>One or more of the strings in <paramref name="protocols"/>
            contains one or more invalid characters, as defined
            in <see href="https://tools.ietf.org/html/rfc6455#section-4.3">RFC6455, Section 4.3</see>.</para>
            <para>- or -</para>
            <para>One or more of the strings in <paramref name="protocols"/>
            is already in the list of supported protocols.</para>
            </exception>
            <exception cref="T:System.InvalidOperationException">The <see cref="T:EmbedIO.WebSockets.WebSocketModule"/> has already been started.</exception>
            <remarks>
            <para>This method enumerates <paramref name="protocols"/> just once; hence, if an exception is thrown
            because one of the specified protocols is <see langword="null"/> or contains invalid characters,
            any preceding protocol is added to the list of supported protocols.</para>
            </remarks>
            <seealso cref="M:EmbedIO.Utilities.Validate.Rfc2616Token(System.String,System.String)"/>
            <seealso cref="M:EmbedIO.WebSockets.WebSocketModule.AddProtocol(System.String)"/>
            <seealso cref="M:EmbedIO.WebSockets.WebSocketModule.AddProtocols(System.String[])"/>
        </member>
        <member name="M:EmbedIO.WebSockets.WebSocketModule.AddProtocols(System.String[])">
            <summary>
            Adds one or more WebSocket subprotocols to the list of protocols supported by a <see cref="T:EmbedIO.WebSockets.WebSocketModule"/>.
            </summary>
            <param name="protocols">The protocol names to add to the list.</param>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="protocols"/> is <see langword="null"/>.</para>
            <para>- or -</para>
            <para>One or more of the strings in <paramref name="protocols"/> is <see langword="null"/>.</para>
            </exception>
            <exception cref="T:System.ArgumentException">
            <para>One or more of the strings in <paramref name="protocols"/>
            contains one or more invalid characters, as defined
            in <see href="https://tools.ietf.org/html/rfc6455#section-4.3">RFC6455, Section 4.3</see>.</para>
            <para>- or -</para>
            <para>One or more of the strings in <paramref name="protocols"/>
            is already in the list of supported protocols.</para>
            </exception>
            <exception cref="T:System.InvalidOperationException">The <see cref="T:EmbedIO.WebSockets.WebSocketModule"/> has already been started.</exception>
            <remarks>
            <para>This method performs validation checks on all specified <paramref name="protocols"/> before adding them
            to the list of supported protocols; hence, if an exception is thrown
            because one of the specified protocols is <see langword="null"/> or contains invalid characters,
            none of the specified protocol names are added to the list.</para>
            </remarks>
            <seealso cref="M:EmbedIO.Utilities.Validate.Rfc2616Token(System.String,System.String)"/>
            <seealso cref="M:EmbedIO.WebSockets.WebSocketModule.AddProtocol(System.String)"/>
            <seealso cref="M:EmbedIO.WebSockets.WebSocketModule.AddProtocols(System.Collections.Generic.IEnumerable{System.String})"/>
        </member>
        <member name="M:EmbedIO.WebSockets.WebSocketModule.SendAsync(EmbedIO.WebSockets.IWebSocketContext,System.String)">
            <summary>
            Sends a text payload.
            </summary>
            <param name="context">The web socket.</param>
            <param name="payload">The payload.</param>
            <returns>A <see cref="T:System.Threading.Tasks.Task"/> representing the ongoing operation.</returns>
        </member>
        <member name="M:EmbedIO.WebSockets.WebSocketModule.SendAsync(EmbedIO.WebSockets.IWebSocketContext,System.Byte[])">
            <summary>
            Sends a binary payload.
            </summary>
            <param name="context">The web socket.</param>
            <param name="payload">The payload.</param>
            <returns>A <see cref="T:System.Threading.Tasks.Task"/> representing the ongoing operation.</returns>
        </member>
        <member name="M:EmbedIO.WebSockets.WebSocketModule.BroadcastAsync(System.Byte[])">
            <summary>
            Broadcasts the specified payload to all connected WebSocket clients.
            </summary>
            <param name="payload">The payload.</param>
            <returns>A <see cref="T:System.Threading.Tasks.Task"/> representing the ongoing operation.</returns>
        </member>
        <member name="M:EmbedIO.WebSockets.WebSocketModule.BroadcastAsync(System.Byte[],System.Func{EmbedIO.WebSockets.IWebSocketContext,System.Boolean})">
            <summary>
            Broadcasts the specified payload to selected WebSocket clients.
            </summary>
            <param name="payload">The payload.</param>
            <param name="selector">A callback function that must return <see langword="true"/>
            for each context to be included in the broadcast.</param>
            <returns>A <see cref="T:System.Threading.Tasks.Task"/> representing the ongoing operation.</returns>
        </member>
        <member name="M:EmbedIO.WebSockets.WebSocketModule.BroadcastAsync(System.String)">
            <summary>
            Broadcasts the specified payload to all connected WebSocket clients.
            </summary>
            <param name="payload">The payload.</param>
            <returns>A <see cref="T:System.Threading.Tasks.Task"/> representing the ongoing operation.</returns>
        </member>
        <member name="M:EmbedIO.WebSockets.WebSocketModule.BroadcastAsync(System.String,System.Func{EmbedIO.WebSockets.IWebSocketContext,System.Boolean})">
            <summary>
            Broadcasts the specified payload to selected WebSocket clients.
            </summary>
            <param name="payload">The payload.</param>
            <param name="selector">A callback function that must return <see langword="true"/>
            for each context to be included in the broadcast.</param>
            <returns>A <see cref="T:System.Threading.Tasks.Task"/> representing the ongoing operation.</returns>
        </member>
        <member name="M:EmbedIO.WebSockets.WebSocketModule.CloseAsync(EmbedIO.WebSockets.IWebSocketContext)">
            <summary>
            Closes the specified web socket, removes it and disposes it.
            </summary>
            <param name="context">The web socket.</param>
            <returns>A <see cref="T:System.Threading.Tasks.Task"/> representing the ongoing operation.</returns>
        </member>
        <member name="M:EmbedIO.WebSockets.WebSocketModule.OnMessageReceivedAsync(EmbedIO.WebSockets.IWebSocketContext,System.Byte[],EmbedIO.WebSockets.IWebSocketReceiveResult)">
            <summary>
            Called when this WebSocket server receives a full message (EndOfMessage) from a client.
            </summary>
            <param name="context">The context.</param>
            <param name="buffer">The buffer.</param>
            <param name="result">The result.</param>
            <returns>A <see cref="T:System.Threading.Tasks.Task"/> representing the ongoing operation.</returns>
        </member>
        <member name="M:EmbedIO.WebSockets.WebSocketModule.OnFrameReceivedAsync(EmbedIO.WebSockets.IWebSocketContext,System.Byte[],EmbedIO.WebSockets.IWebSocketReceiveResult)">
            <summary>
            Called when this WebSocket server receives a message frame regardless if the frame represents the EndOfMessage.
            </summary>
            <param name="context">The context.</param>
            <param name="buffer">The buffer.</param>
            <param name="result">The result.</param>
            <returns>A <see cref="T:System.Threading.Tasks.Task"/> representing the ongoing operation.</returns>
        </member>
        <member name="M:EmbedIO.WebSockets.WebSocketModule.OnClientConnectedAsync(EmbedIO.WebSockets.IWebSocketContext)">
            <summary>
            Called when this WebSocket server accepts a new client.
            </summary>
            <param name="context">The context.</param>
            <returns>A <see cref="T:System.Threading.Tasks.Task"/> representing the ongoing operation.</returns>
        </member>
        <member name="M:EmbedIO.WebSockets.WebSocketModule.OnClientDisconnectedAsync(EmbedIO.WebSockets.IWebSocketContext)">
            <summary>
            Called when the server has removed a connected client for any reason.
            </summary>
            <param name="context">The context.</param>
            <returns>A <see cref="T:System.Threading.Tasks.Task"/> representing the ongoing operation.</returns>
        </member>
        <member name="M:EmbedIO.WebSockets.WebSocketModule.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>
    </members>
</doc>
