<?xml version="1.0"?>
<doc>
    <assembly>
        <name>Gallio</name>
    </assembly>
    <members>
        <member name="T:Gallio.Common.Accessor`2">
            <summary>
            Represents a method that returns a value of a specified type from the instance of an object.
            </summary>
            <remarks>
            <para>
            It is usually used to represent the invocation of a type property.
            </para>
            </remarks>
            <typeparam name="T">The type of the object to get the value from.</typeparam>
            <typeparam name="TValue">The type of the returned value.</typeparam>
            <param name="obj">The object to get the value from.</param>
            <returns>The returned value.</returns>
        </member>
        <member name="T:Gallio.Common.Action">
            <summary>
            An action with no arguments.
            </summary>
        </member>
        <member name="T:Gallio.Common.Action`2">
            <summary>
            An action with two arguments.
            </summary>
            <typeparam name="T1">The first argument type.</typeparam>
            <typeparam name="T2">The second argument type.</typeparam>
            <param name="arg1">The first argument.</param>
            <param name="arg2">The second argument.</param>
        </member>
        <member name="T:Gallio.Common.Action`3">
            <summary>
            An action with three arguments.
            </summary>
            <typeparam name="T1">The first argument type.</typeparam>
            <typeparam name="T2">The second argument type.</typeparam>
            <typeparam name="T3">The third argument type.</typeparam>
            <param name="arg1">The first argument.</param>
            <param name="arg2">The second argument.</param>
            <param name="arg3">The third argument.</param>
        </member>
        <member name="T:Gallio.Common.Action`4">
            <summary>
            An action with four arguments.
            </summary>
            <typeparam name="T1">The first argument type.</typeparam>
            <typeparam name="T2">The second argument type.</typeparam>
            <typeparam name="T3">The third argument type.</typeparam>
            <typeparam name="T4">The fourth argument type.</typeparam>
            <param name="arg1">The first argument.</param>
            <param name="arg2">The second argument.</param>
            <param name="arg3">The third argument.</param>
            <param name="arg4">The fourth argument.</param>
        </member>
        <member name="T:Gallio.Common.Action`5">
            <summary>
            An action with five arguments.
            </summary>
            <typeparam name="T1">The first argument type.</typeparam>
            <typeparam name="T2">The second argument type.</typeparam>
            <typeparam name="T3">The third argument type.</typeparam>
            <typeparam name="T4">The fourth argument type.</typeparam>
            <typeparam name="T5">The fifth argument type.</typeparam>
            <param name="arg1">The first argument.</param>
            <param name="arg2">The second argument.</param>
            <param name="arg3">The third argument.</param>
            <param name="arg4">The fourth argument.</param>
            <param name="arg5">The fifth argument.</param>
        </member>
        <member name="T:Gallio.Common.Collections.EnumerableCounter">
            <summary>
            Encapsulates various strategies for counting the number of elements in a collection, an array, or
            a simple enumerable type.
            </summary>
        </member>
        <member name="M:Gallio.Common.Collections.EnumerableCounter.#ctor(System.Collections.IEnumerable)">
            <summary>
            Constructor.
            </summary>
            <param name="values">The collection, the array, or the simple enumerable object to count elements.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="values"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Collections.EnumerableCounter.Count">
            <summary>
            Counts the number of elements in a collection, an array, or any other enumerable type, by
            using the most appropriate strategies.
            </summary>
            <returns>An enumeration of counting strategies applicable to the specified enumerable values.</returns>
        </member>
        <member name="T:Gallio.Common.Collections.ICountingStrategy">
            <summary>
            Represents a strategy for counting the number of elements in a collection, an array, or a simple enumerable type.
            </summary>
        </member>
        <member name="P:Gallio.Common.Collections.ICountingStrategy.Name">
            <summary>
            Gets the name of the counting strategy.
            </summary>
        </member>
        <member name="P:Gallio.Common.Collections.ICountingStrategy.Description">
            <summary>
            Gets a displayable description of the counting strategy.
            </summary>
        </member>
        <member name="P:Gallio.Common.Collections.ICountingStrategy.Count">
            <summary>
            Returns the number of elements found by applying the current counting strategy.
            </summary>
            <returns>The number of elements found.</returns>
        </member>
        <member name="T:Gallio.Common.Collections.CountingStrategyName">
            <summary>
            Name of the existing counting strategies.
            </summary>
        </member>
        <member name="F:Gallio.Common.Collections.CountingStrategyName.ByLengthGetter">
            <summary>
            Counts by getting the value returned by the <see cref="P:System.Array.Length"/> property getter.
            </summary>
        </member>
        <member name="F:Gallio.Common.Collections.CountingStrategyName.ByCountGetter">
            <summary>
            Counts by getting the value returned by the <see cref="P:System.Collections.ICollection.Count"/> or <see cref="P:System.Collections.Generic.ICollection`1.Count"/> property getter.
            </summary>
        </member>
        <member name="F:Gallio.Common.Collections.CountingStrategyName.ByEnumeratingElements">
            <summary>
            Counts by enumerating the elements returned by <see cref="M:System.Collections.IEnumerable.GetEnumerator"/>.
            </summary>
        </member>
        <member name="F:Gallio.Common.Collections.CountingStrategyName.ByReflectedCountGetter">
            <summary>
            Counts by getting the value returned by an existing public "Count" property getter.
            </summary>
        </member>
        <member name="T:Gallio.Common.Collections.IPropertySetContainer">
            <summary>
            Contains a <see cref="T:Gallio.Common.Collections.PropertySet"/>
            </summary>
        </member>
        <member name="M:Gallio.Common.Collections.IPropertySetContainer.AddProperty(System.String,System.String)">
            <summary>
            Adds a property key/value pair.
            </summary>
            <param name="key">The property key.</param>
            <param name="value">The property value.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="key"/> or <paramref name="value"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Thrown if <paramref name="key"/> is already in the property set.</exception>
        </member>
        <member name="P:Gallio.Common.Collections.IPropertySetContainer.Properties">
            <summary>
            Gets a read-only collection of configuration properties.
            </summary>
        </member>
        <member name="T:Gallio.Common.Comparison">
            <summary>
            Represents the method that compares two objects of the same type.
            </summary>
            <remarks>
            <para>
            This is a non-generic version of <see cref="T:System.Comparison`1"/>.
            </para>
            </remarks>
            <param name="x">The first object to compare.</param>
            <param name="y">The second object to compare.</param>
            <returns>a negative value if x is less than y, zero if x equals y, or a positive value if x is greater than y.</returns>
        </member>
        <member name="T:Gallio.Common.Concurrency.DegreeOfParallelismProvider">
            <summary>
            A function that returns the maximum number of threads that a work scheduler 
            may use to perform work.  The value may change over time and cause the
            scheduler to adapt to changing degrees of parallelism.
            </summary>
            <returns>The degree of parallelism which must be at least 1.</returns>
            <seealso cref="T:Gallio.Common.Concurrency.WorkScheduler"/>
        </member>
        <member name="T:Gallio.Common.Concurrency.IProcess">
            <summary>
            Wrapper for <see cref="T:System.Diagnostics.Process"/> to allow testing.
            </summary>
            <seealso cref="T:System.Diagnostics.Process"/>
        </member>
        <member name="M:Gallio.Common.Concurrency.IProcess.IsModuleLoaded(System.String)">
            <summary>
            Checks whether a module with the specified file name is
            loaded in the process.
            </summary>
            <param name="fileName">The file name.</param>
            <returns>true if the module is loaded; otherwise, false.</returns>
        </member>
        <member name="M:Gallio.Common.Concurrency.IProcess.Kill">
            <summary>
            Immediately stops the associated process.
            </summary>
            <seealso cref="M:System.Diagnostics.Process.Kill"/>
        </member>
        <member name="M:Gallio.Common.Concurrency.IProcess.Refresh">
            <summary>
            Discards any information about the associated process
            that has been cached inside the process object.
            </summary>
        </member>
        <member name="M:Gallio.Common.Concurrency.IProcess.WaitForInputIdle">
            <summary>
            Causes the <see cref="T:Gallio.Common.Concurrency.IProcess"/> object to wait indefinitely for
            the associated process to enter an idle state. This overload applies
            only to processes with a user interface and, therefore, a message loop.
            </summary>
            <returns>true if the associated process has reached an idle state.</returns>
        </member>
        <member name="M:Gallio.Common.Concurrency.IProcess.WaitForInputIdle(System.Int32)">
            <summary>
            Causes the <see cref="T:Gallio.Common.Concurrency.IProcess"/> object to wait the specified number
            of milliseconds for the associated process to enter an idle state. This
            overload applies only to processes with a user interface and, therefore,
            a message loop.
            </summary>
            <param name="milliseconds">
            A value of 1 to <see cref="F:System.Int32.MaxValue"/> that specifies the amount of
            time, in milliseconds, to wait for the associated process to become idle.
            A value of 0 specifies an immediate return, and a value of -1 specifies
            an infinite wait.
            </param>
            <returns>
            true if the associated process has reached an idle state; otherwise, false.
            </returns>
        </member>
        <member name="P:Gallio.Common.Concurrency.IProcess.HasExited">
            <summary>
            Gets a value indicating whether the associated process has been terminated.
            </summary>
        </member>
        <member name="P:Gallio.Common.Concurrency.IProcess.StartInfo">
            <summary>
            Gets or sets the properties to passed to the <see cref="M:System.Diagnostics.Process.Start"/>
            method of the underlying <see cref="T:System.Diagnostics.Process"/>.
            </summary>
        </member>
        <member name="P:Gallio.Common.Concurrency.IProcess.Id">
            <summary>
            Gets the unique identifier for the associated process.
            </summary>
        </member>
        <member name="T:Gallio.Common.Concurrency.IProcessCreator">
            <summary>
            Wraps the static process creation methods on <see cref="T:System.Diagnostics.Process"/> to allow testing.
            </summary>
        </member>
        <member name="M:Gallio.Common.Concurrency.IProcessCreator.Start(System.Diagnostics.ProcessStartInfo)">
            <summary>
            Starts the process and associates it with a new <see cref="T:Gallio.Common.Concurrency.IProcess"/> object.
            </summary>
            <param name="startInfo">The process start info.</param>
            <returns>The new process.</returns>
        </member>
        <member name="T:Gallio.Common.Concurrency.IProcessFinder">
            <summary>
            Wraps the static process query methods on <see cref="T:System.Diagnostics.Process"/> to allow testing.
            </summary>
        </member>
        <member name="M:Gallio.Common.Concurrency.IProcessFinder.GetProcessesByName(System.String)">
            <summary>
            Creates an array of <see cref="T:Gallio.Common.Concurrency.IProcess"/> objects for all
            processes on the local compuer that share the specified name.
            </summary>
            <param name="processName">The friendly name of he process.</param>
            <returns>An array of <see cref="T:Gallio.Common.Concurrency.IProcess"/> objects.</returns>
            <seealso cref="M:System.Diagnostics.Process.GetProcessesByName(System.String)"/>
        </member>
        <member name="T:Gallio.Common.Concurrency.ProcessCreator">
            <summary>
            Default implementation of <see cref="T:Gallio.Common.Concurrency.IProcessCreator"/> using <see cref="T:System.Diagnostics.Process"/>.
            </summary>
        </member>
        <member name="M:Gallio.Common.Concurrency.ProcessCreator.Start(System.Diagnostics.ProcessStartInfo)">
            <inheritdoc/>
        </member>
        <member name="T:Gallio.Common.Concurrency.ProcessFinder">
            <summary>
            Default implementation of <see cref="T:Gallio.Common.Concurrency.IProcessFinder"/> using <see cref="T:System.Diagnostics.Process"/>.
            </summary>
        </member>
        <member name="M:Gallio.Common.Concurrency.ProcessFinder.GetProcessesByName(System.String)">
            <inheritdoc/>
        </member>
        <member name="T:Gallio.Common.Concurrency.ProcessWrapper">
            <summary>
            Default implementation of <see cref="T:Gallio.Common.Concurrency.IProcess"/> using <see cref="T:System.Diagnostics.Process"/>.
            </summary>
        </member>
        <member name="M:Gallio.Common.Concurrency.ProcessWrapper.#ctor(System.Diagnostics.Process)">
            <summary>
            Creates a new process wrapper.
            </summary>
            <param name="process">A process.</param>
            <exception cref="T:System.ArgumentNullException">If <paramref name="process"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Concurrency.ProcessWrapper.Dispose">
            <inheritdoc/>
        </member>
        <member name="M:Gallio.Common.Concurrency.ProcessWrapper.Dispose(System.Boolean)">
            <summary>
            Releases the resources used by the <see cref="T:Gallio.Common.Concurrency.ProcessWrapper"/>.
            </summary>
        </member>
        <member name="M:Gallio.Common.Concurrency.ProcessWrapper.IsModuleLoaded(System.String)">
            <inheritdoc/>
        </member>
        <member name="M:Gallio.Common.Concurrency.ProcessWrapper.Kill">
            <inheritdoc/>
        </member>
        <member name="M:Gallio.Common.Concurrency.ProcessWrapper.Refresh">
            <inheritdoc/>
        </member>
        <member name="M:Gallio.Common.Concurrency.ProcessWrapper.WaitForInputIdle">
            <inheritdoc/>
        </member>
        <member name="M:Gallio.Common.Concurrency.ProcessWrapper.WaitForInputIdle(System.Int32)">
            <inheritdoc/>
        </member>
        <member name="P:Gallio.Common.Concurrency.ProcessWrapper.HasExited">
            <inheritdoc/>
        </member>
        <member name="P:Gallio.Common.Concurrency.ProcessWrapper.StartInfo">
            <inheritdoc/>
        </member>
        <member name="P:Gallio.Common.Concurrency.ProcessWrapper.Id">
            <inheritdoc/>
        </member>
        <member name="T:Gallio.Common.Concurrency.WorkScheduler">
            <summary>
            Schedules actions to be run in parallel up to a specified (variable)
            maximum number of threads.
            </summary>
            <remarks>
            <para>
            The implementation is designed to support re-entrance while still maintaining an
            upper bound on active thread count.  To avoid blowing the limit on thread count
            due to re-entrance the caller's thread is also used to schedule work.
            </para>
            <para>
            The work scheduler supports dynamically adjusting the degree of parallelism
            as new work is added.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Common.Concurrency.WorkScheduler.#ctor(Gallio.Common.Concurrency.DegreeOfParallelismProvider)">
            <summary>
            Creates a work scheduler.
            </summary>
            <param name="degreeOfParallelismProvider">A function that determines
            the current degree of parallelism which may change over time.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="degreeOfParallelismProvider"/>
            is null.</exception>
        </member>
        <member name="M:Gallio.Common.Concurrency.WorkScheduler.Run(System.Collections.Generic.IEnumerable{Gallio.Common.Action})">
            <summary>
            Runs a set of actions in parallel up to the current degree of parallelism.
            </summary>
            <remarks>
            <para>
            The implementation guarantees that the current thread will only be used to
            run actions from the provided work set; it will not be used to run actions
            from other concurrently executing work sets.  Other threads will be used
            to run actions from this work set and from other work sets in the order in
            which they were enqueued.  Thus this function will return as soon as all
            of the specified actions have completed even if other work sets have
            pending work.
            </para>
            </remarks>
            <param name="actions">The actions to run.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="actions"/> is null
            or contains null.</exception>
        </member>
        <member name="T:Gallio.Common.Concurrency.TaskResult">
            <summary>
            Holds the value or exception produced by a task.
            </summary>
        </member>
        <member name="M:Gallio.Common.Concurrency.TaskResult.ToString">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Concurrency.TaskResult.HasValue">
            <summary>
            Returns true if the task ran to completion and returned a value,
            or false if an exception was thrown.
            </summary>
        </member>
        <member name="P:Gallio.Common.Concurrency.TaskResult.Value">
            <summary>
            Gets the value that was returned by the task.
            </summary>
            <exception cref="T:System.InvalidOperationException">Thrown if <see cref="P:Gallio.Common.Concurrency.TaskResult.HasValue"/> is false.</exception>
        </member>
        <member name="P:Gallio.Common.Concurrency.TaskResult.Exception">
            <summary>
            Gets the exception that was thrown by the task.
            </summary>
            <exception cref="T:System.InvalidOperationException">Thrown if <see cref="P:Gallio.Common.Concurrency.TaskResult.HasValue"/> is true.</exception>
        </member>
        <member name="T:Gallio.Common.Concurrency.TaskResult`1">
            <summary>
            Holds the value or exception produced by a task.
            </summary>
        </member>
        <member name="M:Gallio.Common.Concurrency.TaskResult`1.CreateFromValue(`0)">
            <summary>
            Creates a result object containing the value returned by the task.
            </summary>
            <returns>The new task result.</returns>
            <param name="value">The value.</param>
        </member>
        <member name="M:Gallio.Common.Concurrency.TaskResult`1.CreateFromException(System.Exception)">
            <summary>
            Creates a result object containing the exception thrown by the task.
            </summary>
            <param name="exception">The exception.</param>
            <returns>The new task result.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="exception"/> is null.</exception>
        </member>
        <member name="P:Gallio.Common.Concurrency.TaskResult`1.Value">
            <summary>
            Gets the value that was returned by the task.
            </summary>
            <exception cref="T:System.InvalidOperationException">Thrown if <see cref="P:Gallio.Common.Concurrency.TaskResult.HasValue"/> is false.</exception>
        </member>
        <member name="T:Gallio.Common.IO.ConsoleRedirection">
            <summary>
            Redirects the console streams.
            </summary>
        </member>
        <member name="M:Gallio.Common.IO.ConsoleRedirection.#ctor(System.IO.TextWriter,System.IO.TextWriter)">
            <summary>
            Redirect console output and error stream and disables the console input stream.
            </summary>
            <param name="consoleOut">The new console output writer.</param>
            <param name="consoleError">The new console error writer.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="consoleOut"/>
            or <paramref name="consoleError"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.IO.ConsoleRedirection.Dispose">
            <summary>
            Resets the console streams as they were initially.
            </summary>
        </member>
        <member name="M:Gallio.Common.IO.ConsoleRedirection.Dispose(System.Boolean)">
            <summary>
            Resets the console streams as they were initially.
            </summary>
            <param name="disposing">True if <see cref="M:Gallio.Common.IO.ConsoleRedirection.Dispose"/> was called directly.</param>
        </member>
        <member name="T:Gallio.Common.IO.Content">
            <summary>
            Abstract representation of a binary or text resource.
            </summary>
            <remarks>
            <para>
            Different kind of resources are supported:
            <list type="bullet">
            <item>Inline resources from a storage in memory.</item>
            <item>Embedded resources from an assembly manifest.</item>
            <item>File resources.</item>
            </list>
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Common.IO.Content.OpenStream">
            <summary>
            Opens the current resource as a <see cref="T:System.IO.Stream"/>.
            </summary>
            <returns>The stream.</returns>
        </member>
        <member name="M:Gallio.Common.IO.Content.OpenTextReader">
            <summary>
            Opens the current resource as a <see cref="T:System.IO.TextReader"/>.
            </summary>
            <returns>The text reader.</returns>
        </member>
        <member name="P:Gallio.Common.IO.Content.IsDynamic">
            <summary>
            Returns true if the contents are dynamic, or false if they are static.
            </summary>
            <remarks>
            <para>
            Static contents can only change if the test assembly is recompiled.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Common.IO.Content.CodeElementInfo">
            <summary>
            Gets or sets a <see cref="T:Gallio.Common.Reflection.ICodeElementInfo"/> that is used to locate the assembly and namespace within which to resolve a manifest resource.
            </summary>
        </member>
        <member name="T:Gallio.Common.IO.ContentEmbeddedResource">
            <summary>
            Represents a resource embedded in an assembly file.
            </summary>
        </member>
        <member name="M:Gallio.Common.IO.ContentEmbeddedResource.#ctor(System.String,System.Type)">
            <summary>
            Constructs the representation of an embedded resource.
            </summary>
            <param name="name">The qualified or unqualified name of the resource.</param>
            <param name="typeScope">When <paramref name="name"/> is unqualified, a type used to locate the assembly and namespace within which to resolve the manifest resource.</param>
        </member>
        <member name="M:Gallio.Common.IO.ContentEmbeddedResource.OpenStream">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.IO.ContentEmbeddedResource.OpenTextReader">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.IO.ContentEmbeddedResource.IsDynamic">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Common.IO.ContentFile">
            <summary>
            Representation of a file resource.
            </summary>
        </member>
        <member name="M:Gallio.Common.IO.ContentFile.#ctor(System.String)">
            <summary>
            Constructs the representation of a file resource.
            </summary>
            <param name="filePath">The path of the file.</param>
        </member>
        <member name="M:Gallio.Common.IO.ContentFile.#ctor(System.String,Gallio.Common.IO.IFileSystem)">
            <summary>
            Constructs the representation of a file resource.
            </summary>
            <param name="filePath">The path of the file.</param>
            <param name="fileSystem">A file system wrapper</param>
        </member>
        <member name="M:Gallio.Common.IO.ContentFile.OpenStream">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.IO.ContentFile.OpenTextReader">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.IO.ContentFile.IsDynamic">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Common.IO.ContentInline">
            <summary>
            Represents an inline memory resource.
            </summary>
        </member>
        <member name="M:Gallio.Common.IO.ContentInline.#ctor(System.String)">
            <summary>
            Constructs the representation of an inline memory resource.
            </summary>
            <param name="contents">The content of the resource as a string.</param>
        </member>
        <member name="M:Gallio.Common.IO.ContentInline.OpenStream">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.IO.ContentInline.OpenTextReader">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.IO.ContentInline.IsDynamic">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Common.Lazy`1">
            <summary>
            Lazy computation type.
            </summary>
            <typeparam name="T">The encapsulated type.</typeparam>
        </member>
        <member name="M:Gallio.Common.Lazy`1.#ctor(Gallio.Common.Func{`0})">
            <summary>
            Constructor.
            </summary>
            <param name="func">A function which computes the value on first request.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="func"/> is null.</exception>
        </member>
        <member name="P:Gallio.Common.Lazy`1.Value">
            <summary>
            Gets the value.
            </summary>
        </member>
        <member name="T:Gallio.Common.Markup.AttachmentType">
            <summary>
            Specifies the type of the contents of an embedded attachment.
            </summary>
        </member>
        <member name="F:Gallio.Common.Markup.AttachmentType.Text">
            <summary>
            The attachment is encoded as a text string.
            </summary>
        </member>
        <member name="F:Gallio.Common.Markup.AttachmentType.Binary">
            <summary>
            The attachment is a binary file either directly available as a file, or encoded as base 64 text string.
            </summary>
        </member>
        <member name="T:Gallio.Common.Markup.MarkupNormalizationUtils">
            <summary>
            Utilities for normalizing markup contents.
            </summary>
        </member>
        <member name="M:Gallio.Common.Markup.MarkupNormalizationUtils.NormalizeContentType(System.String)">
            <summary>
            Normalizes a content type.
            </summary>
            <param name="contentType">The content type, or null if none.</param>
            <returns>The normalized content type, or null if none.  May be the same instance if <paramref name="contentType"/>
            was already normalized.</returns>
        </member>
        <member name="M:Gallio.Common.Markup.MarkupNormalizationUtils.NormalizeAttachmentName(System.String)">
            <summary>
            Normalizes an attachment name.
            </summary>
            <param name="attachmentName">The attachment name, or null if none.</param>
            <returns>The normalized attachment name, or null if none.  May be the same instance if <paramref name="attachmentName"/>
            was already normalized.</returns>
        </member>
        <member name="M:Gallio.Common.Markup.MarkupNormalizationUtils.NormalizeStreamName(System.String)">
            <summary>
            Normalizes a stream name.
            </summary>
            <param name="streamName">The stream name, or null if none.</param>
            <returns>The normalized stream name, or null if none.  May be the same instance if <paramref name="streamName"/>
            was already normalized.</returns>
        </member>
        <member name="M:Gallio.Common.Markup.MarkupNormalizationUtils.NormalizeSectionName(System.String)">
            <summary>
            Normalizes a section name.
            </summary>
            <param name="sectionName">The section name, or null if none.</param>
            <returns>The normalized section name, or null if none.  May be the same instance if <paramref name="sectionName"/>
            was already normalized.</returns>
        </member>
        <member name="M:Gallio.Common.Markup.MarkupNormalizationUtils.NormalizeText(System.String)">
            <summary>
            Normalizes markup text.
            </summary>
            <param name="text">The text, or null if none.</param>
            <returns>The normalized text, or null if none.  May be the same instance if <paramref name="text"/>
            was already normalized.</returns>
        </member>
        <member name="T:Gallio.Common.Mathematics.ChiSquareTest">
            <summary>
            Implementation of a Chi-square test (http://en.wikipedia.org/wiki/Chi_square_test)
            that calculates the "difference" between an expected and an actual statistical distribution.
            </summary>
        </member>
        <member name="M:Gallio.Common.Mathematics.ChiSquareTest.#ctor(System.Double,System.Collections.Generic.ICollection{System.Double},System.Int32)">
            <summary>
            Runs a Chi-square test.
            </summary>
            <remarks>
            <para>
            Given the observed events (<paramref name="actual"/>) and the expected events (<paramref name="expected"/>), 
            calculates the number of degrees of freedom, the chi-square value, and the significance probability.
            </para>
            <para>
            A small value of the significance probability indicates a significant difference between the distributions.
            </para>
            </remarks>
            <param name="expected"></param>
            <param name="actual"></param>
            <param name="numberOfConstraints"></param>
        </member>
        <member name="P:Gallio.Common.Mathematics.ChiSquareTest.DegreesOfFreedom">
            <summary>
            Gets the resulting number of degrees of freedom.
            </summary>
        </member>
        <member name="P:Gallio.Common.Mathematics.ChiSquareTest.ChiSquareValue">
            <summary>
            Gets the resulting Chi-square value.
            </summary>
        </member>
        <member name="P:Gallio.Common.Mathematics.ChiSquareTest.TwoTailedPValue">
            <summary>
            Gets the resulting significance probability.
            </summary>
        </member>
        <member name="T:Gallio.Common.Mathematics.Gamma">
            <summary>
            Helper methods to calculate the Gamma function (http://en.wikipedia.org/wiki/Gamma_function).
            </summary>
        </member>
        <member name="M:Gallio.Common.Mathematics.Gamma.IncompleteGamma(System.Double,System.Double)">
            <summary>
            Returns the incomplete Gamma function Q(a,x).
            </summary>
            <param name="a"></param>
            <param name="x"></param>
            <returns></returns>
        </member>
        <member name="T:Gallio.Common.Mathematics.NamespaceDoc">
            <summary>
            The Gallio.Common.Math namespace provides advanced mathematical 
            functions and helper classes not found in <see cref="T:System.Math"/>.
            </summary>
        </member>
        <member name="T:Gallio.Common.Messaging.IMessageExchangeLink">
            <summary>
            An interface implemented by the server and registered on the server remoting channel
            to allow message exchange with the client.
            </summary>
            <remarks>
            <para>
            This is interim API to be used until the new message broker is ready.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Common.Messaging.IMessageExchangeLink.Receive(System.TimeSpan)">
            <summary>
            Gets the next message.
            </summary>
            <param name="timeout">The maximum amount of time to wait for a message.</param>
            <returns>The next message, or null if a timeout occurred.</returns>
        </member>
        <member name="M:Gallio.Common.Messaging.IMessageExchangeLink.Send(Gallio.Common.Messaging.Message)">
            <summary>
            Sends a message.
            </summary>
            <param name="message">The message to send.</param>
        </member>
        <member name="T:Gallio.Common.Messaging.MessageConsumer">
            <summary>
            A message consumer provides a simple pattern for handling messages based on their type.
            </summary>
            <remarks>
            <para>
            A message consumer consists of a series of typed handler clauses which are traversed in
            order until a handler which matches the message type is found.
            </para>
            </remarks>
            <example>
            <code>
            <![CDATA[
            MessageConsumer consumer = new MessageConsumer()
                .Handle<FooMessage>(message => DoSomethingWithFooMessage(message))
                .Handle<BarMessage>(message => DoSomethingWithBarMessage(message))
                .Otherwise(message => throw new NotSupportedException());
                
            consumer.Consume(new FooMessage());
            consumer.Consume(new BarMessage());
            ]]>
            </code>
            </example>
        </member>
        <member name="T:Gallio.Common.Messaging.IMessageSink">
            <summary>
            Publishes messages directly to a subscriber.
            </summary>
        </member>
        <member name="M:Gallio.Common.Messaging.IMessageSink.Publish(Gallio.Common.Messaging.Message)">
            <summary>
            Publishes a message.
            </summary>
            <param name="message">The message.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="message"/> is null.</exception>
            <exception cref="T:Gallio.Common.Validation.ValidationException">Thrown if <paramref name="message"/> is not valid.</exception>
        </member>
        <member name="M:Gallio.Common.Messaging.MessageConsumer.#ctor">
            <summary>
            Creates a new message consumer with no handler clauses.
            </summary>
        </member>
        <member name="M:Gallio.Common.Messaging.MessageConsumer.Consume(Gallio.Common.Messaging.Message)">
            <summary>
            Consumes a message.
            </summary>
            <param name="message">The message to consume.</param>
            <returns>True if the message was consumed by a handler, false if no handler could consume it.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="message"/> is null.</exception>
            <exception cref="T:Gallio.Common.Validation.ValidationException">Thrown if <paramref name="message"/> is not valid.</exception>
        </member>
        <member name="M:Gallio.Common.Messaging.MessageConsumer.Handle``1(System.Action{``0})">
            <summary>
            Adds a handler for a particular message type.
            </summary>
            <typeparam name="TMessage">The message type.</typeparam>
            <param name="handlerAction">The message handler action.</param>
            <returns>The message consumer.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="handlerAction"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Messaging.MessageConsumer.Otherwise(System.Action{Gallio.Common.Messaging.Message})">
            <summary>
            Adds a catch-all handler.
            </summary>
            <param name="handlerAction">The message handler action.</param>
            <returns>The message consumer.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="handlerAction"/> is null.</exception>
        </member>
        <member name="T:Gallio.Common.Messaging.NamespaceDoc">
            <summary>
            The Gallio.Common.Messaging namespace provides an abstraction for
            sending messages between components.
            </summary>
        </member>
        <member name="T:Gallio.Common.Caching.DiskCacheException">
            <summary>
            The type of exception thrown when an error occurs while manipulating the disk cache.
            </summary>
        </member>
        <member name="M:Gallio.Common.Caching.DiskCacheException.#ctor">
            <summary>
            Creates an exception.
            </summary>
        </member>
        <member name="M:Gallio.Common.Caching.DiskCacheException.#ctor(System.String)">
            <summary>
            Creates an exception.
            </summary>
            <param name="message">The message.</param>
        </member>
        <member name="M:Gallio.Common.Caching.DiskCacheException.#ctor(System.String,System.Exception)">
            <summary>
            Creates an exception.
            </summary>
            <param name="message">The message.</param>
            <param name="innerException">The inner exception.</param>
        </member>
        <member name="M:Gallio.Common.Caching.DiskCacheException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Creates an exception from serialization info.
            </summary>
            <param name="info">The serialization info.</param>
            <param name="context">The streaming context.</param>
        </member>
        <member name="T:Gallio.Common.Caching.IDiskCache">
            <summary>
            A disk cache manages temporary files and directories stored on disk and
            arranged into groups associated with arbitrary string keys.
            </summary>
            <remarks>
            <para>
            The files and directories within each group are assumed to have the same lifetime.
            </para>
            </remarks>
            <example>
            Write a file to the cache:
            <code><![CDATA[
            IDiskCache cache = ... // Get the cache.
            
            using (var writer = new StreamWriter(cache.Groups["SomeKey"].OpenFile("Foo",
                FileMode.OpenOrCreate, FileAccess.Write, FileShare.Exclusive)))
            {
                writer.WriteLine("Contents...");
            }
            ]]></code>
            </example>
        </member>
        <member name="M:Gallio.Common.Caching.IDiskCache.Purge">
            <summary>
            Deletes all items in the cache.
            </summary>
            <exception cref="T:Gallio.Common.Caching.DiskCacheException">Thrown if an error occurs.</exception>
        </member>
        <member name="P:Gallio.Common.Caching.IDiskCache.Groups">
            <summary>
            Gets the collection of disk cache groups.
            </summary>
        </member>
        <member name="T:Gallio.Common.Caching.IDiskCacheGroup">
            <summary>
            A disk cache group represents an indexed partition of the disk cache.
            </summary>
            <remarks>
            <para>
            It is physically manifested as a directory on disk and may contain any
            number of related files or directories with the same lifetime.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Common.Caching.IDiskCacheGroup.Create">
            <summary>
            Creates the group if it does not exist.
            </summary>
            <exception cref="T:Gallio.Common.Caching.DiskCacheException">Thrown if an error occurs.</exception>
        </member>
        <member name="M:Gallio.Common.Caching.IDiskCacheGroup.Delete">
            <summary>
            Deletes the group and all of its contents if any.
            </summary>
            <exception cref="T:Gallio.Common.Caching.DiskCacheException">Thrown if an error occurs.</exception>
        </member>
        <member name="M:Gallio.Common.Caching.IDiskCacheGroup.GetFileInfo(System.String)">
            <summary>
            Gets information about a file within the group.
            </summary>
            <remarks>
            <para>
            This method will succeed even if the file or the group does not exist.
            </para>
            </remarks>
            <param name="relativeFilePath">The relative path of the file within the group.</param>
            <returns>The file info.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="relativeFilePath"/> is null.</exception>
            <exception cref="T:Gallio.Common.Caching.DiskCacheException">Thrown if an error occurs.</exception>
        </member>
        <member name="M:Gallio.Common.Caching.IDiskCacheGroup.GetSubdirectoryInfo(System.String)">
            <summary>
            Gets information about a directory within the group.
            </summary>
            <remarks>
            <para>
            This method will succeed even if the directory or the group does not exist.
            </para>
            </remarks>
            <param name="relativeDirectoryPath">The relative path of the directory within the group.</param>
            <returns>The directory info.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="relativeDirectoryPath"/> is null.</exception>
            <exception cref="T:Gallio.Common.Caching.DiskCacheException">Thrown if an error occurs.</exception>
        </member>
        <member name="M:Gallio.Common.Caching.IDiskCacheGroup.OpenFile(System.String,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare)">
            <summary>
            Opens a file within the group.
            </summary>
            <remarks>
            <para>
            If a new file is being created, automatically create the group and the
            containing directory for the file.
            </para>
            </remarks>
            <param name="relativeFilePath">The relative path of the file to open within the group.</param>
            <param name="mode">The file open mode.</param>
            <param name="access">The file access mode.</param>
            <param name="share">The file sharing mode.</param>
            <returns>The file stream.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="relativeFilePath"/> is null.</exception>
            <exception cref="T:Gallio.Common.Caching.DiskCacheException">Thrown if an error occurs.</exception>
        </member>
        <member name="M:Gallio.Common.Caching.IDiskCacheGroup.CreateSubdirectory(System.String)">
            <summary>
            Creates a directory within the group.
            </summary>
            <param name="relativeDirectoryPath">The relative path of the directory to create within the group.</param>
            <returns>Directory information for the directory that was created.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="relativeDirectoryPath"/> is null.</exception>
            <exception cref="T:Gallio.Common.Caching.DiskCacheException">Thrown if an error occurs.</exception>
        </member>
        <member name="P:Gallio.Common.Caching.IDiskCacheGroup.Cache">
            <summary>
            Gets the disk cache that contains the group.
            </summary>
        </member>
        <member name="P:Gallio.Common.Caching.IDiskCacheGroup.Key">
            <summary>
            Gets the key of the group.
            </summary>
        </member>
        <member name="P:Gallio.Common.Caching.IDiskCacheGroup.Location">
            <summary>
            Gets the <see cref="T:System.IO.DirectoryInfo"/> that represents the physical
            storage location of the disk cache group in the filesystem.
            </summary>
        </member>
        <member name="P:Gallio.Common.Caching.IDiskCacheGroup.Exists">
            <summary>
            Returns true if the group exists on disk.
            </summary>
            <exception cref="T:Gallio.Common.Caching.DiskCacheException">Thrown if an error occurs.</exception>
        </member>
        <member name="T:Gallio.Common.Caching.IDiskCacheGroupCollection">
            <summary>
            Represents a collection of groups in a disk cache indexed by an aritrary key string.
            </summary>
        </member>
        <member name="P:Gallio.Common.Caching.IDiskCacheGroupCollection.Item(System.String)">
            <summary>
            Gets the group with the specified key.
            </summary>
            <param name="key">The key.</param>
            <returns>The group.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="key"/> is null.</exception>
        </member>
        <member name="T:Gallio.Common.Caching.NamespaceDoc">
            <summary>
            The Gallio.Common.Caching namespace contains types related to caching.
            </summary>
        </member>
        <member name="T:Gallio.Common.Caching.SimpleDiskCache">
            <summary>
            A simple disk cache that stores its contents in a particular directory using hashes
            of the key values to ensure uniqueness.
            </summary>
        </member>
        <member name="M:Gallio.Common.Caching.SimpleDiskCache.#ctor(System.String)">
            <summary>
            Creates a simple disk cache.
            </summary>
            <param name="cacheDirectoryPath">The path of the cache directory.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="cacheDirectoryPath"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Caching.SimpleDiskCache.Purge">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Caching.SimpleDiskCache.GetGroup(System.String)">
            <summary>
            Gets the group with the given key.
            </summary>
            <param name="key">The key, nor null.</param>
            <returns>The cache group.</returns>
        </member>
        <member name="P:Gallio.Common.Caching.SimpleDiskCache.CacheDirectoryPath">
            <summary>
            Gets the path of the cache directory.
            </summary>
        </member>
        <member name="P:Gallio.Common.Caching.SimpleDiskCache.Groups">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Common.Caching.SimpleDiskCache.Group">
            <summary>
            Represents a disk cache group.
            </summary>
        </member>
        <member name="M:Gallio.Common.Caching.SimpleDiskCache.Group.#ctor(Gallio.Common.Caching.IDiskCache,System.String,System.IO.DirectoryInfo)">
            <summary>
            Creates a group.
            </summary>
            <param name="cache">The cache.</param>
            <param name="key">The cache group key.</param>
            <param name="location">The location of the cache group.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="cache"/>,
            <paramref name="key"/> or <paramref name="location"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Caching.SimpleDiskCache.Group.Create">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Caching.SimpleDiskCache.Group.Delete">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Caching.SimpleDiskCache.Group.GetFileInfo(System.String)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Caching.SimpleDiskCache.Group.GetSubdirectoryInfo(System.String)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Caching.SimpleDiskCache.Group.OpenFile(System.String,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Caching.SimpleDiskCache.Group.CreateSubdirectory(System.String)">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Caching.SimpleDiskCache.Group.Cache">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Caching.SimpleDiskCache.Group.Key">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Caching.SimpleDiskCache.Group.Location">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Caching.SimpleDiskCache.Group.Exists">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Common.Caching.TemporaryDiskCache">
            <summary>
            A disk cache that stores its contents in the user's temporary directory.
            </summary>
            <seealso cref="M:System.IO.Path.GetTempPath"/>
        </member>
        <member name="F:Gallio.Common.Caching.TemporaryDiskCache.DefaultCacheDirectoryName">
            <summary>
            The default cache directory name.
            </summary>
        </member>
        <member name="M:Gallio.Common.Caching.TemporaryDiskCache.#ctor(System.String)">
            <summary>
            Creates a temporary disk cache within the specified subdirectory of the user's temporary directory.
            </summary>
            <param name="cacheDirectoryName">The name of the cache subdirectory.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="cacheDirectoryName"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Caching.TemporaryDiskCache.#ctor">
            <summary>
            Creates a temporary disk cache within the <see cref="F:Gallio.Common.Caching.TemporaryDiskCache.DefaultCacheDirectoryName"/> 
            subdirectory of the user's temporary directory.
            </summary>
        </member>
        <member name="T:Gallio.Common.Collections.ArrayEqualityComparer`1">
            <summary>
            Compares arrays for equality by element.
            </summary>
        </member>
        <member name="F:Gallio.Common.Collections.ArrayEqualityComparer`1.Default">
            <summary>
            Gets a default instance of the array equality comparer.
            </summary>
        </member>
        <member name="M:Gallio.Common.Collections.ArrayEqualityComparer`1.#ctor">
            <summary>
            Creates a default array equality comparer.
            </summary>
        </member>
        <member name="M:Gallio.Common.Collections.ArrayEqualityComparer`1.#ctor(System.Collections.Generic.IEqualityComparer{`0})">
            <summary>
            Creates an array equality comparer using the specified element comparer.
            </summary>
            <param name="elementComparer">The comparer to use to compare individual elements,
            or null to use <see cref="P:System.Collections.Generic.EqualityComparer`1.Default"/>.</param>
        </member>
        <member name="M:Gallio.Common.Collections.ArrayEqualityComparer`1.Equals(`0[],`0[])">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Collections.ArrayEqualityComparer`1.GetHashCode(`0[])">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Common.Collections.CollectionUtils">
            <summary>
            Utility functions for manipulating collections.
            </summary>
        </member>
        <member name="M:Gallio.Common.Collections.CollectionUtils.ConvertAllToArray``2(System.Collections.ICollection,System.Converter{``0,``1})">
            <summary>
            Converts all elements of the input collection and returns the collected results as an array
            of the same size.
            </summary>
            <typeparam name="TInput">The input type.</typeparam>
            <typeparam name="TOutput">The output type.</typeparam>
            <param name="input">The input collection.</param>
            <param name="converter">The conversion function to apply to each element.</param>
            <returns>The output array.</returns>
        </member>
        <member name="M:Gallio.Common.Collections.CollectionUtils.ToArray``1(System.Collections.ICollection)">
            <summary>
            Copies all of the elements of the input collection to an array.
            </summary>
            <typeparam name="T">The element type.</typeparam>
            <param name="collection">The input collection.</param>
            <returns>The output array.</returns>
        </member>
        <member name="M:Gallio.Common.Collections.CollectionUtils.Find``1(System.Collections.IEnumerable,System.Predicate{``0})">
            <summary>
            Returns the first element of the input enumeration for which the specified
            predicate returns true.
            </summary>
            <typeparam name="T">The element type.</typeparam>
            <param name="enumeration">The input enumeration.</param>
            <param name="predicate">The predicate.</param>
            <returns>The first matching value or the default for the type if not found.</returns>
        </member>
        <member name="M:Gallio.Common.Collections.CollectionUtils.ConstantArray``1(``0,System.Int32)">
            <summary>
            Returns an array of the specified length, filled with the specifed constant value.
            </summary>
            <typeparam name="T">The type of the array.</typeparam>
            <param name="value">The constant value.</param>
            <param name="length">The length of the array.</param>
            <returns>The resulting array.</returns>
        </member>
        <member name="T:Gallio.Common.Collections.CovariantList`2">
            <summary>
            A covariant list converts a list of the input type to a
            read-only list of the more generic output type.  The wrapped
            list can be used to mimic covariance in method return types.
            </summary>
            <typeparam name="TInput">The input list type.</typeparam>
            <typeparam name="TOutput">The output list type.</typeparam>
        </member>
        <member name="M:Gallio.Common.Collections.CovariantList`2.#ctor(System.Collections.Generic.IList{`0})">
            <summary>
            Creates a wrapper for the specified list.
            </summary>
            <param name="inputList">The input list.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="inputList"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Collections.CovariantList`2.CopyTo(`1[],System.Int32)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Collections.CovariantList`2.Contains(`1)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Collections.CovariantList`2.IndexOf(`1)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Collections.CovariantList`2.GetEnumerator">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Collections.CovariantList`2.Count">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Collections.CovariantList`2.Item(System.Int32)">
            <summary>
            Gets an item from the list with the specified index.
            </summary>
            <param name="index">The index.</param>
            <returns>The item.</returns>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="index"/> is out of range.</exception>
        </member>
        <member name="P:Gallio.Common.Collections.CovariantList`2.IsReadOnly">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Common.Collections.EmptyArray`1">
            <summary>
            Provides a singleton empty array instance.
            </summary>
            <typeparam name="T">The type of array to provide.</typeparam>
        </member>
        <member name="F:Gallio.Common.Collections.EmptyArray`1.Instance">
            <summary>
            An empty array of type <typeparamref name="T"/>.
            </summary>
        </member>
        <member name="T:Gallio.Common.Collections.EmptyDictionary`2">
            <summary>
            A read-only empty dictionary.
            </summary>
            <typeparam name="TKey">The dictionary key type.</typeparam>
            <typeparam name="TValue">The dictionary value type.</typeparam>
        </member>
        <member name="F:Gallio.Common.Collections.EmptyDictionary`2.Instance">
            <summary>
            A read-only empty dictionary instance.
            </summary>
        </member>
        <member name="M:Gallio.Common.Collections.EmptyDictionary`2.ContainsKey(`0)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Collections.EmptyDictionary`2.Add(`0,`1)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Collections.EmptyDictionary`2.Remove(`0)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Collections.EmptyDictionary`2.TryGetValue(`0,`1@)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Collections.EmptyDictionary`2.Add(System.Collections.Generic.KeyValuePair{`0,`1})">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Collections.EmptyDictionary`2.Clear">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Collections.EmptyDictionary`2.Contains(System.Collections.Generic.KeyValuePair{`0,`1})">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Collections.EmptyDictionary`2.CopyTo(System.Collections.Generic.KeyValuePair{`0,`1}[],System.Int32)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Collections.EmptyDictionary`2.Remove(System.Collections.Generic.KeyValuePair{`0,`1})">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Collections.EmptyDictionary`2.GetEnumerator">
            <inheritdoc cref="M:System.Collections.Generic.IEnumerable`1.GetEnumerator"/>
        </member>
        <member name="P:Gallio.Common.Collections.EmptyDictionary`2.Item(`0)">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Collections.EmptyDictionary`2.Keys">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Collections.EmptyDictionary`2.Values">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Collections.EmptyDictionary`2.Count">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Collections.EmptyDictionary`2.IsReadOnly">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Common.Collections.GenericCollectionUtils">
            <summary>
            Utility functions for manipulating generic collections.
            </summary>
        </member>
        <member name="M:Gallio.Common.Collections.GenericCollectionUtils.ConvertInPlace``1(System.Collections.Generic.IList{``0},System.Converter{``0,``0})">
            <summary>
            Converts each element of the input collection and stores the result in place.
            </summary>
            <typeparam name="T">The item type.</typeparam>
            <param name="list">The list to mutate.</param>
            <param name="converter">The conversion function to apply to each element.</param>
        </member>
        <member name="M:Gallio.Common.Collections.GenericCollectionUtils.ConvertAndCopyAll``2(System.Collections.Generic.ICollection{``0},System.Collections.Generic.IList{``1},System.Converter{``0,``1})">
            <summary>
            Converts each element of the input collection and stores the result in the
            output list using the same index.  The output list must be at least as
            large as the input list.
            </summary>
            <typeparam name="TInput">The input type.</typeparam>
            <typeparam name="TOutput">The output type.</typeparam>
            <param name="input">The input list.</param>
            <param name="output">The output list.</param>
            <param name="converter">The conversion function to apply to each element.</param>
        </member>
        <member name="M:Gallio.Common.Collections.GenericCollectionUtils.ConvertAndAddAll``2(System.Collections.Generic.ICollection{``0},System.Collections.Generic.ICollection{``1},System.Converter{``0,``1})">
            <summary>
            Converts each element of the input collection and adds the result to the
            output collection succession in the same order.
            </summary>
            <typeparam name="TInput">The input type.</typeparam>
            <typeparam name="TOutput">The output type.</typeparam>
            <param name="input">The input list.</param>
            <param name="output">The output list.</param>
            <param name="converter">The conversion function to apply to each element.</param>
        </member>
        <member name="M:Gallio.Common.Collections.GenericCollectionUtils.ConvertAllToArray``2(System.Collections.Generic.ICollection{``0},System.Converter{``0,``1})">
            <summary>
            Converts each element of the input collection and returns the collected results as an array
            of the same size.
            </summary>
            <typeparam name="TInput">The input type.</typeparam>
            <typeparam name="TOutput">The output type.</typeparam>
            <param name="input">The input collection.</param>
            <param name="converter">The conversion function to apply to each element.</param>
            <returns>The output array.</returns>
        </member>
        <member name="M:Gallio.Common.Collections.GenericCollectionUtils.ToArray``1(System.Collections.Generic.IEnumerable{``0})">
            <summary>
            Copies all of the elements of the input enumerable to an array.
            </summary>
            <typeparam name="T">The element type.</typeparam>
            <param name="enumerable">The input enumerable.</param>
            <returns>The output array.</returns>
        </member>
        <member name="M:Gallio.Common.Collections.GenericCollectionUtils.ToArray``1(System.Collections.Generic.ICollection{``0})">
            <summary>
            Copies all of the elements of the input collection to an array.
            </summary>
            <typeparam name="T">The element type.</typeparam>
            <param name="collection">The input collection.</param>
            <returns>The output array.</returns>
        </member>
        <member name="M:Gallio.Common.Collections.GenericCollectionUtils.Find``1(System.Collections.Generic.IEnumerable{``0},System.Predicate{``0})">
            <summary>
            Returns the first element of the input enumeration for which the specified
            predicate returns true.
            </summary>
            <typeparam name="T">The element type.</typeparam>
            <param name="enumeration">The input enumeration.</param>
            <param name="predicate">The predicate.</param>
            <returns>The first matching value or the default for the type if not found.</returns>
        </member>
        <member name="M:Gallio.Common.Collections.GenericCollectionUtils.Exists``1(System.Collections.Generic.IEnumerable{``0},System.Predicate{``0})">
            <summary>
            Returns true if the input enumeration contains an element for which the predicate returns true.
            </summary>
            <typeparam name="T">The element type.</typeparam>
            <param name="enumeration">The input enumeration.</param>
            <param name="predicate">The predicate.</param>
            <returns>True if a matching element exists.</returns>
        </member>
        <member name="M:Gallio.Common.Collections.GenericCollectionUtils.ForEach``1(System.Collections.Generic.IEnumerable{``0},System.Action{``0})">
            <summary>
            Performs an action for each element in an enumeration.
            </summary>
            <typeparam name="T">The element type.</typeparam>
            <param name="enumeration">The input enumeration.</param>
            <param name="action">The action to perform.</param>
        </member>
        <member name="M:Gallio.Common.Collections.GenericCollectionUtils.AddAll``1(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.ICollection{``0})">
            <summary>
            Adds all elements of the input enumeration to the output collection.
            </summary>
            <typeparam name="T">The element type.</typeparam>
            <param name="input">The input enumeration.</param>
            <param name="output">The output collection.</param>
        </member>
        <member name="M:Gallio.Common.Collections.GenericCollectionUtils.AddAllIfNotAlreadyPresent``1(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.ICollection{``0})">
            <summary>
            Adds elements of the input enumeration to the output collection, 
            if not already present.
            </summary>
            <typeparam name="T">The element type.</typeparam>
            <param name="input">The input enumeration.</param>
            <param name="output">The output collection.</param>
        </member>
        <member name="M:Gallio.Common.Collections.GenericCollectionUtils.ElementsEqual``1(System.Collections.Generic.IList{``0},System.Collections.Generic.IList{``0})">
            <summary>
            Returns true if the elements of both lists are equal.
            </summary>
            <param name="a">The first collection.</param>
            <param name="b">The second collection.</param>
            <returns>True if the elements are equal.</returns>
        </member>
        <member name="M:Gallio.Common.Collections.GenericCollectionUtils.ElementsEqual``1(System.Collections.Generic.IList{``0},System.Collections.Generic.IList{``0},Gallio.Common.EqualityComparison{``0})">
            <summary>
            Returns true if the elements of both lists are equal.
            </summary>
            <param name="a">The first collection.</param>
            <param name="b">The second collection.</param>
            <param name="comparer">The comparison strategy to use.</param>
            <returns>True if the elements are equal.</returns>
        </member>
        <member name="M:Gallio.Common.Collections.GenericCollectionUtils.KeyValuePairsEqual``2(System.Collections.Generic.IDictionary{``0,``1},System.Collections.Generic.IDictionary{``0,``1})">
            <summary>
            Returns true if both dictionaries have equal key/value pairs.
            </summary>
            <param name="a">The first collection.</param>
            <param name="b">The second collection.</param>
            <returns>True if the elements are equal.</returns>
        </member>
        <member name="M:Gallio.Common.Collections.GenericCollectionUtils.ElementsEqualOrderIndependent``1(System.Collections.Generic.IList{``0},System.Collections.Generic.IList{``0})">
            <summary>
            Returns true if the elements of both lists are equal but possibly appear in a different order.
            Handles elements that appear multiple times and ensures that they appear the same
            number of times in each list.
            </summary>
            <param name="a">The first collection.</param>
            <param name="b">The second collection.</param>
            <returns>True if the elements are equal.</returns>
        </member>
        <member name="M:Gallio.Common.Collections.GenericCollectionUtils.Select``2(System.Collections.Generic.IEnumerable{``0},Gallio.Common.Func{``0,``1})">
            <summary>
            Projects each element of a sequence into a new form.
            </summary>
            <typeparam name="TInput">The type of the elements of the input sequence.</typeparam>
            <typeparam name="TOutput">The type of the elements of the output sequence.</typeparam>
            <param name="enumeration">The input sequence.</param>
            <param name="filter"></param>
            <returns>The output sequence</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if any argument is null.</exception>
        </member>
        <member name="T:Gallio.Common.Collections.HashSet`1">
            <summary>
            A hashtable-based set implementation.
            </summary>
            <remarks>
            <para>
            This will probably be replaced by the new HashSet{T} class in
            the new System.Core of .Net 3.5.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Common.Collections.HashSet`1.#ctor">
            <summary>
            Creates an empty set.
            </summary>
        </member>
        <member name="M:Gallio.Common.Collections.HashSet`1.#ctor(System.Collections.Generic.IEqualityComparer{`0})">
            <summary>
            Creates an empty set using the specified comparer.
            </summary>
            <param name="comparer">The comparer, or null to use the default comparer.</param>
        </member>
        <member name="M:Gallio.Common.Collections.HashSet`1.Add(`0)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Collections.HashSet`1.Clear">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Collections.HashSet`1.Contains(`0)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Collections.HashSet`1.CopyTo(`0[],System.Int32)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Collections.HashSet`1.Remove(`0)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Collections.HashSet`1.GetEnumerator">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Collections.HashSet`1.Count">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Collections.HashSet`1.IsReadOnly">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Common.Collections.IMultiMap`2">
            <summary>
            A multi-map allows a list of values to be associated with a single key.
            </summary>
            <remarks>
            <para>
            The value collections provided by the multi-map are always read-only.
            They can only be modified by calling the appropriate methods of the multi-map
            to add or remove items.  This behavior helps multi-map implementations
            better maintain their invariants.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Common.Collections.IMultiMap`2.Add(`0,`1)">
            <summary>
            Adds a value to the list of those associated with a key.
            </summary>
            <param name="key">The key.</param>
            <param name="value">The value to associate.</param>
        </member>
        <member name="M:Gallio.Common.Collections.IMultiMap`2.AddAll(System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{`0,System.Collections.Generic.IList{`1}}})">
            <summary>
            Adds all of the values from the specified map.
            </summary>
            <param name="map">The map.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="map"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Collections.IMultiMap`2.AddAll(System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{`0,`1}})">
            <summary>
            Adds all of the values from the specified enumeration of key-value pairs.
            </summary>
            <param name="pairs">The key-value pairs.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="pairs"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Collections.IMultiMap`2.Contains(`0,`1)">
            <summary>
            Returns true if the map contains an entry with the specified key and value.
            </summary>
            <param name="key">The key.</param>
            <param name="value">The value to find.</param>
            <returns>True if the map contains an entry with the specified key and value.</returns>
        </member>
        <member name="M:Gallio.Common.Collections.IMultiMap`2.Remove(`0,`1)">
            <summary>
            Removes a value from the list of those associated with a key.
            </summary>
            <param name="key">The key.</param>
            <param name="value">The value to remove from the key.</param>
            <returns>True if the value was removed.</returns>
        </member>
        <member name="P:Gallio.Common.Collections.IMultiMap`2.Pairs">
            <summary>
            Gets the contents of the multi-map as an enumeration of pairs of keys and lists of values.
            </summary>
        </member>
        <member name="T:Gallio.Common.Collections.Key`1">
            <summary>
            A strongly-typed key to be used together with an associative array to help the
            compiler perform better type checking of the value associated with the key.
            </summary>
            <typeparam name="TValue">The type of value associated with the key.</typeparam>
        </member>
        <member name="M:Gallio.Common.Collections.Key`1.#ctor(System.String)">
            <summary>
            Creates a new key.
            </summary>
            <param name="name">The unique name of the key.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="name"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Collections.Key`1.ToString">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Collections.Key`1.Name">
            <summary>
            Gets the unique name of the key.
            </summary>
        </member>
        <member name="T:Gallio.Common.Collections.LazyCache`2">
            <summary>
            Lazily populates and caches values associated with a particular key.
            </summary>
            <remarks>
            <para>
            Instances of this type are safe for use by multiple concurrent threads.
            In the case of a race occurs between two threads that result in the population of the
            same key, the populator function may be called concurrently with two requests for the same
            key.  The winner of the race gets to store its value in the cache for later use.
            However, the loser of the race will discard its value and use the newly cached instead.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Common.Collections.LazyCache`2.#ctor(Gallio.Common.Func{`0,`1})">
            <summary>
            Creates a cache with the specified populator function.
            </summary>
            <param name="populator">A function that provides a value given a key.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="populator"/> is null.</exception>
        </member>
        <member name="P:Gallio.Common.Collections.LazyCache`2.Item(`0)">
            <summary>
            Gets the value associated with the specified key.
            Populates it on demand if not already cached.
            </summary>
            <param name="key">The key.</param>
            <returns>The associated value.</returns>
        </member>
        <member name="T:Gallio.Common.Collections.MultiMap`2">
            <summary>
            A multi-map allows a list of values to be associated with a single key.
            </summary>
        </member>
        <member name="M:Gallio.Common.Collections.MultiMap`2.#ctor">
            <summary>
            Creates an empty multi-map.
            </summary>
        </member>
        <member name="M:Gallio.Common.Collections.MultiMap`2.Add(`0,`1)">
            <summary>
            Adds a value to the list of those associated with a key.
            </summary>
            <param name="key">The key.</param>
            <param name="value">The value to associate.</param>
        </member>
        <member name="M:Gallio.Common.Collections.MultiMap`2.Add(System.Collections.Generic.KeyValuePair{`0,System.Collections.Generic.IList{`1}})">
            <summary>
            Adds all values in the pair to the specified key.
            </summary>
            <param name="item">The key and values pair.</param>
        </member>
        <member name="M:Gallio.Common.Collections.MultiMap`2.Add(`0,System.Collections.Generic.IList{`1})">
            <summary>
            Adds all values in the pair to the specified key.
            </summary>
            <param name="key">The key.</param>
            <param name="values">The values.</param>
        </member>
        <member name="M:Gallio.Common.Collections.MultiMap`2.AddAll(System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{`0,System.Collections.Generic.IList{`1}}})">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Collections.MultiMap`2.AddAll(System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{`0,`1}})">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Collections.MultiMap`2.Clear">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Collections.MultiMap`2.Contains(`0,`1)">
            <summary>
            Returns true if the map contains an entry with the specified key and value.
            </summary>
            <param name="key">The key.</param>
            <param name="value">The value to find.</param>
            <returns>True if the map contains an entry with the specified key and value.</returns>
        </member>
        <member name="M:Gallio.Common.Collections.MultiMap`2.Contains(System.Collections.Generic.KeyValuePair{`0,System.Collections.Generic.IList{`1}})">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Collections.MultiMap`2.ContainsKey(`0)">
            <summary>
            Returns true if the map contains at least one value associated with
            the specified key.
            </summary>
            <param name="key">The key.</param>
            <returns>True if there is at least one value associated with the key.</returns>
        </member>
        <member name="M:Gallio.Common.Collections.MultiMap`2.CopyTo(System.Collections.Generic.KeyValuePair{`0,System.Collections.Generic.IList{`1}}[],System.Int32)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Collections.MultiMap`2.Remove(`0)">
            <summary>
            Removes all values associated with the specified key.
            </summary>
            <param name="key">The key.</param>
            <returns>True if the key existed and was removed.</returns>
        </member>
        <member name="M:Gallio.Common.Collections.MultiMap`2.Remove(`0,`1)">
            <summary>
            Removes a value from the list of those associated with a key.
            </summary>
            <param name="key">The key.</param>
            <param name="value">The value to remove from the key.</param>
            <returns>True if the value was removed.</returns>
        </member>
        <member name="M:Gallio.Common.Collections.MultiMap`2.Remove(System.Collections.Generic.KeyValuePair{`0,System.Collections.Generic.IList{`1}})">
            <summary>
            Removes all values in the pair from the specified key.
            </summary>
            <param name="item">The key and values pair.</param>
            <returns>True if at least one value was removed.</returns>
        </member>
        <member name="M:Gallio.Common.Collections.MultiMap`2.TryGetValue(`0,System.Collections.Generic.IList{`1}@)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Collections.MultiMap`2.GetEnumerator">
            <inheritdoc cref="M:System.Collections.Generic.IEnumerable`1.GetEnumerator"/>
        </member>
        <member name="M:Gallio.Common.Collections.MultiMap`2.ReadOnly(Gallio.Common.Collections.IMultiMap{`0,`1})">
            <summary>
            Obtains a read-only view of another multi-map.
            </summary>
            <param name="map">The multi-map.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="map"/> is null.</exception>
        </member>
        <member name="P:Gallio.Common.Collections.MultiMap`2.Count">
            <summary>
            Gets the number of distinct keys in the map.
            </summary>
        </member>
        <member name="P:Gallio.Common.Collections.MultiMap`2.IsReadOnly">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Collections.MultiMap`2.Keys">
            <summary>
            Gets the collection of keys in the multi-map.
            </summary>
        </member>
        <member name="P:Gallio.Common.Collections.MultiMap`2.Values">
            <summary>
            Gets the collection of lists of values in the multi-map.
            </summary>
        </member>
        <member name="P:Gallio.Common.Collections.MultiMap`2.Pairs">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Collections.MultiMap`2.Item(`0)">
            <summary>
            Gets or sets the list of values associated with the specified key.
            Returns an empty list if there are none.
            </summary>
            <param name="key">The key.</param>
            <returns>The list of values.</returns>
        </member>
        <member name="T:Gallio.Common.Collections.NamespaceDoc">
            <summary>
            The Gallio.Common.Collections namespace contains specialized collection types and
            collection utilities.
            </summary>
        </member>
        <member name="T:Gallio.Common.Collections.PropertyBag">
            <summary>
            A property bag associates keys with values where each key may have one or more associated value.
            All keys and values must be non-null strings.
            </summary>
            <remarks>
            <para>
            This collection supports Xml-serialization and content-based equality comparison.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Common.Collections.PropertyBag.#ctor">
            <summary>
            Creates an empty property bag.
            </summary>
        </member>
        <member name="M:Gallio.Common.Collections.PropertyBag.Copy">
            <summary>
            Creates a copy of this property bag.
            </summary>
            <returns>The copy.</returns>
        </member>
        <member name="M:Gallio.Common.Collections.PropertyBag.AsReadOnly">
            <summary>
            Gets a read-only view of this property set.
            </summary>
            <returns>A read-only view.</returns>
        </member>
        <member name="M:Gallio.Common.Collections.PropertyBag.GetValue(System.String)">
            <summary>
            Gets the first value associated with a key.
            </summary>
            <remarks>
            <para>
            If there are multiple values, returns only the first one.
            </para>
            </remarks>
            <param name="key">The key.</param>
            <returns>The first associated value, or null if none.</returns>
        </member>
        <member name="M:Gallio.Common.Collections.PropertyBag.SetValue(System.String,System.String)">
            <summary>
            Sets the value associated with a key.
            </summary>
            <remarks>
            <para>
            Removes all values previously associated with that key.
            </para>
            </remarks>
            <param name="key">The key.</param>
            <param name="value">The new value, or null to remove the existing values.</param>
        </member>
        <member name="M:Gallio.Common.Collections.PropertyBag.Add(System.String,System.String)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Collections.PropertyBag.AddAll(System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.Collections.Generic.IList{System.String}}})">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Collections.PropertyBag.AddAll(System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.String}})">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Collections.PropertyBag.Contains(System.String,System.String)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Collections.PropertyBag.Remove(System.String,System.String)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Collections.PropertyBag.ContainsKey(System.String)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Collections.PropertyBag.Add(System.String,System.Collections.Generic.IList{System.String})">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Collections.PropertyBag.Remove(System.String)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Collections.PropertyBag.TryGetValue(System.String,System.Collections.Generic.IList{System.String}@)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Collections.PropertyBag.Add(System.Collections.Generic.KeyValuePair{System.String,System.Collections.Generic.IList{System.String}})">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Collections.PropertyBag.Clear">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Collections.PropertyBag.Contains(System.Collections.Generic.KeyValuePair{System.String,System.Collections.Generic.IList{System.String}})">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Collections.PropertyBag.CopyTo(System.Collections.Generic.KeyValuePair{System.String,System.Collections.Generic.IList{System.String}}[],System.Int32)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Collections.PropertyBag.Remove(System.Collections.Generic.KeyValuePair{System.String,System.Collections.Generic.IList{System.String}})">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Collections.PropertyBag.GetEnumerator">
            <inheritdoc cref="M:System.Collections.Generic.IEnumerable`1.GetEnumerator"/>
        </member>
        <member name="M:Gallio.Common.Collections.PropertyBag.Equals(Gallio.Common.Collections.PropertyBag)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Collections.PropertyBag.Equals(System.Object)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Collections.PropertyBag.GetHashCode">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Collections.PropertyBag.ProvideXmlSchema(System.Xml.Schema.XmlSchemaSet)">
            <summary>
            Provides the Xml schema for this element.
            </summary>
            <param name="schemas">The schema set.</param>
            <returns>The schema type of the element.</returns>
        </member>
        <member name="P:Gallio.Common.Collections.PropertyBag.Item(System.String)">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Collections.PropertyBag.Keys">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Collections.PropertyBag.Values">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Collections.PropertyBag.Pairs">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Collections.PropertyBag.Count">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Collections.PropertyBag.IsReadOnly">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Common.Collections.PropertySet">
            <summary>
            A property set associates keys with values where each key may have exactly one associated value.
            All keys and values must be non-null strings.
            </summary>
            <remarks>
            <para>
            This collection supports Xml-serialization and content-based equality comparison.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Common.Collections.PropertySet.#ctor">
            <summary>
            Creates an empty property set.
            </summary>
        </member>
        <member name="M:Gallio.Common.Collections.PropertySet.AddAll(System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.String}})">
            <summary>
            Adds all elements of another collection to this dictionary.
            </summary>
            <param name="collection">The collection to add.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="collection"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Collections.PropertySet.Copy">
            <summary>
            Creates a full copy of this property set.
            </summary>
            <returns>The copy.</returns>
        </member>
        <member name="M:Gallio.Common.Collections.PropertySet.AsReadOnly">
            <summary>
            Gets a read-only view of this property set.
            </summary>
            <returns>A read-only view.</returns>
        </member>
        <member name="M:Gallio.Common.Collections.PropertySet.GetValue(System.String)">
            <summary>
            Gets the value associated with a key, or null if absent.
            </summary>
            <param name="key">The key.</param>
            <returns>The associated value, or null if none.</returns>
        </member>
        <member name="M:Gallio.Common.Collections.PropertySet.SetValue(System.String,System.String)">
            <summary>
            Sets the value associated with a key, removes an existing value if null.
            </summary>
            <param name="key">The key.</param>
            <param name="value">The new value, or null to remove the existing value.</param>
        </member>
        <member name="M:Gallio.Common.Collections.PropertySet.MergeWith(Gallio.Common.Collections.PropertySet)">
            <summary>
            Merges the specified property set into the current set, by exluding the existing keys.
            </summary>
            <param name="other">The other proerty set to be merged.</param>
        </member>
        <member name="M:Gallio.Common.Collections.PropertySet.Add(System.Collections.Generic.KeyValuePair{System.String,System.String})">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Collections.PropertySet.Clear">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Collections.PropertySet.Contains(System.Collections.Generic.KeyValuePair{System.String,System.String})">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Collections.PropertySet.CopyTo(System.Collections.Generic.KeyValuePair{System.String,System.String}[],System.Int32)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Collections.PropertySet.Remove(System.Collections.Generic.KeyValuePair{System.String,System.String})">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Collections.PropertySet.ContainsKey(System.String)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Collections.PropertySet.Add(System.String,System.String)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Collections.PropertySet.Remove(System.String)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Collections.PropertySet.TryGetValue(System.String,System.String@)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Collections.PropertySet.GetEnumerator">
            <inheritdoc cref="M:System.Collections.Generic.IEnumerable`1.GetEnumerator"/>
        </member>
        <member name="M:Gallio.Common.Collections.PropertySet.Equals(Gallio.Common.Collections.PropertySet)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Collections.PropertySet.Equals(System.Object)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Collections.PropertySet.GetHashCode">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Collections.PropertySet.ProvideXmlSchema(System.Xml.Schema.XmlSchemaSet)">
            <summary>
            Provides the Xml schema for this element.
            </summary>
            <param name="schemas">The schema set.</param>
            <returns>The schema type of the element.</returns>
        </member>
        <member name="P:Gallio.Common.Collections.PropertySet.Count">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Collections.PropertySet.IsReadOnly">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Collections.PropertySet.Item(System.String)">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Collections.PropertySet.Keys">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Collections.PropertySet.Values">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Common.Collections.ReadOnlyDictionary`2">
            <summary>
            A read-only dictionary wrapper.
            </summary>
        </member>
        <member name="M:Gallio.Common.Collections.ReadOnlyDictionary`2.#ctor(System.Collections.Generic.IDictionary{`0,`1})">
            <summary>
            Creates a read-only dictionary wrapper for another dictionary.
            </summary>
            <param name="inner">The dictionary to wrap.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="inner"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Collections.ReadOnlyDictionary`2.Add(System.Collections.Generic.KeyValuePair{`0,`1})">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Collections.ReadOnlyDictionary`2.Clear">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Collections.ReadOnlyDictionary`2.Contains(System.Collections.Generic.KeyValuePair{`0,`1})">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Collections.ReadOnlyDictionary`2.CopyTo(System.Collections.Generic.KeyValuePair{`0,`1}[],System.Int32)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Collections.ReadOnlyDictionary`2.Remove(System.Collections.Generic.KeyValuePair{`0,`1})">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Collections.ReadOnlyDictionary`2.ContainsKey(`0)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Collections.ReadOnlyDictionary`2.Add(`0,`1)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Collections.ReadOnlyDictionary`2.Remove(`0)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Collections.ReadOnlyDictionary`2.TryGetValue(`0,`1@)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Collections.ReadOnlyDictionary`2.GetEnumerator">
            <inheritdoc cref="M:System.Collections.Generic.IEnumerable`1.GetEnumerator"/>
        </member>
        <member name="P:Gallio.Common.Collections.ReadOnlyDictionary`2.Count">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Collections.ReadOnlyDictionary`2.IsReadOnly">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Collections.ReadOnlyDictionary`2.Item(`0)">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Collections.ReadOnlyDictionary`2.Keys">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Collections.ReadOnlyDictionary`2.Values">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Common.Collections.ReadOnlyMultiMap`2">
            <summary>
            Provides a read-only view of another multi-map.
            </summary>
        </member>
        <member name="M:Gallio.Common.Collections.ReadOnlyMultiMap`2.#ctor(Gallio.Common.Collections.IMultiMap{`0,`1})">
            <summary>
            Creates a read-only view of the specified multi-map.
            </summary>
            <param name="map">The multi-map.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="map"/> is null.</exception>
        </member>
        <member name="T:Gallio.Common.Collections.ReferentialEqualityComparer`1">
            <summary>
            An equality comparer that compares values by reference.
            </summary>
            <typeparam name="T">The type of values to compare, must be reference types.</typeparam>
        </member>
        <member name="M:Gallio.Common.Collections.ReferentialEqualityComparer`1.Equals(`0,`0)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Collections.ReferentialEqualityComparer`1.GetHashCode(`0)">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Collections.ReferentialEqualityComparer`1.Instance">
            <summary>
            Gets the singleton instance of the comparer.
            </summary>
        </member>
        <member name="T:Gallio.Common.Collections.TreeUtils">
            <summary>
            Provides functions for manipulating ad-hoc trees.
            </summary>
        </member>
        <member name="M:Gallio.Common.Collections.TreeUtils.GetPreOrderTraversal``1(``0,Gallio.Common.Collections.TreeUtils.ChildEnumerator{``0})">
            <summary>
            Gets an enumeration of a tree data structure in pre-order traversal.
            </summary>
            <typeparam name="T">The type of node in the tree.</typeparam>
            <param name="rootNode">The root node of the tree.</param>
            <param name="enumerator">A function that yields an enumeration of the children
            of a node in the tree.</param>
            <returns>The pre-order traversal enumeration.</returns>
        </member>
        <member name="T:Gallio.Common.Collections.TreeUtils.ChildEnumerator`1">
            <summary>
            Enumerates child nodes in a tree.
            </summary>
            <param name="node">The node.</param>
            <returns>The node's children.</returns>
        </member>
        <member name="T:Gallio.Common.Collections.UserDataCollection">
            <summary>
            A user data collection stores arbitrary key/value pairs that may be associated
            with other objects in the system.
            </summary>
            <remarks>
            <para>
            Accesses to the collection are synchronized during access.  To safely manupulate
            multiple keys at one time, simply lock the <see cref="T:Gallio.Common.Collections.UserDataCollection"/>
            for the duration of the operation.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Common.Collections.UserDataCollection.#ctor">
            <summary>
            Creates an empty collection.
            </summary>
        </member>
        <member name="M:Gallio.Common.Collections.UserDataCollection.Copy">
            <summary>
            Creates a copy of the collection.
            </summary>
            <returns>The copy.</returns>
        </member>
        <member name="M:Gallio.Common.Collections.UserDataCollection.TryGetValue``1(Gallio.Common.Collections.Key{``0},``0@)">
            <summary>
            Tries to get a value from the collection.
            </summary>
            <param name="key">The key.</param>
            <param name="value">Set to the value, or <c>default(T)</c> if none present.</param>
            <returns>True if a value was obtained.</returns>
            <typeparam name="T">The value type.</typeparam>
        </member>
        <member name="M:Gallio.Common.Collections.UserDataCollection.GetValue``1(Gallio.Common.Collections.Key{``0})">
            <summary>
            Gets a value from the collection.
            </summary>
            <param name="key">The key.</param>
            <returns>The associated value.</returns>
            <exception cref="T:System.Collections.Generic.KeyNotFoundException">Thrown if <paramref name="key"/> was not found.</exception>
            <typeparam name="T">The value type.</typeparam>
        </member>
        <member name="M:Gallio.Common.Collections.UserDataCollection.GetValueOrDefault``1(Gallio.Common.Collections.Key{``0},``0)">
            <summary>
            Gets a value from the collection or a default value if none found.
            </summary>
            <param name="key">The key.</param>
            <param name="defaultValue">The default value.</param>
            <returns>The associated value, or the default value.</returns>
            <typeparam name="T">The value type.</typeparam>
        </member>
        <member name="M:Gallio.Common.Collections.UserDataCollection.HasValue``1(Gallio.Common.Collections.Key{``0})">
            <summary>
            Determines whether a key has an associated value in the collection.
            </summary>
            <param name="key">The key.</param>
            <returns>True if the key has an associated value.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="key"/> is null.</exception>
            <typeparam name="T">The value type.</typeparam>
        </member>
        <member name="M:Gallio.Common.Collections.UserDataCollection.SetValue``1(Gallio.Common.Collections.Key{``0},``0)">
            <summary>
            Sets a value in the collection.
            </summary>
            <param name="key">The key.</param>
            <param name="value">The value to set.</param>
            <typeparam name="T">The value type.</typeparam>
        </member>
        <member name="M:Gallio.Common.Collections.UserDataCollection.RemoveValue``1(Gallio.Common.Collections.Key{``0})">
            <summary>
            Removes a value from the collection.
            </summary>
            <param name="key">The key.</param>
            <typeparam name="T">The value type.</typeparam>
        </member>
        <member name="T:Gallio.Common.Concurrency.ConfigureProcessStartInfoEventArgs">
            <summary>
            An event dispatched by the <see cref="T:Gallio.Common.Concurrency.ProcessTask"/> when its
            <see cref="P:Gallio.Common.Concurrency.ConfigureProcessStartInfoEventArgs.ProcessStartInfo"/> is being configured to enable customization.
            </summary>
        </member>
        <member name="M:Gallio.Common.Concurrency.ConfigureProcessStartInfoEventArgs.#ctor(System.Diagnostics.ProcessStartInfo)">
            <summary>
            Creates event arguments.
            </summary>
            <param name="processStartInfo">The process start info being configured.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="processStartInfo"/> is null.</exception>
        </member>
        <member name="P:Gallio.Common.Concurrency.ConfigureProcessStartInfoEventArgs.ProcessStartInfo">
            <summary>
            Gets the process start info being configured.
            </summary>
        </member>
        <member name="T:Gallio.Common.Concurrency.LockBox`1">
            <summary>
            A lock box object provides protected read / write access to a shared object
            that may be accessed concurrently by multiple threads.
            </summary>
            <remarks>
            <para>
            Clients are expected to use the <see cref="M:Gallio.Common.Concurrency.LockBox`1.Read(Gallio.Common.Concurrency.ReadAction{`0})"/> and <see cref="M:Gallio.Common.Concurrency.LockBox`1.Write(Gallio.Common.Concurrency.WriteAction{`0})"/> methods
            to acquire and release a lock of the appropriate type prior to manipulating
            the contents.
            </para>
            </remarks>
            <typeparam name="T">The type of object inside the lock box.</typeparam>
        </member>
        <member name="M:Gallio.Common.Concurrency.LockBox`1.#ctor(`0)">
            <summary>
            Creates a lock box for the specified object.
            </summary>
            <param name="obj">The object to protect.</param>
        </member>
        <member name="M:Gallio.Common.Concurrency.LockBox`1.Read(Gallio.Common.Concurrency.ReadAction{`0})">
            <summary>
            Acquires a read lock and invokes the action with the object inside the lock box.
            </summary>
            <param name="action">The action to invoke.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="action"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Concurrency.LockBox`1.Write(Gallio.Common.Concurrency.WriteAction{`0})">
            <summary>
            Acquires a write lock and invokes the action with the object inside the lock box.
            </summary>
            <param name="action">The action to invoke.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="action"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Concurrency.LockBox`1.Read``1(Gallio.Common.Concurrency.ReadFunc{`0,``0})">
            <summary>
            Acquires a read lock and invokes the function with the object inside the lock box.
            </summary>
            <param name="func">The action to invoke.</param>
            <returns>The value returned by the function.</returns>
            <typeparam name="TResult">The function result type.</typeparam>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="func"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Concurrency.LockBox`1.Write``1(Gallio.Common.Concurrency.WriteFunc{`0,``0})">
            <summary>
            Acquires a write lock and invokes the function with the object inside the lock box.
            </summary>
            <param name="func">The action to invoke.</param>
            <returns>The value returned by the function.</returns>
            <typeparam name="TResult">The function result type.</typeparam>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="func"/> is null.</exception>
        </member>
        <member name="T:Gallio.Common.Concurrency.NamespaceDoc">
            <summary>
            The Gallio.Common.Concurrency namespace contains types for synchronizing access
            to resources and managing threads and processes.
            </summary>
        </member>
        <member name="T:Gallio.Common.Concurrency.ProcessTask">
            <summary>
            A process task provides support for launching external processes
            and collecting their output.
            </summary>
            <remarks>
            <para>
            The process task provides a guarantee that when you call <see cref="M:Gallio.Common.Concurrency.Task.Join(System.Nullable{System.TimeSpan})"/>
            all redirected output from the console output and error streams will already
            have been captured and delivered to the event handlers, as appropriate.
            </para>
            </remarks>
        </member>
        <member name="T:Gallio.Common.Concurrency.Task">
            <summary>
            A task represents a concurrently executing operation.
            </summary>
            <remarks>
            <para>
            A <see cref="T:Gallio.Common.Concurrency.Task"/> might not necessarily represent an operation that is
            executing in a local <see cref="T:System.Threading.Thread"/>.  It can represent other processes
            that execute remotely or that are represented by some other mechanism.
            </para>
            <para>
            A <see cref="T:Gallio.Common.Concurrency.Task"/> is guaranteed to send events in the following order:
            <see cref="E:Gallio.Common.Concurrency.Task.Started"/>, <see cref="E:Gallio.Common.Concurrency.Task.Aborted"/> (if applicable), <see cref="E:Gallio.Common.Concurrency.Task.Terminated"/>.
            The events are dispatched synchronously such that the next event in the sequence
            will not be fired until the previous event is completely processed.
            </para>
            </remarks>
            <seealso cref="T:Gallio.Common.Concurrency.TaskContainer"/>
        </member>
        <member name="F:Gallio.Common.Concurrency.Task.sequenceLock">
            <summary>
            This lock ensures that Start, Abort and NotifyTerminated are serialized.
            Without it, we could end up sending a Terminated event before the client
            received the Started event.  Since events are dispatched synchronously,
            serializing them in this manner helps clients to maintain correct internal state.
            </summary>
        </member>
        <member name="M:Gallio.Common.Concurrency.Task.#ctor(System.String)">
            <summary>
            Creates a task.
            </summary>
            <param name="name">The name of the task.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="name"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Concurrency.Task.Start">
            <summary>
            Starts running the task.
            </summary>
            <remarks>
            <para>
            Does nothing if the task has already been started or has been aborted.
            </para>
            </remarks>
            <seealso cref="P:Gallio.Common.Concurrency.Task.IsPending"/>
        </member>
        <member name="M:Gallio.Common.Concurrency.Task.Abort">
            <summary>
            Asynchronously aborts the task.
            </summary>
            <remarks>
            <para>
            If the task has not been started, then the task will be forbidden from starting later
            and its <see cref="P:Gallio.Common.Concurrency.Task.IsAborted"/> property will be set.  If the task has already
            terminated, then does nothing.
            </para>
            <para>
            A typical implementation of this method may cause a <see cref="T:System.Threading.ThreadAbortException"/>
            to be thrown non-deterministically within the task's thread.  Normally such an exception should
            cause the thread to abort abruptly but it may have no effect in certain conditions.
            Also, aborting a task in this manner may cause the application to enter an invalid state
            because exception handlers are often not designed to recover from <see cref="T:System.Threading.ThreadAbortException"/>
            correctly.
            </para>
            </remarks>
            <seealso cref="M:System.Threading.Thread.Abort"/>
            <seealso cref="P:Gallio.Common.Concurrency.Task.IsAborted"/>
        </member>
        <member name="M:Gallio.Common.Concurrency.Task.Join(System.Nullable{System.TimeSpan})">
            <summary>
            Waits for the task to terminate.
            </summary>
            <remarks>
            <para>
            Does nothing if the task has not been started or is not running.
            </para>
            </remarks>
            <param name="timeout">The maximum amount of time to wait for completion, or null to wait indefinitely.</param>
            <returns>True if the task is not running as of the time this method exits,
            false if a timeout occurred while waiting.</returns>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="timeout"/>
            represents a negative time span.</exception>
            <seealso cref="M:System.Threading.Thread.Join(System.TimeSpan)"/>
            <seealso cref="P:Gallio.Common.Concurrency.Task.IsRunning"/>
        </member>
        <member name="M:Gallio.Common.Concurrency.Task.Run(System.Nullable{System.TimeSpan})">
            <summary>
            Starts the task and waits for it to complete until the timeout expires.
            If the timeout expires, aborts the task and returns <c>false</c>.
            </summary>
            <param name="timeout">The maximum amount of time to wait for completion, or null to wait indefinitely.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="timeout"/>
            represents a negative time span.</exception>
            <returns>True if the task ran to completion within the specified time span,
            false if the task was aborted.</returns>
        </member>
        <member name="M:Gallio.Common.Concurrency.Task.StartImpl">
            <summary>
            Starts the task.
            </summary>
            <seealso cref="M:Gallio.Common.Concurrency.Task.Start"/>
        </member>
        <member name="M:Gallio.Common.Concurrency.Task.AbortImpl">
            <summary>
            Aborts the task.
            </summary>
            <seealso cref="M:Gallio.Common.Concurrency.Task.Abort"/>
        </member>
        <member name="M:Gallio.Common.Concurrency.Task.JoinImpl(System.Nullable{System.TimeSpan})">
            <summary>
            Waits for the task to terminate.
            </summary>
            <param name="timeout">The timeout, or null to wait indefinitely.</param>
            <returns>True if the task is not running as of the time this method exits,
            false if a timeout occurred while waiting.</returns>
        </member>
        <member name="M:Gallio.Common.Concurrency.Task.NotifyTerminated(Gallio.Common.Concurrency.TaskResult)">
            <summary>
            Dispatches notification that the task has terminated and provides its result.
            </summary>
            <param name="result">The task result.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="result"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Thrown if the task is not currently running.</exception>
        </member>
        <member name="M:Gallio.Common.Concurrency.Task.OnStarted">
            <summary>
            Notifies the <see cref="E:Gallio.Common.Concurrency.Task.Started"/> event handlers.
            </summary>
            <remarks>
            This method may be overridden by a subclass to perform any necessary actions
            just prior to calling the event handlers.
            </remarks>
        </member>
        <member name="M:Gallio.Common.Concurrency.Task.OnAborted">
            <summary>
            Notifies the <see cref="E:Gallio.Common.Concurrency.Task.Aborted"/> event handlers.
            </summary>
            <remarks>
            This method may be overridden by a subclass to perform any necessary actions
            just prior to calling the event handlers.
            </remarks>
        </member>
        <member name="M:Gallio.Common.Concurrency.Task.OnTerminated">
            <summary>
            Notifies the <see cref="E:Gallio.Common.Concurrency.Task.Terminated"/> event handlers.
            </summary>
            <remarks>
            This method may be overridden by a subclass to perform any necessary actions
            just prior to calling the event handlers.
            </remarks>
        </member>
        <member name="P:Gallio.Common.Concurrency.Task.Name">
            <summary>
            Gets the name of the task.
            </summary>
        </member>
        <member name="P:Gallio.Common.Concurrency.Task.IsPending">
            <summary>
            Returns true if the task has not been started or aborted yet.
            </summary>
        </member>
        <member name="P:Gallio.Common.Concurrency.Task.IsRunning">
            <summary>
            Returns true if the task is running.
            </summary>
        </member>
        <member name="P:Gallio.Common.Concurrency.Task.IsTerminated">
            <summary>
            Returns true if the task ran and was terminated.
            </summary>
        </member>
        <member name="P:Gallio.Common.Concurrency.Task.IsAborted">
            <summary>
            Returns true if the task has been aborted.
            </summary>
        </member>
        <member name="P:Gallio.Common.Concurrency.Task.Result">
            <summary>
            Gets the task result, or null if the task has not terminated or was aborted before starting.
            </summary>
        </member>
        <member name="E:Gallio.Common.Concurrency.Task.Started">
            <summary>
            Adds or removes an event handler that is signaled when the task is started.
            If a handler is being added and the task has already started, it is immediately invoked.
            </summary>
        </member>
        <member name="E:Gallio.Common.Concurrency.Task.Aborted">
            <summary>
            Adds or removes an event handler that is signaled when the task is aborted.
            If a handler is being added and the task has already aborted, it is immediately invoked.
            </summary>
        </member>
        <member name="E:Gallio.Common.Concurrency.Task.Terminated">
            <summary>
            Adds or removes an event handler that is signaled when the task is terminated.
            If a handler is being added and the task has already terminated, it is immediately invoked.
            </summary>
        </member>
        <member name="M:Gallio.Common.Concurrency.ProcessTask.#ctor(System.String,System.String,System.String)">
            <summary>
            Creates a process task.
            </summary>
            <param name="executablePath">The path of the executable executable.</param>
            <param name="arguments">The arguments for the executable.</param>
            <param name="workingDirectory">The working directory.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="executablePath"/>,
            <paramref name="arguments"/> or <paramref name="workingDirectory"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Concurrency.ProcessTask.SetEnvironmentVariable(System.String,System.String)">
            <summary>
            Sets an environment variable to be passed to the process when started.
            </summary>
            <param name="name">The variable name.</param>
            <param name="value">The variable value, or null to remove the environment variable
            so it will not be inherited by the child process.</param>
            <exception cref="T:System.InvalidOperationException">Thrown if the process has already been started.</exception>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="name"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Concurrency.ProcessTask.StartImpl">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Concurrency.ProcessTask.StartProcess(System.Diagnostics.ProcessStartInfo)">
            <summary>
            Starts a <see cref="P:Gallio.Common.Concurrency.ProcessTask.Process"/>.
            </summary>
            <remarks>
            <para>
            This method may be override to change how the process is created and
            started.
            </para>
            </remarks>
            <param name="startInfo">The <see cref="T:System.Diagnostics.ProcessStartInfo"/> that has been started.</param>
            <returns>The process.</returns>
        </member>
        <member name="M:Gallio.Common.Concurrency.ProcessTask.AbortImpl">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Concurrency.ProcessTask.JoinImpl(System.Nullable{System.TimeSpan})">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Concurrency.ProcessTask.ExecutablePath">
            <summary>
            Gets the executable path.
            </summary>
        </member>
        <member name="P:Gallio.Common.Concurrency.ProcessTask.Arguments">
            <summary>
            Gets the arguments.
            </summary>
        </member>
        <member name="P:Gallio.Common.Concurrency.ProcessTask.WorkingDirectory">
            <summary>
            Gets the working directory path.
            </summary>
        </member>
        <member name="P:Gallio.Common.Concurrency.ProcessTask.Process">
            <summary>
            Gets the <see cref="P:Gallio.Common.Concurrency.ProcessTask.Process"/> that was started or null if the
            process has not been started yet.
            </summary>
            <remarks>
            Please be aware that <see cref="P:Gallio.Common.Concurrency.ProcessTask.Process"/> is not thread-safe.
            You must lock the process object before accessing it.
            </remarks>
        </member>
        <member name="P:Gallio.Common.Concurrency.ProcessTask.CaptureConsoleOutput">
            <summary>
            Gets or sets whether console output stream of the process should be captured
            and made available via the <see cref="P:Gallio.Common.Concurrency.ProcessTask.ConsoleOutput"/> property.
            </summary>
            <remarks>
            <para>
            The default value is <c>false</c>.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Common.Concurrency.ProcessTask.CaptureConsoleError">
            <summary>
            Gets or sets whether console error stream of the process should be captured
            and made available via the <see cref="P:Gallio.Common.Concurrency.ProcessTask.ConsoleError"/> property.
            </summary>
            <remarks>
            <para>
            The default value is <c>false</c>.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Common.Concurrency.ProcessTask.UseShellExecute">
            <summary>
            Gets or sets whether to execute the command with the Windows shell.
            </summary>
            <remarks>
            <para>
            The default value is <c>false</c>.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Common.Concurrency.ProcessTask.CreateWindow">
            <summary>
            Gets or sets whether to create a window for the command prompt.
            </summary>
            <remarks>
            <para>
            The default value is <c>false</c>.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Common.Concurrency.ProcessTask.ConsoleOutput">
            <summary>
            Gets the captured contents of the console output stream written by the process.
            </summary>
            <exception cref="T:System.InvalidOperationException">Thrown if the process has not been started
            or if <see cref="P:Gallio.Common.Concurrency.ProcessTask.CaptureConsoleOutput"/> is <c>null</c>.</exception>
        </member>
        <member name="P:Gallio.Common.Concurrency.ProcessTask.ConsoleError">
            <summary>
            Gets the captured contents of the console error stream written by the process.
            </summary>
            <exception cref="T:System.InvalidOperationException">Thrown if the process has not been started
            or if <see cref="P:Gallio.Common.Concurrency.ProcessTask.CaptureConsoleError"/> is <c>null</c>.</exception>
        </member>
        <member name="P:Gallio.Common.Concurrency.ProcessTask.ExitCode">
            <summary>
            Gets the exit code of the process, or -1 if the process did not run or has not exited.
            </summary>
        </member>
        <member name="P:Gallio.Common.Concurrency.ProcessTask.ExitCodeDescription">
            <summary>
            Gets a description of the exit code, if available, or null otherwise.
            </summary>
        </member>
        <member name="E:Gallio.Common.Concurrency.ProcessTask.ConfigureProcessStartInfo">
            <summary>
            The event fired to configure <see cref="T:System.Diagnostics.ProcessStartInfo"/> just before the process is started.
            </summary>
        </member>
        <member name="E:Gallio.Common.Concurrency.ProcessTask.ConsoleOutputDataReceived">
            <summary>
            The event fired when each line of new output is received on the console output stream.
            </summary>
            <remarks>
            <para>
            This event should be wired up before starting the task to ensure that
            no data is lost.
            </para>
            <para>
            Please note that the <see cref="P:System.Diagnostics.DataReceivedEventArgs.Data"/> property
            will be null when the redirected stream is closed after the process exits.
            </para>
            </remarks>
        </member>
        <member name="E:Gallio.Common.Concurrency.ProcessTask.ConsoleErrorDataReceived">
            <summary>
            The event fired when each line of new output is received on the console error stream.
            </summary>
            <remarks>
            <para>
            This event should be wired up before starting the task to ensure that
            no data is lost.
            </para>
            <para>
            Please note that the <see cref="P:System.Diagnostics.DataReceivedEventArgs.Data"/> property
            will be null when the redirected stream is closed after the process exits.
            </para>
            </remarks>
        </member>
        <member name="T:Gallio.Common.Concurrency.ReadAction`1">
            <summary>
            An action that reads the contents of a protected object.  It should not modify the object in any way.
            </summary>
            <param name="obj">The object.</param>
            <typeparam name="T">The type of object.</typeparam>
            <seealso cref="T:Gallio.Common.Concurrency.LockBox`1"/>
        </member>
        <member name="T:Gallio.Common.Concurrency.ReadFunc`2">
            <summary>
            A function that reads the contents of a protected object and produces some result.  It should not modify the object in any way.
            </summary>
            <param name="obj">The object.</param>
            <typeparam name="T">The type of object.</typeparam>
            <typeparam name="TResult">The result type.</typeparam>
            <seealso cref="T:Gallio.Common.Concurrency.LockBox`1"/>
        </member>
        <member name="T:Gallio.Common.Concurrency.TaskContainer">
            <summary>
            A <see cref="T:Gallio.Common.Concurrency.TaskContainer"/> manages the lifecycle of any number of <see cref="T:Gallio.Common.Concurrency.Task"/>s
            and monitors their run-time behavior.
            </summary>
            <remarks>
            <para>
            For example, when a <see cref="T:Gallio.Common.Concurrency.Task"/> terminates abruptly due to an exception, its container
            will send out a notification that may cause all of the other tasks to be aborted and
            for the currently executing test case to fail.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Common.Concurrency.TaskContainer.#ctor">
            <summary>
            Creates an empty task container.
            </summary>
        </member>
        <member name="M:Gallio.Common.Concurrency.TaskContainer.Watch(Gallio.Common.Concurrency.Task)">
            <summary>
            Adds a new task for this container to watch.
            </summary>
            <param name="task">The task to monitor.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="task"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Concurrency.TaskContainer.AbortAll">
            <summary>
            Asynchronously aborts all of the tasks currently running within the container.
            </summary>
            <seealso cref="M:Gallio.Common.Concurrency.Task.Abort"/>
        </member>
        <member name="M:Gallio.Common.Concurrency.TaskContainer.JoinAll(System.Nullable{System.TimeSpan})">
            <summary>
            Waits for all of currently running tasks to terminate.
            </summary>
            <param name="timeout">The maximum amount of time to wait for completion, or null to wait indefinitely.</param>
            <returns>True if no tasks are running as of the time this method exits,
            false if a timeout occurred while waiting.</returns>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="timeout"/>
            represents a negative time span.</exception>
            <seealso cref="M:Gallio.Common.Concurrency.Task.Join(System.Nullable{System.TimeSpan})"/>
        </member>
        <member name="M:Gallio.Common.Concurrency.TaskContainer.GetActiveTasks">
            <summary>
            Gets the list of all tasks that are currently running.
            </summary>
            <returns>The list of running tasks.</returns>
        </member>
        <member name="E:Gallio.Common.Concurrency.TaskContainer.TaskStarted">
            <summary>
            Adds or removes an event handler that is signaled when any watched task is started.
            </summary>
        </member>
        <member name="E:Gallio.Common.Concurrency.TaskContainer.TaskAborted">
            <summary>
            Adds or removes an event handler that is signaled when any watched task is aborted.
            </summary>
        </member>
        <member name="E:Gallio.Common.Concurrency.TaskContainer.TaskTerminated">
            <summary>
            Adds or removes an event handler that is signaled when any watched task is terminated.
            </summary>
        </member>
        <member name="T:Gallio.Common.Concurrency.TaskEventArgs">
            <summary>
            A task-related event.
            </summary>
        </member>
        <member name="M:Gallio.Common.Concurrency.TaskEventArgs.#ctor(Gallio.Common.Concurrency.Task)">
            <summary>
            Creates event arguments for a task-related event.
            </summary>
            <param name="task">The task that the event is about.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="task"/> is null.</exception>
        </member>
        <member name="P:Gallio.Common.Concurrency.TaskEventArgs.Task">
            <summary>
            Gets the task that the event is about.
            </summary>
        </member>
        <member name="T:Gallio.Common.Concurrency.ThreadAbortScope">
            <summary>
            A <see cref="T:Gallio.Common.Concurrency.ThreadAbortScope"/> executes a block of code inside a special
            scope that is designed to issue and safely handle <see cref="M:System.Threading.Thread.Abort(System.Object)"/>
            on demand.
            </summary>
            <remarks>
            <para>
            This class may be used as a primitive for implementing higher-level protected
            scopes for the purpose of asynchronous cancelation and time-limited execution.
            </para>
            <para>
            The implementation distinguishes between <see cref="M:System.Threading.Thread.Abort(System.Object)"/>s that
            are initated using the <see cref="M:Gallio.Common.Concurrency.ThreadAbortScope.Abort"/> method and those
            that may be initiated by other system components.  Foreign aborts are not handled
            so they are allowed to continue to propagate.  This is to ensure that critical aborts
            such as those that are initiated by <see cref="M:System.AppDomain.Unload(System.AppDomain)"/> can unwind the stack
            without interference.
            </para>
            </remarks>
        </member>
        <member name="F:Gallio.Common.Concurrency.ThreadAbortScope.MaxThreadAbortPolls">
            <summary>
            Maximum number of times to poll for a pending abort before giving up.
            </summary>
        </member>
        <member name="F:Gallio.Common.Concurrency.ThreadAbortScope.QuiescentState">
            <summary>
            Indicates that the thread scope is not currently running abortable code.
            It could either not be entered, or it could be entered and running a
            protected block.
            </summary>
        </member>
        <member name="F:Gallio.Common.Concurrency.ThreadAbortScope.RunningState">
            <summary>
            Indicates that the thread scope is running abortable code.
            </summary>
        </member>
        <member name="F:Gallio.Common.Concurrency.ThreadAbortScope.AbortPendingState">
            <summary>
            Indicates that <see cref="M:System.Threading.Thread.Abort(System.Object)"/> is about to occur.
            </summary>
        </member>
        <member name="F:Gallio.Common.Concurrency.ThreadAbortScope.AbortedState">
            <summary>
            Indicates that the scope has been aborted and a <see cref="M:System.Threading.Thread.Abort(System.Object)"/>
            has already been issued if needed.
            </summary>
        </member>
        <member name="M:Gallio.Common.Concurrency.ThreadAbortScope.Run(Gallio.Common.Action)">
            <summary>
            Runs an action inside of the scope.
            </summary>
            <remarks>
            <para>
            At most one action may be in progress at any time.  This method is not
            reentrant and cannot be called concurrently from multiple threads.
            </para>
            </remarks>
            <param name="action">The action to run.</param>
            <returns>The <see cref="T:System.Threading.ThreadAbortException"/> that was caught if the action
            was aborted, or null if the action completed normally.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="action"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Thrown if an action is already running in this scope.</exception>
            <exception cref="T:System.Exception">Any other exception thrown by <paramref name="action"/> itself.</exception>
        </member>
        <member name="M:Gallio.Common.Concurrency.ThreadAbortScope.Protect">
            <summary>
            Enters a protected context wherein it cannot receive a thread abort from this
            <see cref="T:Gallio.Common.Concurrency.ThreadAbortScope"/>.
            </summary>
            <remarks>
            <para>
            This method enables critical system code to be protected from aborts that
            may affect the scope.  This call cannot be nested.
            </para>
            </remarks>
            <returns>An object that when disposed ends the protected block, possibly null if there was no protection necessary.</returns>
        </member>
        <member name="M:Gallio.Common.Concurrency.ThreadAbortScope.Abort">
            <summary>
            Aborts the currently running action and prevents any further actions from running
            inside of this scope.
            </summary>
        </member>
        <member name="M:Gallio.Common.Concurrency.ThreadAbortScope.WaitForThreadAbortIfAborting">
            <summary>
            Because a thread abort is delivered asynchronously, we need to synchronize with
            it to ensure that it gets delivered.  Otherwise the pending thread abort exception
            could occur outside of our special region.
            </summary>
        </member>
        <member name="T:Gallio.Common.Concurrency.ThreadTask">
            <summary>
            An implementation of <see cref="T:Gallio.Common.Concurrency.Task"/> based on a locally running thread.
            </summary>
        </member>
        <member name="M:Gallio.Common.Concurrency.ThreadTask.#ctor(System.String,Gallio.Common.Func{System.Object})">
            <summary>
            Creates a task that will execute code within a new locally running thread.
            When the task terminates successfully, its result will contain the value
            returned by <paramref name="func"/>.
            </summary>
            <param name="name">The name of the task.</param>
            <param name="func">The function to perform within the thread.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="name"/> 
            or <paramref name="func"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Concurrency.ThreadTask.#ctor(System.String,Gallio.Common.Action)">
            <summary>
            Creates a task that will execute code within a new locally running thread.
            When the task terminates successfully, its result will contain the value <c>null</c>.
            </summary>
            <param name="name">The name of the task.</param>
            <param name="action">The action to perform within the thread.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="name"/> 
            or <paramref name="action"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Concurrency.ThreadTask.BeforeTask">
            <summary>
            Performs an action within the thread before the task's main action runs.
            </summary>
            <remarks>
            <para>
            The default implementation does nothing but may be overridden to introduce new behaviors.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Common.Concurrency.ThreadTask.AfterTask">
            <summary>
            Performs an action within the thread after the task's main action runs.
            </summary>
            <remarks>
            <para>
            The default implementation does nothing but may be overridden to introduce new behaviors.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Common.Concurrency.ThreadTask.StartImpl">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Concurrency.ThreadTask.AbortImpl">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Concurrency.ThreadTask.JoinImpl(System.Nullable{System.TimeSpan})">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Concurrency.ThreadTask.ApartmentState">
            <summary>
            Gets or sets the desired <see cref="P:Gallio.Common.Concurrency.ThreadTask.ApartmentState"/> to use for
            the thread when it is started.
            </summary>
            <value>
            The default value is <see cref="F:System.Threading.ApartmentState.Unknown"/> which
            causes the new thread to use the runtime's default apartment state.
            </value>
            <exception cref="T:System.InvalidOperationException">Thrown if this method is called
            after the thread has started.</exception>
        </member>
        <member name="P:Gallio.Common.Concurrency.ThreadTask.Thread">
            <summary>
            Gets the thread on which the task is running, or null if the
            task is not running.
            </summary>
        </member>
        <member name="T:Gallio.Common.Concurrency.WriteAction`1">
            <summary>
            An action that reads or writes the contents of a protected object.
            </summary>
            <param name="obj">The object.</param>
            <typeparam name="T">The type of object.</typeparam>
            <seealso cref="T:Gallio.Common.Concurrency.LockBox`1"/>
        </member>
        <member name="T:Gallio.Common.Concurrency.WriteFunc`2">
            <summary>
            A function that reads or writes the contents of a protected object and produces some result.
            </summary>
            <param name="obj">The object.</param>
            <typeparam name="T">The type of object.</typeparam>
            <typeparam name="TResult">The result type.</typeparam>
            <seealso cref="T:Gallio.Common.Concurrency.LockBox`1"/>
        </member>
        <member name="T:Gallio.Common.Diagnostics.ExceptionData">
            <summary>
            Describes an exception in a serializable form.
            </summary>
        </member>
        <member name="T:Gallio.Common.Markup.IMarkupStreamWritable">
            <summary>
            Interface implemented by objects that can write themselves to
            a <see cref="T:Gallio.Common.Markup.MarkupStreamWriter"/>
            </summary>
        </member>
        <member name="M:Gallio.Common.Markup.IMarkupStreamWritable.WriteTo(Gallio.Common.Markup.MarkupStreamWriter)">
            <summary>
            Writes the object to a markup stream.
            </summary>
            <param name="writer">The markup stream.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="writer"/> is null.</exception>
        </member>
        <member name="T:Gallio.Common.Normalization.INormalizable`1">
            <summary>
            Provides a method that may be called by client code to obtain a normalized
            copy of an object.
            </summary>
            <typeparam name="T">The object type.</typeparam>
        </member>
        <member name="M:Gallio.Common.Normalization.INormalizable`1.Normalize">
            <summary>
            Obtains a normalized copy of the object or the original instance if it is already normalized.
            </summary>
            <remarks>
            <para>
            Some object may be considered valid but have content which is not in a suitable
            form for further processing.  For example, a message object may have a field that contains
            excessive whitespace or non-printable characters that can be trimmed.  To handle
            these cases, the message consumer may call the <see cref="M:Gallio.Common.Normalization.INormalizable`1.Normalize"/> method to
            obtain a normalized copy of the message.  However, if the message was already normalized
            the <see cref="M:Gallio.Common.Normalization.INormalizable`1.Normalize"/> method could just return the same instance.
            </para>
            <para>
            This method may assume that the object has already been validated.
            </para>
            <para>
            This method is not permitted to modify the original object or its contents.  If the
            contents must be changed during normalization then a copy should be created
            and returned.
            </para>
            </remarks>
            <returns>The original instance or a normalized copy.</returns>
        </member>
        <member name="F:Gallio.Common.Diagnostics.ExceptionData.NoProperties">
            <summary>
            Gets an empty read-only property set that can be used to indicate that
            an exception data object does not contain any properties.
            </summary>
        </member>
        <member name="M:Gallio.Common.Diagnostics.ExceptionData.#ctor(System.Exception)">
            <summary>
            Creates an exception data object from an exception.
            </summary>
            <remarks>
            <para>
            Captures the exception type, message, stack trace and properties from
            the exception object.  To filter out specific properties, mark them with
            <see cref="T:Gallio.Common.Diagnostics.SystemInternalAttribute"/>.
            </para>
            </remarks>
            <param name="exception">The exception.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="exception"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Diagnostics.ExceptionData.#ctor(System.String,System.String,System.String,Gallio.Common.Collections.PropertySet,Gallio.Common.Diagnostics.ExceptionData)">
            <summary>
            Creates an exception data object.
            </summary>
            <param name="type">The exception type full name.</param>
            <param name="message">The exception message text.</param>
            <param name="stackTrace">The exception stack trace.</param>
            <param name="properties">The exception properties, or <see cref="F:Gallio.Common.Diagnostics.ExceptionData.NoProperties"/>
            if none.</param>
            <param name="innerException">The inner exception data, or null if none.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="type"/>,
            <paramref name="message"/>, <paramref name="properties"/>
            or <paramref name="stackTrace"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Diagnostics.ExceptionData.#ctor(System.String,System.String,Gallio.Common.Diagnostics.StackTraceData,Gallio.Common.Collections.PropertySet,Gallio.Common.Diagnostics.ExceptionData)">
            <summary>
            Creates an exception data object.
            </summary>
            <param name="type">The exception type full name.</param>
            <param name="message">The exception message text.</param>
            <param name="stackTrace">The exception stack trace.</param>
            <param name="properties">The exception properties, or <see cref="F:Gallio.Common.Diagnostics.ExceptionData.NoProperties"/>
            if none.</param>
            <param name="innerException">The inner exception data, or null if none.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="type"/>,
            <paramref name="message"/>, <paramref name="properties"/>
            or <paramref name="stackTrace"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Diagnostics.ExceptionData.Normalize">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Diagnostics.ExceptionData.ToString">
            <summary>
            Formats the exception to a string similar to the one that the .Net framework
            would ordinarily construct.
            </summary>
            <remarks>
            <para>
            The exception will not be terminated by a new line.
            </para>
            </remarks>
            <returns>The formatted exception.</returns>
        </member>
        <member name="M:Gallio.Common.Diagnostics.ExceptionData.ToString(System.Boolean)">
            <summary>
            Formats the exception to a string similar to the one that the .Net framework
            would ordinarily construct.
            </summary>
            <remarks>
            <para>
            The exception will not be terminated by a new line.
            </para>
            </remarks>
            <param name="useStandardFormatting">If true, strictly follows the standard .Net
            exception formatting by excluding the display of exception properties.</param>
            <returns>The formatted exception.</returns>
        </member>
        <member name="M:Gallio.Common.Diagnostics.ExceptionData.WriteTo(Gallio.Common.Markup.MarkupStreamWriter)">
            <summary>
            Writes the exception in a structured format with markers to distinguish its component elements.
            </summary>
            <remarks>
            <para>
            The exception will not be terminated by a new line.
            </para>
            </remarks>
            <param name="writer">The log stream writer.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="writer"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Diagnostics.ExceptionData.WriteTo(Gallio.Common.Markup.MarkupStreamWriter,System.Boolean)">
            <summary>
            Writes the exception in a structured format with markers to distinguish its component elements.
            </summary>
            <remarks>
            <para>
            The exception will not be terminated by a new line.
            </para>
            </remarks>
            <param name="writer">The log stream writer.</param>
            <param name="useStandardFormatting">If true, strictly follows the standard .Net
            exception formatting by excluding the display of exception properties.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="writer"/> is null.</exception>
        </member>
        <member name="P:Gallio.Common.Diagnostics.ExceptionData.Type">
            <summary>
            Gets the exception type full name.
            </summary>
        </member>
        <member name="P:Gallio.Common.Diagnostics.ExceptionData.Message">
            <summary>
            Gets the exception message text.
            </summary>
        </member>
        <member name="P:Gallio.Common.Diagnostics.ExceptionData.StackTrace">
            <summary>
            Gets the exception stack trace.
            </summary>
        </member>
        <member name="P:Gallio.Common.Diagnostics.ExceptionData.InnerException">
            <summary>
            Gets the inner exception data, or null if none.
            </summary>
        </member>
        <member name="P:Gallio.Common.Diagnostics.ExceptionData.Properties">
            <summary>
            Gets the read-only set of formatted exception properties.
            </summary>
        </member>
        <member name="T:Gallio.Common.Diagnostics.NamespaceDoc">
            <summary>
            The Gallio.Common.Diagnostics namespace contains types for reporting
            failure diagnostics including a stack trace filtering mechanism.
            </summary>
        </member>
        <member name="T:Gallio.Common.Diagnostics.StackTraceData">
            <summary>
            Describes a stack trace in a serializable form.
            </summary>
        </member>
        <member name="M:Gallio.Common.Diagnostics.StackTraceData.#ctor(System.String)">
            <summary>
            Creates a stack trace data object from a string.
            </summary>
            <param name="stackTrace">The stack trace.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="stackTrace"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Diagnostics.StackTraceData.#ctor(Gallio.Common.Reflection.ICodeElementInfo)">
            <summary>
            Creates a stack trace data object that points to the specified code element.
            </summary>
            <param name="codeElement">The code element.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="codeElement"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Diagnostics.StackTraceData.Normalize">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Diagnostics.StackTraceData.ToString">
            <summary>
            Formats the stack trace to a string similar to the one that the .Net framework
            would ordinarily construct.
            </summary>
            <remarks>
            <para>
            The exception will not be terminated by a new line.
            </para>
            </remarks>
            <returns>The formatted stack trace.</returns>
        </member>
        <member name="M:Gallio.Common.Diagnostics.StackTraceData.WriteTo(Gallio.Common.Markup.MarkupStreamWriter)">
            <summary>
            Writes the stack trace in a structured format with markers to distinguish its component elements.
            </summary>
            <remarks>
            <para>
            The stack trace will not be terminated by a new line.
            </para>
            </remarks>
            <param name="writer">The log stream writer.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="writer"/> is null.</exception>
        </member>
        <member name="P:Gallio.Common.Diagnostics.StackTraceData.IsEmpty">
            <summary>
            Returns true if the stack trace data is empty.
            </summary>
        </member>
        <member name="T:Gallio.Common.Diagnostics.StackTraceFilter">
            <summary>
            Provides methods for filtering the stack trace for tests.
            </summary>
            <remarks>
            <para>
            The objective of this filtering is to omit frames that are not relevant to the user
            when reporting stack traces.
            </para>
            <para>
            Stack trace filtering proceeds as follows:
            <list type="bullet">
            <item>Stack frames that have an associated <see cref="T:System.Diagnostics.DebuggerHiddenAttribute"/>
            or <see cref="T:Gallio.Common.Diagnostics.SystemInternalAttribute"/> are omitted.</item>
            <item>The stack trace is chopped just above the top-most stack frame with
            an associated <see cref="T:Gallio.Common.Diagnostics.UserCodeEntryPointAttribute"/>.</item>
            </list>
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Common.Diagnostics.StackTraceFilter.FilterStackTrace(System.String)">
            <summary>
            Filters a stack trace.
            </summary>
            <param name="stackTrace">The stack trace.</param>
            <returns>The filtered stack trace.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="stackTrace"/>
            is null.</exception>
        </member>
        <member name="M:Gallio.Common.Diagnostics.StackTraceFilter.FilterStackTraceToString(System.Diagnostics.StackTrace)">
            <summary>
            Filters a stack trace.
            </summary>
            <param name="stackTrace">The stack trace.</param>
            <returns>The filtered stack trace string.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="stackTrace"/>
            is null.</exception>
        </member>
        <member name="M:Gallio.Common.Diagnostics.StackTraceFilter.FilterException(System.Exception)">
            <summary>
            Filters the stack trace information in an exception.
            </summary>
            <param name="exception">The exception.</param>
            <returns>The filtered exception data.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="exception"/>
            is null.</exception>
        </member>
        <member name="M:Gallio.Common.Diagnostics.StackTraceFilter.FilterException(Gallio.Common.Diagnostics.ExceptionData)">
            <summary>
            Filters the stack trace information about an exception.
            </summary>
            <param name="exception">The exception data.</param>
            <returns>The filtered exception data.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="exception"/>
            is null.</exception>
        </member>
        <member name="M:Gallio.Common.Diagnostics.StackTraceFilter.CaptureFilteredStackTrace">
            <summary>
            Captures a filtered stack trace from the currently executing thread.
            </summary>
            <returns>The filtered stack trace.</returns>
        </member>
        <member name="T:Gallio.Common.Diagnostics.SystemInternalAttribute">
            <summary>
            This attribute is used to mark methods and types that are internal to the implementation
            of the system.
            </summary>
            <remarks>
            <para>
            The <see cref="T:Gallio.Common.Diagnostics.StackTraceFilter"/> class uses this attribute to identify stack
            frames that may safely be filtered out when describing failures to users.  If the
            stack frame refers to a method with this attribute or declared by a type
            with this attribute then it is omitted.  The attribute also applies to nested types
            to help cover anonymous delegates as well.
            </para>
            <para>
            Other attributes may also contribute to stack trace filtering.  Refer to
            <see cref="T:Gallio.Common.Diagnostics.StackTraceFilter"/> for details.
            </para>
            <para>
            The <see cref="T:Gallio.Common.Diagnostics.ExceptionData"/> class uses this attribute to identify exception
            properties that should not be captured automatically.
            </para>
            </remarks>
        </member>
        <member name="T:Gallio.Common.Diagnostics.UserCodeEntryPointAttribute">
            <summary>
            This attribute is used to mark methods that call into user code.
            </summary>
            <remarks>
            <para>
            The <see cref="T:Gallio.Common.Diagnostics.StackTraceFilter"/> uses this attribute to determine at what
            point control flow initially transitioned from the test framework into the test.
            It can then filter out irrelevant frames that lie above the entry point.
            </para>
            <para>
            If two entry points are nested within one another in the call stack, then the
            effect is the same as if the outermost entry point did not appear.  This enables
            test frameworks to support recursion into themselves.
            </para>
            <para>
            Other attributes may also contribute to stack trace filtering.  Refer to
            <see cref="T:Gallio.Common.Diagnostics.StackTraceFilter"/> for details.
            </para>
            </remarks>
        </member>
        <member name="T:Gallio.Common.EqualityComparison">
            <summary>
            Represents a method that determines whether two objects of the same type are equal.
            </summary>
            <param name="x">The first object to compare.</param>
            <param name="y">The second object to compare.</param>
            <returns>True if the object are equal; otherwise false.</returns>
        </member>
        <member name="T:Gallio.Common.EqualityComparison`1">
            <summary>
            Represents a strongly-typed method that determines whether two objects of the same type are equal.
            </summary>
            <remarks>
            <para>
            This delegate is for <see cref="T:System.IEquatable`1"/>, what <see cref="T:System.Comparison`1"/> is
            for <see cref="T:System.IComparable`1"/>.
            </para>
            </remarks>
            <typeparam name="T">The type of the objects to compare.</typeparam>
            <param name="x">The first object to compare.</param>
            <param name="y">The second object to compare.</param>
            <returns>True if the object are equal; otherwise false.</returns>
        </member>
        <member name="T:Gallio.Common.IO.NamespaceDoc">
            <summary>
            The Gallio.Common.IO namespace contains utilities and a test-friendly facade for
            common input/output operations.
            </summary>
        </member>
        <member name="T:Gallio.Common.Markup.NamespaceDoc">
            <summary>
            The Gallio.Common.Markup namespace provides a structured text format
            consisting of documents which may have multiple streams of text each of
            which may be subdivided into sections of text with optional style markers.
            </summary>
        </member>
        <member name="T:Gallio.Common.Markup.Tags.NamespaceDoc">
            <summary>
            The Gallio.Common.Markup.Tags namespace defines the tags used by the
            markup document format to encode structured documents in Xml.
            </summary>
        </member>
        <member name="T:Gallio.Common.Media.BitmapVideoFrame">
            <summary>
            A video frame that consists of a bitmap.
            </summary>
        </member>
        <member name="T:Gallio.Common.Media.VideoFrame">
            <summary>
            Represents a single frame of video content.
            </summary>
        </member>
        <member name="M:Gallio.Common.Media.VideoFrame.CopyPixels(System.Drawing.Rectangle,System.Int32[],System.Int32,System.Int32)">
            <summary>
            Copies pixels from the frame into a buffer.
            </summary>
            <param name="sourceRect">The source rectangle of pixels to copy.</param>
            <param name="pixelBuffer">The buffer into which to copy the pixels as 32bit RGB with the upper 8 bits zeroed out.</param>
            <param name="startOffset">The start offset where the first pixel should be written.</param>
            <param name="stride">The incremental offset between subsequent rows of pixels.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="pixelBuffer"/> is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if the <paramref name="sourceRect"/> components,
            <paramref name="startOffset"/> or <paramref name="stride"/> are negative or if they would cause pixels
            to be written outside the bounds of the pixel buffer.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if the <paramref name="sourceRect"/> components
            are negative, <paramref name="startOffset"/> is outside the bounds of the pixel buffer, or <paramref name="stride"/>
            is less than the width of the rectange.</exception>
            <exception cref="T:System.ArgumentException">Thrown if the combined <paramref name="sourceRect"/> dimensions,
            <paramref name="startOffset"/> and <paramref name="stride"/> would cause pixels to be written out
            of bounds of the pixel buffer.</exception>
        </member>
        <member name="M:Gallio.Common.Media.VideoFrame.CopyPixelsImpl(System.Drawing.Rectangle,System.Int32[],System.Int32,System.Int32)">
            <summary>
            Copies pixels from the frame into a buffer.
            </summary>
            <remarks>
            <para>
            The arguments have already been checked to ensure that all pixels in the requested
            range will fit in the pixel buffer.  The implementation can assume that it will be safe to
            write all requested pixels into the buffer (so it may use unmanaged code to do so
            if desired).
            </para>
            </remarks>
            <param name="sourceRect">The source rectangle of pixels to copy.</param>
            <param name="pixelBuffer">The buffer into which to copy the pixels as 32bit RGB with the upper 8 bits zeroed out.</param>
            <param name="startOffset">The start offset where the first pixel should be written.</param>
            <param name="stride">The incremental offset between subsequent rows of pixels.</param>
        </member>
        <member name="P:Gallio.Common.Media.VideoFrame.Width">
            <summary>
            Gets the width of the video frame.
            </summary>
        </member>
        <member name="P:Gallio.Common.Media.VideoFrame.Height">
            <summary>
            Gets the height of the video frame.
            </summary>
        </member>
        <member name="M:Gallio.Common.Media.BitmapVideoFrame.#ctor(System.Drawing.Bitmap)">
            <summary>
            Creates a bitmap video frame.
            </summary>
            <param name="bitmap">The bitmap.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="bitmap"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Media.BitmapVideoFrame.CopyPixelsImpl(System.Drawing.Rectangle,System.Int32[],System.Int32,System.Int32)">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Media.BitmapVideoFrame.Bitmap">
            <summary>
            Gets the bitmap.
            </summary>
        </member>
        <member name="P:Gallio.Common.Media.BitmapVideoFrame.Width">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Media.BitmapVideoFrame.Height">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Common.Media.VerticalAlignment">
            <summary>
            Specifies the vertical alignment of a caption.
            </summary>
        </member>
        <member name="F:Gallio.Common.Media.VerticalAlignment.Top">
            <summary>
            Specifies top alignment.
            </summary>
        </member>
        <member name="F:Gallio.Common.Media.VerticalAlignment.Middle">
            <summary>
            Specifies middle alignment.
            </summary>
        </member>
        <member name="F:Gallio.Common.Media.VerticalAlignment.Bottom">
            <summary>
            Specifies bottom alignment.
            </summary>
        </member>
        <member name="T:Gallio.Common.Media.HorizontalAlignment">
            <summary>
            Specifies the horizontal alignment of a caption.
            </summary>
        </member>
        <member name="F:Gallio.Common.Media.HorizontalAlignment.Left">
            <summary>
            Specifies left alignment.
            </summary>
        </member>
        <member name="F:Gallio.Common.Media.HorizontalAlignment.Center">
            <summary>
            Specifies horizontal alignment.
            </summary>
        </member>
        <member name="F:Gallio.Common.Media.HorizontalAlignment.Right">
            <summary>
            Specifies right alignment.
            </summary>
        </member>
        <member name="T:Gallio.Common.Media.CaptionOverlay">
            <summary>
            Displays a caption overlayed on top of an image.
            </summary>
        </member>
        <member name="T:Gallio.Common.Media.Overlay">
            <summary>
            Abstract base class for video overlays.
            </summary>
        </member>
        <member name="M:Gallio.Common.Media.Overlay.Paint(Gallio.Common.Media.OverlayPaintRequest)">
            <summary>
            Paints the overlay.
            </summary>
            <param name="request">The paint request.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="request"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Media.Overlay.PaintImpl(Gallio.Common.Media.OverlayPaintRequest)">
            <summary>
            Paints the overlay.
            </summary>
            <param name="request">The paint request, not null.</param>
        </member>
        <member name="M:Gallio.Common.Media.CaptionOverlay.#ctor">
            <summary>
            Creates a caption overlay.
            </summary>
        </member>
        <member name="M:Gallio.Common.Media.CaptionOverlay.PaintImpl(Gallio.Common.Media.OverlayPaintRequest)">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Media.CaptionOverlay.Text">
            <summary>
            Gets or sets the text of the caption.
            </summary>
            <value>The text of the caption or an empty string if none.</value>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="P:Gallio.Common.Media.CaptionOverlay.FontSize">
            <summary>
            Gets or sets the font size.
            </summary>
            <value>The font size.  Default is 16.</value>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="value"/> is less than 1.</exception>
        </member>
        <member name="P:Gallio.Common.Media.CaptionOverlay.HorizontalAlignment">
            <summary>
            Gets or sets the horizontal alignment.
            </summary>
            <value>The horizontal alignment.  Default is <see cref="F:Gallio.Common.Media.HorizontalAlignment.Left"/>.</value>
        </member>
        <member name="P:Gallio.Common.Media.CaptionOverlay.VerticalAlignment">
            <summary>
            Gets or sets the vertical alignment.
            </summary>
            <value>The vertical alignment.  Default is <see cref="F:Gallio.Common.Media.VerticalAlignment.Top"/>.</value>
        </member>
        <member name="T:Gallio.Common.Media.CaptureParameters">
            <summary>
            Specifies parameters for screenshot captures.
            </summary>
        </member>
        <member name="M:Gallio.Common.Media.CaptureParameters.#ctor">
            <summary>
            Creates a capture parameters object.
            </summary>
        </member>
        <member name="P:Gallio.Common.Media.CaptureParameters.Zoom">
            <summary>
            Gets or sets the zoom factor.
            </summary>
            <remarks>
            <para>
            The zoom factor specifies the degree of magnification or reduction desired.
            For example, a zoom factor of 1.0 (the default) is normal size, 0.25 reduces to one quarter the
            original size and 2.0 magnifies to twice the original size.
            </para>
            </remarks>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="value"/> is less than 1/16 or more than 16.</exception>
        </member>
        <member name="T:Gallio.Common.Media.NamespaceDoc">
            <summary>
            The Gallio.Common.Media namespace provides types for capturing
            screenshots and encoding video content.
            </summary>
        </member>
        <member name="T:Gallio.Common.Media.OverlayManager">
            <summary>
            Manages video source overlays.
            </summary>
        </member>
        <member name="M:Gallio.Common.Media.OverlayManager.#ctor">
            <summary>
            Creates an overlay manager with no overlays.
            </summary>
        </member>
        <member name="M:Gallio.Common.Media.OverlayManager.AddOverlay(Gallio.Common.Media.Overlay)">
            <summary>
            Adds an overlay.
            </summary>
            <param name="overlay">The overlay to add.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="overlay"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Media.OverlayManager.RemoveOverlay(Gallio.Common.Media.Overlay)">
            <summary>
            Removes an overlay.
            </summary>
            <param name="overlay">The overlay to remove.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="overlay"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Media.OverlayManager.PaintOverlays(Gallio.Common.Media.OverlayPaintRequest)">
            <summary>
            Asks all overlays to paint themselves.
            </summary>
            <param name="request">The paint request.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="request"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Media.OverlayManager.PaintOverlaysOnImage(System.Drawing.Image,System.Int32,System.Double)">
            <summary>
            Asks all overlays to paint themselves over the specified image.
            </summary>
            <param name="image">The image to paint on.</param>
            <param name="frameNumber">The frame number as in <see cref="P:Gallio.Common.Media.OverlayPaintRequest.FrameNumber"/>.</param>
            <param name="framesPerSecond">The number of frames per second as in <see cref="P:Gallio.Common.Media.OverlayPaintRequest.FramesPerSecond"/>.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="image"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Media.OverlayManager.ToOverlay">
            <summary>
            Returns a wrapper for the overlay manager as a composite overlay.
            </summary>
            <returns>The composite overlay.</returns>
        </member>
        <member name="P:Gallio.Common.Media.OverlayManager.Overlays">
            <summary>
            Gets the read-only list of registered overlays.
            </summary>
        </member>
        <member name="T:Gallio.Common.Media.OverlayPaintRequest">
            <summary>
            Describes a request to paint overlays.
            </summary>
        </member>
        <member name="M:Gallio.Common.Media.OverlayPaintRequest.#ctor(System.Drawing.Graphics,System.Drawing.Rectangle,System.Int32,System.Double)">
            <summary>
            Creates an overlay paint request.
            </summary>
            <param name="graphics">The graphics object to use for painting the overlay.</param>
            <param name="frameBounds">The bounds of the frame that is being rendered into the graphics context.</param>
            <param name="frameNumber">The zero-based monotonically increasing number of the frame that is being rendered.</param>
            <param name="framesPerSecond">The frame rate expressed as the number of frames per second, or zero if the frame is static.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="graphics"/> is null.</exception>
        </member>
        <member name="P:Gallio.Common.Media.OverlayPaintRequest.Graphics">
            <summary>
            Gets the graphics object to use for painting the overlay.
            </summary>
        </member>
        <member name="P:Gallio.Common.Media.OverlayPaintRequest.FramesBounds">
            <summary>
            Gets the bounds of the frame that is being rendered into the graphics context.
            </summary>
        </member>
        <member name="P:Gallio.Common.Media.OverlayPaintRequest.FrameNumber">
            <summary>
            Gets the zero-based monotonically increasing number of the frame that is being rendered.
            </summary>
        </member>
        <member name="P:Gallio.Common.Media.OverlayPaintRequest.FramesPerSecond">
            <summary>
            Gets the frame rate expressed as the number of frames per second, or zero if the frame is static.
            </summary>
        </member>
        <member name="T:Gallio.Common.Media.ScreenshotNotAvailableException">
            <summary>
            An exception that is thrown when screenshots cannot be captured.
            </summary>
            <remarks>
            <para>
            This exception may indicate that the application is running as a service which has
            not been granted the right to interact with the desktop.
            </para>
            </remarks>
        </member>
        <member name="T:Gallio.Common.Media.MediaException">
            <summary>
            An exception that expresses a problem performing a media operation.
            </summary>
        </member>
        <member name="M:Gallio.Common.Media.MediaException.#ctor">
            <summary>
            Creates an exception.
            </summary>
        </member>
        <member name="M:Gallio.Common.Media.MediaException.#ctor(System.String)">
            <summary>
            Creates an exception.
            </summary>
            <param name="message">The message.</param>
        </member>
        <member name="M:Gallio.Common.Media.MediaException.#ctor(System.String,System.Exception)">
            <summary>
            Creates an exception.
            </summary>
            <param name="message">The message.</param>
            <param name="innerException">The inner exception.</param>
        </member>
        <member name="M:Gallio.Common.Media.MediaException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Creates an exception from serialization info.
            </summary>
            <param name="info">The serialization info.</param>
            <param name="context">The streaming context.</param>
        </member>
        <member name="M:Gallio.Common.Media.ScreenshotNotAvailableException.#ctor">
            <summary>
            Creates an exception.
            </summary>
        </member>
        <member name="M:Gallio.Common.Media.ScreenshotNotAvailableException.#ctor(System.String)">
            <summary>
            Creates an exception.
            </summary>
            <param name="message">The message.</param>
        </member>
        <member name="M:Gallio.Common.Media.ScreenshotNotAvailableException.#ctor(System.String,System.Exception)">
            <summary>
            Creates an exception.
            </summary>
            <param name="message">The message.</param>
            <param name="innerException">The inner exception.</param>
        </member>
        <member name="M:Gallio.Common.Media.ScreenshotNotAvailableException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Creates an exception from serialization info.
            </summary>
            <param name="info">The serialization info.</param>
            <param name="context">The streaming context.</param>
        </member>
        <member name="T:Gallio.Common.Media.ScreenRecorder">
            <summary>
            Records screenshots as a video.
            </summary>
        </member>
        <member name="M:Gallio.Common.Media.ScreenRecorder.#ctor(Gallio.Common.Media.ScreenGrabber,Gallio.Common.Media.Video)">
            <summary>
            Creates a screen recorder.
            </summary>
            <param name="grabber">The screen grabber.</param>
            <param name="video">The video to which frames are to be added.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="grabber"/> or
            <paramref name="video"/> is null.</exception>
            <exception cref="T:System.ArgumentException">Thrown if <paramref name="video"/> size
            is not exactly equal to the <paramref name="grabber"/> screenshot size.</exception>
        </member>
        <member name="M:Gallio.Common.Media.ScreenRecorder.Dispose">
            <summary>
            Disposes the screen recorder.
            </summary>
        </member>
        <member name="M:Gallio.Common.Media.ScreenRecorder.Start">
            <summary>
            Starts or resumes recording.
            </summary>
            <exception cref="T:System.ObjectDisposedException">Thrown if the object has been disposed.</exception>
        </member>
        <member name="M:Gallio.Common.Media.ScreenRecorder.Stop">
            <summary>
            Stops recorded.
            </summary>
            <exception cref="T:System.ObjectDisposedException">Thrown if the object has been disposed.</exception>
        </member>
        <member name="M:Gallio.Common.Media.ScreenRecorder.PaintOverlays(System.Drawing.Bitmap)">
            <summary>
            Paints overlays onto a bitmap.
            </summary>
            <param name="bitmap">The bitmap, not null.</param>
        </member>
        <member name="M:Gallio.Common.Media.ScreenRecorder.AddFrame(System.Drawing.Bitmap)">
            <summary>
            Adds a captured screenshot to the video.
            </summary>
            <param name="bitmap">The bitmap, not null.</param>
        </member>
        <member name="M:Gallio.Common.Media.ScreenRecorder.Dispose(System.Boolean)">
            <summary>
            Disposes the screen recorder.
            </summary>
            <param name="disposing">True if <see cref="M:Gallio.Common.Media.ScreenRecorder.Dispose"/> was called directly.</param>
        </member>
        <member name="M:Gallio.Common.Media.ScreenRecorder.ThrowIfDisposed">
            <summary>
            Throws <see cref="T:System.ObjectDisposedException"/> if the object has been disposed.
            </summary>
        </member>
        <member name="P:Gallio.Common.Media.ScreenRecorder.OverlayManager">
            <summary>
            Gets the overlay manager.
            </summary>
        </member>
        <member name="P:Gallio.Common.Media.ScreenRecorder.FrameNumber">
            <summary>
            Gets the current frame number.
            </summary>
        </member>
        <member name="P:Gallio.Common.Media.ScreenRecorder.FramesPerSecond">
            <summary>
            Gets the number of frames per second.
            </summary>
        </member>
        <member name="P:Gallio.Common.Media.ScreenRecorder.Grabber">
            <summary>
            Gets the screen grabber in use.
            </summary>
            <exception cref="T:System.ObjectDisposedException">Thrown if the object has been disposed.</exception>
        </member>
        <member name="P:Gallio.Common.Media.ScreenRecorder.Video">
            <summary>
            Gets the video being recorded.
            </summary>
            <exception cref="T:System.ObjectDisposedException">Thrown if the object has been disposed.</exception>
        </member>
        <member name="T:Gallio.Common.Media.VideoParameters">
            <summary>
            Specifies the parameters for a video.
            </summary>
            <seealso cref="T:Gallio.Common.Media.Video"/>
        </member>
        <member name="M:Gallio.Common.Media.VideoParameters.#ctor(System.Int32,System.Int32,System.Double)">
            <summary>
            Creates a video parameters object.
            </summary>
            <param name="width">The width of the video.</param>
            <param name="height">The height of the video.</param>
            <param name="framesPerSecond">The number of frames per second of the video.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="width"/> or <paramref name="height"/>,
            or <paramref name="framesPerSecond"/> are zero or negative.</exception>
        </member>
        <member name="P:Gallio.Common.Media.VideoParameters.Width">
            <summary>
            Gets the width of the video.
            </summary>
        </member>
        <member name="P:Gallio.Common.Media.VideoParameters.Height">
            <summary>
            Gets the height of the video.
            </summary>
        </member>
        <member name="P:Gallio.Common.Media.VideoParameters.FramesPerSecond">
            <summary>
            Gets the number of frames per second of the video.
            </summary>
        </member>
        <member name="T:Gallio.Common.Media.FlashScreenVideoParameters">
            <summary>
            Specifies the parameters for a Flash screen video.
            </summary>
            <seealso cref="T:Gallio.Common.Media.FlashScreenVideo"/>
        </member>
        <member name="M:Gallio.Common.Media.FlashScreenVideoParameters.#ctor(System.Int32,System.Int32,System.Double)">
            <summary>
            Creates a Flash video parameters object.
            </summary>
            <param name="width">The video width.</param>
            <param name="height">The video height.</param>
            <param name="framesPerSecond">The number of frames per second.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="width"/> or <paramref name="height"/>
            are not between 1 and 4095 or if <paramref name="framesPerSecond"/> is not greater than zero.</exception>
        </member>
        <member name="P:Gallio.Common.Media.FlashScreenVideoParameters.BlockWidth">
            <summary>
            Gets or sets the width of each block to be compressed.
            </summary>
            <remarks>
            <para>
            The block height must be a multiple of 16 between 16 and 256.  The default is 64.
            </para>
            </remarks>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="value"/> is invalid.</exception>
        </member>
        <member name="P:Gallio.Common.Media.FlashScreenVideoParameters.BlockHeight">
            <summary>
            Gets or sets the height of each block to be compressed.
            </summary>
            <remarks>
            <para>
            The block height must be a multiple of 16 between 16 and 256.  The default is 64.
            </para>
            </remarks>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="value"/> is invalid.</exception>
        </member>
        <member name="P:Gallio.Common.Media.FlashScreenVideoParameters.CompressionLevel">
            <summary>
            Gets or sets the ZLib compression level.
            </summary>
            <remarks>
            <para>
            Range: 0 (fast / uncompressed), 1 (fast / worst compression), 6 (default), 9 (slow / best compression).
            </para>
            </remarks>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="value"/> is invalid.</exception>
        </member>
        <member name="P:Gallio.Common.Media.FlashScreenVideoParameters.KeyFramePeriod">
            <summary>
            Gets the interval between successive key frames.
            </summary>
            <remarks>
            <para>
            The default is 2 seconds.  If you use a value of 0, then every frame will be a key frame.
            </para>
            </remarks>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="value"/> is negative.</exception>
        </member>
        <member name="T:Gallio.Common.Media.FlvWriter">
            <summary>
            Writes FLV streams.
            </summary>
        </member>
        <member name="T:Gallio.Common.Media.FlashScreenVideo">
            <summary>
            Encodes video frames as FLV files using the Flash ScreenVideo lossless video codec.
            </summary>
            <remarks>
            <para>
            This video format is useful for embedding video screen captures within web based test reports.
            Frames are encoded as blocks of 16x16 pixel tiles compressed using ZLib.  Unchanged tiles are retained
            from the previous frame.
            </para>
            <para>
            The maximum frame size for this video format is 4095x4095.
            </para>
            </remarks>
        </member>
        <member name="T:Gallio.Common.Media.Video">
            <summary>
            A video is an abstraction of an encoded video stream (possibly incorporating audio).
            </summary>
            <remarks>
            <para>
            The primary use of this class is to author videos that can be embedded in test
            reports.  It is not intended to be used for playback.
            </para>
            <para>
            Subclasses define specific encoding formats.
            </para>
            <para>
            While a video is being created, its contents may be buffered in memory or on disk
            in a temporary location.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Common.Media.Video.#ctor(Gallio.Common.Media.VideoParameters)">
            <summary>
            Creates a new video.
            </summary>
            <param name="parameters">The video parameters.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="parameters"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Media.Video.AddFrame(Gallio.Common.Media.VideoFrame)">
            <summary>
            Adds a frame to the video.
            </summary>
            <remarks>
            <para>
            The implementation makes a copy of the frame or encodes it immediately so that
            the caller can reuse the same frame buffers for subsequent frames.
            </para>
            </remarks>
            <param name="frame">The video frame to add.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="frame"/> is null.</exception>
            <exception cref="T:System.ArgumentException">Thrown if the <paramref name="frame"/> dimensions are not
            exactly equal to those of the video.</exception>
        </member>
        <member name="M:Gallio.Common.Media.Video.Save(System.IO.Stream)">
            <summary>
            Saves the video to a stream.
            </summary>
            <param name="stream">The stream.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="stream"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Media.Video.AddFrameImpl(Gallio.Common.Media.VideoFrame)">
            <summary>
            Adds a frame to the video.
            </summary>
            <remarks>
            <para>
            The implementation makes a copy of the frame or encodes it immediately so that
            the caller can reuse the same frame buffers for subsequent frames.
            </para>
            <para>
            The frame dimensions have already been checked by the caller.
            </para>
            </remarks>
            <param name="frame">The video frame to add, not null.</param>
        </member>
        <member name="M:Gallio.Common.Media.Video.SaveImpl(System.IO.Stream)">
            <summary>
            Saves the video to a stream.
            </summary>
            <param name="stream">The stream, not null.</param>
        </member>
        <member name="P:Gallio.Common.Media.Video.MimeType">
            <summary>
            Gets the mime-type of the video format.
            </summary>
            <seealso cref="T:Gallio.Common.Markup.MimeTypes"/>
        </member>
        <member name="P:Gallio.Common.Media.Video.Parameters">
            <summary>
            Gets the video parameters.
            </summary>
        </member>
        <member name="P:Gallio.Common.Media.Video.FrameCount">
            <summary>
            Gets the number of frames currently in the video.
            </summary>
        </member>
        <member name="M:Gallio.Common.Media.FlashScreenVideo.#ctor(Gallio.Common.Media.FlashScreenVideoParameters)">
            <summary>
            Creates a new Flash screen video.
            </summary>
            <param name="parameters">The video parameters.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="parameters"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Media.FlashScreenVideo.AddFrameImpl(Gallio.Common.Media.VideoFrame)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Media.FlashScreenVideo.SaveImpl(System.IO.Stream)">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Media.FlashScreenVideo.FrameCount">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Media.FlashScreenVideo.Parameters">
            <summary>
            Gets the video parameters.
            </summary>
        </member>
        <member name="P:Gallio.Common.Media.FlashScreenVideo.MimeType">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Common.Media.ScreenGrabber">
            <summary>
            Grabs screenshots.
            </summary>
        </member>
        <member name="M:Gallio.Common.Media.ScreenGrabber.#ctor(Gallio.Common.Media.CaptureParameters)">
            <summary>
            Creates a screen grabber.
            </summary>
            <param name="parameters">The capture parameters.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="parameters"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Media.ScreenGrabber.GetScreenSize">
            <summary>
            Gets the size of the screen.
            </summary>
            <returns>The screen size.</returns>
        </member>
        <member name="M:Gallio.Common.Media.ScreenGrabber.CanCaptureScreenshot">
            <summary>
            Returns true if screenshots can be captured.
            </summary>
            <remarks>
            <para>
            This method may return false if the application is running as a service which has
            not been granted the right to interact with the desktop.
            </para>
            </remarks>
            <returns>True if the screen can be captured.</returns>
        </member>
        <member name="M:Gallio.Common.Media.ScreenGrabber.ThrowIfScreenshotNotAvailable">
            <summary>
            Throws an exception if a screenshot cannot be captured at this time.
            </summary>
            <exception cref="T:Gallio.Common.Media.ScreenshotNotAvailableException">Thrown if a screenshot cannot be captured at this time.</exception>
        </member>
        <member name="M:Gallio.Common.Media.ScreenGrabber.Dispose">
            <summary>
            Disposes the screen grabber.
            </summary>
        </member>
        <member name="M:Gallio.Common.Media.ScreenGrabber.CaptureScreenshot(System.Drawing.Bitmap)">
            <summary>
            Captures a screenshot.
            </summary>
            <remarks>
            <para>
            Captures a screenshot and returns the bitmap.  The caller is responsible for disposing
            the bitmap when no longer needed.
            </para>
            </remarks>
            <param name="bitmap">If not null writes the screenshot into the specified bitmap,
            otherwise creates and returns a new bitmap.</param>
            <returns>The screenshot.</returns>
            <exception cref="T:System.ArgumentException">Thrown if the provided <paramref name="bitmap"/> is
            not of the expected size.</exception>
            <exception cref="T:System.ObjectDisposedException">Thrown if the object has been disposed.</exception>
            <exception cref="T:Gallio.Common.Media.ScreenshotNotAvailableException">Thrown if a screenshot cannot be captured at this time.</exception>
        </member>
        <member name="M:Gallio.Common.Media.ScreenGrabber.PaintOverlays(System.Drawing.Bitmap)">
            <summary>
            Paints overlays onto a bitmap.
            </summary>
            <param name="bitmap">The bitmap, not null.</param>
        </member>
        <member name="M:Gallio.Common.Media.ScreenGrabber.Dispose(System.Boolean)">
            <summary>
            Disposes the screen grabber.
            </summary>
            <param name="disposing">True if <see cref="M:Gallio.Common.Media.ScreenGrabber.Dispose"/> was called directly.</param>
        </member>
        <member name="M:Gallio.Common.Media.ScreenGrabber.ThrowIfDisposed">
            <summary>
            Throws <see cref="T:System.ObjectDisposedException"/> if the object has been disposed.
            </summary>
        </member>
        <member name="P:Gallio.Common.Media.ScreenGrabber.OverlayManager">
            <summary>
            Gets the overlay manager.
            </summary>
        </member>
        <member name="P:Gallio.Common.Media.ScreenGrabber.Parameters">
            <summary>
            Gets the capture parameters.
            </summary>
            <exception cref="T:System.ObjectDisposedException">Thrown if the object has been disposed.</exception>
        </member>
        <member name="P:Gallio.Common.Media.ScreenGrabber.ScreenshotWidth">
            <summary>
            Gets the width of the screenshots that will be taken.
            </summary>
            <exception cref="T:System.ObjectDisposedException">Thrown if the object has been disposed.</exception>
        </member>
        <member name="P:Gallio.Common.Media.ScreenGrabber.ScreenshotHeight">
            <summary>
            Gets the width of the screenshots that will be taken.
            </summary>
            <exception cref="T:System.ObjectDisposedException">Thrown if the object has been disposed.</exception>
        </member>
        <member name="T:Gallio.Common.Messaging.MessageExchange">
            <summary>
            A message exchange mediates interactions between a server and a client.
            </summary>
            <remarks>
            <para>
            This is interim API to be used until the new message broker is ready.
            </para>
            </remarks>
        </member>
        <member name="T:Gallio.Common.Remoting.LongLivedMarshalByRefObject">
            <summary>
            Base class for long-lived marshal by ref objects.
            </summary>
            <remarks>
            <para>
            A <see cref="T:Gallio.Common.Remoting.LongLivedMarshalByRefObject"/> represents a remote
            object whose lifetime is managed explicitly.  It ensures that long-lived
            services are not inadvertently disconnected by the remoting infrastructure
            and remain accessible until the application discards them.
            </para>
            <para>
            However, it is important to keep a reference to the marshalled object
            to ensure it does not get garbage collected prematurely.  A marshalled
            object can also be explicitly disconnected via <see cref="M:System.Runtime.Remoting.RemotingServices.Disconnect(System.MarshalByRefObject)"/>.
            </para>
            <para>
            This class overrides <see cref="M:Gallio.Common.Remoting.LongLivedMarshalByRefObject.InitializeLifetimeService"/>
            to return <c>null</c> which disables the automatic lease-management
            performed by the default lifetime service.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Common.Remoting.LongLivedMarshalByRefObject.InitializeLifetimeService">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Messaging.MessageExchange.#ctor(Gallio.Common.Messaging.IMessageSink)">
            <summary>
            Creates a message exchange.
            </summary>
            <param name="messageSink">The message sink to which messages sent by the client should
            be directed.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="messageSink"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Messaging.MessageExchange.GetClientLink">
            <summary>
            Gets an interface that a client can use to asynchronously receive and
            synchronously send messages.
            </summary>
            <returns>The client link.</returns>
        </member>
        <member name="M:Gallio.Common.Messaging.MessageExchange.Publish(Gallio.Common.Messaging.Message)">
            <summary>
            Sends a message to the client.
            </summary>
            <param name="message">The message to send.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="message"/> is null.</exception>
            <exception cref="T:Gallio.Common.Validation.ValidationException">Thrown if <paramref name="message"/> is not valid.</exception>
        </member>
        <member name="M:Gallio.Common.Messaging.MessageExchange.WaitForPublishedMessagesToBeReceived(System.TimeSpan)">
            <summary>
            Waits for all published messages to be received by the client.
            </summary>
            <param name="timeout">The timeout.</param>
            <returns>True if all messages were received, false if a timeout occurred.</returns>
        </member>
        <member name="T:Gallio.Common.Messaging.Topic">
            <summary>
            Specifies a topic key routing published messages to their subscribers.
            </summary>
            <remarks>
            <para>
            A topic consists of a sequence of dot ('.') delimited case-sensitive words.  Each word
            may contain the characters '0'-'9', 'a'-'z' and 'A'-'Z'.  eg. "testrun.1234.progress".
            Matching is performed using a <see cref="T:Gallio.Common.Messaging.TopicPattern"/>.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Common.Messaging.Topic.#ctor(System.String)">
            <summary>
            Creates a topic with a given key.
            </summary>
            <param name="key">The topic key.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="key"/> is null.</exception>
            <exception cref="T:System.ArgumentException">Thrown if <paramref name="key"/> is not a valid topic.</exception>
        </member>
        <member name="M:Gallio.Common.Messaging.Topic.ToString">
            <summary>
            Returns the topic key.
            </summary>
            <returns>The topic key.</returns>
        </member>
        <member name="P:Gallio.Common.Messaging.Topic.Key">
            <summary>
            Gets the complete topic key.
            </summary>
        </member>
        <member name="T:Gallio.Common.Messaging.TopicPattern">
            <summary>
            A topic pattern expresses a simple matching rule for topics.
            </summary>
            <remarks>
            <para>
            Topic pattern matching proceeds word-wise where words within the topic are
            separated by periods ('.').  There are two wildcards: '*' matches a single word and '#'
            matches zero or more consecutive words.  The topic must be matched in
            full by the topic pattern; partial matches are of no significance.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Common.Messaging.TopicPattern.#ctor(System.String)">
            <summary>
            Creates a topic pattern.
            </summary>
            <param name="pattern">The topic pattern string.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="pattern"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Messaging.TopicPattern.IsMatch(Gallio.Common.Messaging.Topic)">
            <summary>
            Returns true if this pattern matches the specified topic.
            </summary>
            <param name="topic">The topic to consider.</param>
            <returns>True if this pattern matches the specified topic.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="topic"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Messaging.TopicPattern.ToString">
            <summary>
            Returns the topic pattern string.
            </summary>
            <returns>The topic pattern string.</returns>
        </member>
        <member name="P:Gallio.Common.Messaging.TopicPattern.Pattern">
            <summary>
            Gets the topic pattern string.
            </summary>
        </member>
        <member name="T:Gallio.Common.NamespaceDoc">
            <summary>
            The Gallio.Common namespace contains common data types and utilities.
            </summary>
        </member>
        <member name="T:Gallio.Common.Normalization.NamespaceDoc">
            <summary>
            The Gallio.Common.Normalization namespace provides a simple abstraction
            for normalizing objects.
            </summary>
        </member>
        <member name="T:Gallio.Common.Platform.NamespaceDoc">
            <summary>
            The Gallio.Common.Platform namespace provides utilities for detecting
            native platform parameters such as the .Net runtime and framework version
            and the bitness of the currently executing process.
            </summary>
        </member>
        <member name="T:Gallio.Common.Platform.ProcessIntegrityLevel">
            <summary>
            Specifies the integrity level of a Windows process.
            </summary>
        </member>
        <member name="F:Gallio.Common.Platform.ProcessIntegrityLevel.Unknown">
            <summary>
            Unknown integrity level.
            </summary>
        </member>
        <member name="F:Gallio.Common.Platform.ProcessIntegrityLevel.Untrusted">
            <summary>
            Process is running with Untrusted integrity.
            </summary>
        </member>
        <member name="F:Gallio.Common.Platform.ProcessIntegrityLevel.Low">
            <summary>
            Process is running with Low integrity.
            </summary>
        </member>
        <member name="F:Gallio.Common.Platform.ProcessIntegrityLevel.Medium">
            <summary>
            Process is running with Medium integrity.
            </summary>
        </member>
        <member name="F:Gallio.Common.Platform.ProcessIntegrityLevel.High">
            <summary>
            Process is running with High integrity.
            </summary>
        </member>
        <member name="F:Gallio.Common.Platform.ProcessIntegrityLevel.System">
            <summary>
            Process is running with System integrity.
            </summary>
        </member>
        <member name="F:Gallio.Common.Platform.ProcessIntegrityLevel.ProtectedProcess">
            <summary>
            Process is running with Protected Process integrity.
            </summary>
        </member>
        <member name="T:Gallio.Common.Platform.RegistryUtils">
            <summary>
            Provides additional utilities for manipulating the Windows registry, particularly
            to take care of differences on 32bit and 64bit platforms.
            </summary>
        </member>
        <member name="M:Gallio.Common.Platform.RegistryUtils.TryActionOnOpenSubKeyWithBitness(System.Reflection.ProcessorArchitecture,Microsoft.Win32.RegistryHive,System.String,Gallio.Common.Func{Microsoft.Win32.RegistryKey,System.Boolean})">
            <summary>
            Opens a registry subkey taking into account the bitness of the platform
            and the requested processor architecture affinity.
            </summary>
            <remarks>
            If <paramref name="architecture"/> requests a 32bit architecture, then only
            the 32bit registry is searched.  Likewise if it requests a 64bit architecture,
            then only the 64bit registry is searched.  Otherwise searches the 64bit
            registry first then falls back on the 32bit registry.
            </remarks>
            <param name="architecture">The processor architecture affinity.</param>
            <param name="hive">The registry hive.</param>
            <param name="keyName">The key name.</param>
            <param name="action">The action to perform on the sub key.  Should return true on success.</param>
            <returns>True if the action succeeded.</returns>
            <seealso cref="M:Microsoft.Win32.RegistryKey.OpenSubKey(System.String)"/>
        </member>
        <member name="M:Gallio.Common.Platform.RegistryUtils.GetValueWithBitness(System.Reflection.ProcessorArchitecture,Microsoft.Win32.RegistryHive,System.String,System.String,System.String)">
            <summary>
            Gets a registry value taking into account the bitness of the platform
            and the requested processor architecture affinity.
            </summary>
            <remarks>
            If <paramref name="architecture"/> requests a 32bit architecture, then only
            the 32bit registry is searched.  Likewise if it requests a 64bit architecture,
            then only the 64bit registry is searched.  Otherwise searches the 64bit
            registry first then falls back on the 32bit registry.
            </remarks>
            <param name="architecture">The processor architecture affinity.</param>
            <param name="hive">The registry hive.</param>
            <param name="keyName">The key name.</param>
            <param name="valueName">The value name, or null to read the key's value.</param>
            <param name="defaultValue">The default value to return.</param>
            <returns>The value, or null if the key does not exist.</returns>
            <seealso cref="M:Microsoft.Win32.Registry.GetValue(System.String,System.String,System.Object)"/>
        </member>
        <member name="T:Gallio.Common.Policies.NamespaceDoc">
            <summary>
            The Gallio.Common.Policy namespace defines common procedures for reporting unhandled
            exceptions, processing events safely, and accessing user and machine local application data.
            </summary>
        </member>
        <member name="T:Gallio.Common.Policies.SpecialPathPolicy">
            <summary>
            Describes a policy for obtaining paths of special resources such as
            temporary directories and user profile settings files.
            </summary>
            <remarks>
            <para>
            The policy is broken down into partitions based on their common purpose.  The idea
            is that Gallio will try to keep related resources together within a directory
            named after the partition.  As an additional safeguard, all paths returned by this
            policy will be grouped within a folder called "Gallio".
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Common.Policies.SpecialPathPolicy.For``1">
            <summary>
            Gets the special path policy for a partition whose name is derived from the type's full name.
            </summary>
            <typeparam name="TPartition">The type used to define the name of the partition.</typeparam>
            <returns>The special path policy.</returns>
        </member>
        <member name="M:Gallio.Common.Policies.SpecialPathPolicy.For(System.String)">
            <summary>
            Gets the special path policy for a specified partition.
            </summary>
            <param name="partition">The partition name.</param>
            <returns>The special path policy.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="partition"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Policies.SpecialPathPolicy.GetTempDirectory">
            <summary>
            Gets the temporary directory.
            </summary>
            <returns>The temporary directory.</returns>
        </member>
        <member name="M:Gallio.Common.Policies.SpecialPathPolicy.CreateTempDirectoryWithUniqueName">
            <summary>
            Creates a temporary directory with a unique name.
            </summary>
            <returns>The temporary directory.</returns>
        </member>
        <member name="M:Gallio.Common.Policies.SpecialPathPolicy.CreateTempFileWithUniqueName">
            <summary>
            Creates a zero-byte temporary file with a unique name.
            </summary>
            <returns>The temporary file.</returns>
        </member>
        <member name="M:Gallio.Common.Policies.SpecialPathPolicy.GetRoamingUserApplicationDataDirectory">
            <summary>
            Gets the application data directory for the roaming user.
            </summary>
            <returns>The roaming user application data directory.</returns>
        </member>
        <member name="M:Gallio.Common.Policies.SpecialPathPolicy.GetLocalUserApplicationDataDirectory">
            <summary>
            Gets the application data directory for the local non-roaming user.
            </summary>
            <returns>The local non-roaming user application data directory.</returns>
        </member>
        <member name="M:Gallio.Common.Policies.SpecialPathPolicy.GetCommonApplicationDataDirectory">
            <summary>
            Gets the application data directory shared by all users.
            </summary>
            <returns>The common application data directory.</returns>
        </member>
        <member name="P:Gallio.Common.Policies.SpecialPathPolicy.Partition">
            <summary>
            Gets the name of the partition this policy describes.
            </summary>
        </member>
        <member name="T:Gallio.Common.Markup.Attachment">
            <summary>
            An attachment is an embedded object in a markup document.  An attachment must specify a
            content type (a MIME type), and some contents.
            </summary>
        </member>
        <member name="M:Gallio.Common.Markup.Attachment.#ctor(System.String,System.String)">
            <summary>
            Creates an attachment.
            </summary>
            <param name="name">The name of attachment, or null to automatically assign one.  The attachment
            name must be unique within the scope of the currently executing test step.</param>
            <param name="contentType">The content type, not null.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="contentType"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Markup.Attachment.CreatePlainTextAttachment(System.String,System.String)">
            <summary>
            Creates a plain text attachment.
            </summary>
            <param name="name">The attachment name, or null to automatically assign one.</param>
            <param name="text">The text string, not null.</param>
            <returns>The attachment.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="text"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Markup.Attachment.CreateHtmlAttachment(System.String,System.String)">
            <summary>
            Creates an HTML attachment.
            </summary>
            <param name="name">The attachment name, or null to automatically assign one.</param>
            <param name="html">The html string, not null.</param>
            <returns>The attachment.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="html"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Markup.Attachment.CreateXHtmlAttachment(System.String,System.String)">
            <summary>
            Creates an XHTML attachment.
            </summary>
            <param name="name">The attachment name, or null to automatically assign one.</param>
            <param name="xhtml">The xhtml string, not null.</param>
            <returns>The attachment.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="xhtml"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Markup.Attachment.CreateXmlAttachment(System.String,System.String)">
            <summary>
            Creates an XML attachment.
            </summary>
            <param name="name">The attachment name, or null to automatically assign one.</param>
            <param name="xml">The XML string, not null.</param>
            <returns>The attachment.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="xml"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Markup.Attachment.CreateImageAttachment(System.String,System.Drawing.Image)">
            <summary>
            Creates an image attachment with a mime-type compatible with its internal representation.
            </summary>
            <param name="name">The attachment name, or null to automatically assign one.</param>
            <param name="image">The image to attach.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="image"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Markup.Attachment.CreateVideoAttachment(System.String,Gallio.Common.Media.Video)">
            <summary>
            Creates an video attachment with a mime-type compatible with its internal representation.
            </summary>
            <param name="name">The attachment name, or null to automatically assign one.</param>
            <param name="video">The video to attach.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="video"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Markup.Attachment.CreateObjectAsXmlAttachment(System.String,System.Object,System.Xml.Serialization.XmlSerializer)">
            <summary>
            Creates XML attachment with mime-type <see cref="F:Gallio.Common.Markup.MimeTypes.Xml"/> by serializing an object.
            </summary>
            <param name="name">The attachment name, or null to automatically assign one.</param>
            <param name="obj">The object to serialize and embed, must not be null.</param>
            <param name="xmlSerializer">The xml serializer to use, or null to use the default based on the object's type.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="obj"/> is null.</exception>
            <seealso cref="T:System.Xml.Serialization.XmlSerializer"/>
        </member>
        <member name="M:Gallio.Common.Markup.Attachment.ToAttachmentData">
            <summary>
            Generates serializable attachment data from an attachment.
            </summary>
            <returns>The attachment data.</returns>
        </member>
        <member name="M:Gallio.Common.Markup.Attachment.FromAttachmentData(Gallio.Common.Markup.AttachmentData)">
            <summary>
            Recovers the attachment information from serializable attachment data.
            </summary>
            <param name="data">The attachment data.</param>
            <returns>The attachment.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="data"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Markup.Attachment.Normalize">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Markup.Attachment.Name">
            <summary>
            Gets the name of the attachment, not null.
            </summary>
        </member>
        <member name="P:Gallio.Common.Markup.Attachment.ContentType">
            <summary>
            Gets the content type of the attachment specified as a MIME type, not null.
            <seealso cref="T:Gallio.Common.Markup.MimeTypes"/> for definitions of common supported MIME types.
            </summary>
        </member>
        <member name="T:Gallio.Common.Markup.AttachmentContentDisposition">
            <summary>
            Specifies how attachments are stored in Xml and as files.
            </summary>
        </member>
        <member name="F:Gallio.Common.Markup.AttachmentContentDisposition.Absent">
            <summary>
            The attachment content is not present.
            </summary>
        </member>
        <member name="F:Gallio.Common.Markup.AttachmentContentDisposition.Link">
            <summary>
            The attachment content is saved to a linked file indicated by <see cref="P:Gallio.Common.Markup.AttachmentData.ContentPath"/>.
            </summary>
        </member>
        <member name="F:Gallio.Common.Markup.AttachmentContentDisposition.Inline">
            <summary>
            The attachment content is included inline as <see cref="P:Gallio.Common.Markup.AttachmentData.SerializedContents"/>
            with a given <see cref="P:Gallio.Common.Markup.AttachmentData.Type"/>.
            </summary>
        </member>
        <member name="T:Gallio.Common.Markup.AttachmentData">
            <summary>
            <para>
            An Xml-serializable structure that describes the contents, encoding and disposition of an attachment.
            </para>
            <para>
            The contents of the attachment are embedded in the execution log according to
            their encoding.  Text is directly embedded into the Xml whereas
            binary attachments are base 64 encoded.
            </para>
            </summary>
        </member>
        <member name="M:Gallio.Common.Markup.AttachmentData.#ctor">
            <summary>
            Creates an uninitialized instance for Xml deserialization.
            </summary>
        </member>
        <member name="M:Gallio.Common.Markup.AttachmentData.GetText">
            <summary>
            Gets the text contents of a text attachment.
            </summary>
            <returns>The text, or null if not available.</returns>
            <exception cref="T:System.InvalidOperationException">Thrown if the attachment is not textual.</exception>
        </member>
        <member name="M:Gallio.Common.Markup.AttachmentData.GetBytes">
            <summary>
            Gets the binary contents of a binary attachment.
            </summary>
            <returns>The bytes, or null if not available.</returns>
            <exception cref="T:System.InvalidOperationException">Thrown if the attachment is not binary.</exception>
        </member>
        <member name="M:Gallio.Common.Markup.AttachmentData.LoadContents(System.IO.Stream)">
            <summary>
            Loads the attachment contents from a stream.
            </summary>
            <param name="stream">The stream.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="stream"/> is null.</exception>
            <exception cref="T:System.IO.IOException">If the attachment could not be loaded.</exception>
        </member>
        <member name="M:Gallio.Common.Markup.AttachmentData.SaveContents(System.IO.Stream,System.Text.Encoding)">
            <summary>
            Saves the attachment contents to a stream.
            </summary>
            <param name="stream">The stream.</param>
            <param name="encoding">The preferred encoding to use if writing text, or null if none.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="stream"/> is null.</exception>
            <exception cref="T:System.IO.IOException">If the attachment could not be saved.</exception>
            <exception cref="T:System.InvalidOperationException">Thrown if the attachment contents are not available.</exception>
        </member>
        <member name="P:Gallio.Common.Markup.AttachmentData.Name">
            <summary>
            Gets or sets the name of the attachment, not null.
            </summary>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="P:Gallio.Common.Markup.AttachmentData.ContentType">
            <summary>
            Gets or sets the content type of the attachment as a MIME type, not null.
            </summary>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="P:Gallio.Common.Markup.AttachmentData.Type">
            <summary>
            Gets or sets the type of the attachment.
            This value specifies how the attachment is represented in Xml.
            </summary>
        </member>
        <member name="P:Gallio.Common.Markup.AttachmentData.ContentPath">
            <summary>
            Gets or sets the path of the attachment contents relative to
            the directory that contains the Xml serialized report,
            or null if the content is embedded.
            </summary>
        </member>
        <member name="P:Gallio.Common.Markup.AttachmentData.ContentDisposition">
            <summary>
            Gets or sets the content disposition of the attachment which
            indicates how the attachment has been stored.
            </summary>
            <value>The content disposition, initially <see cref="F:Gallio.Common.Markup.AttachmentContentDisposition.Inline"/></value>
        </member>
        <member name="P:Gallio.Common.Markup.AttachmentData.SerializedContents">
            <summary>
            Gets or sets the attachment content serialized as text (including Base64 attachments), possibly null if none.
            </summary>
        </member>
        <member name="P:Gallio.Common.Markup.AttachmentData.IsText">
            <summary>
            Returns true if the attachment is textual, false if it is binary.
            </summary>
        </member>
        <member name="T:Gallio.Common.Markup.BinaryAttachment">
            <summary>
            Represents a binary-encoded attachment.
            </summary>
        </member>
        <member name="M:Gallio.Common.Markup.BinaryAttachment.#ctor(System.String,System.String,System.Byte[])">
            <summary>
            Creates an attachment.
            </summary>
            <param name="name">The attachment name, not null.</param>
            <param name="contentType">The content type, not null.</param>
            <param name="bytes">The binary data, not null.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="contentType"/> or <paramref name="bytes"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Markup.BinaryAttachment.ToAttachmentData">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Markup.BinaryAttachment.Normalize">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Markup.BinaryAttachment.Equals(Gallio.Common.Markup.BinaryAttachment)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Markup.BinaryAttachment.Equals(System.Object)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Markup.BinaryAttachment.GetHashCode">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Markup.BinaryAttachment.Bytes">
            <summary>
            Gets the binary content of the attachment, not null.
            </summary>
        </member>
        <member name="T:Gallio.Common.Markup.FallbackMarkupDocumentWriter">
            <summary>
            A markup document writer that falls back to a different writer for certain
            operations when its primary markup document writer is closed.
            </summary>
            <remarks>
            <para>
            Not all operations are delegated to the fallback writer.  Some, such as
            embedding attachments and entering or exiting nested scopes, are excluded
            due to potential errors that may occur because the fallback writer may not
            have seen the previous operation to add the attachment or enter the scope.
            </para>
            </remarks>
        </member>
        <member name="T:Gallio.Common.Markup.MarkupDocumentWriter">
            <summary>
            A markup document writer records structured text as a hierarchically structured
            document.
            </summary>
            <remarks>
            <para>
            Markup documents are especially used to record the output of a test run including
            text that was written to console output streams, exceptions that occurred, and 
            anything else the test writer might want to save.
            </para>
            <para>
            A markup document consists of zero or more markup streams that are opened automatically
            on demand to capture independent sequences of log output.  Each stream can
            further be broken down into possibly nested sections to classify output
            during different phases of test execution (useful for drilling into complex tests).
            In addition to text, a markup document can contain attachments that are either attached
            at the top level of the markup document or embedded into markup streams.  Attachments are
            typed by mime-type and can contain Text, Xml, Images, Blobs, or any other content.
            Certain test frameworks may automatically create attachments to gather all manner
            of diagnostic information over the course of the test.
            </para>
            <para>
            All operations on this interface are thread-safe.
            </para>
            <para>
            Subclasses may assume that the following validation steps have been performed before
            the implementation methods are called:
            <list type="bullet">
            <item>Checking arguments for null and invalid values</item>
            <item>Ensuring that the writer has not been closed</item>
            <item>Ensuring that no attachment with the same name exists when adding an attachment</item>
            <item>Ensuring that there is an attachment with the specified name exists when embedding an attachment</item>
            <item>Ensuring that the nesting level of sections and markers is correct and balanced when End is called</item>
            </list>
            </para>
            <para>
            The object extends <see cref="T:System.MarshalByRefObject"/> so instances may be
            accessed by remote clients if required.
            </para>
            </remarks>
            <seealso cref="T:Gallio.Common.Markup.MarkupStreamWriter"/>
        </member>
        <member name="M:Gallio.Common.Markup.MarkupDocumentWriter.Close">
            <summary>
            Closes the markup document writer.
            </summary>
        </member>
        <member name="M:Gallio.Common.Markup.MarkupDocumentWriter.Flush">
            <summary>
            Flushes the markup writer.
            </summary>
        </member>
        <member name="M:Gallio.Common.Markup.MarkupDocumentWriter.Attach(Gallio.Common.Markup.Attachment)">
            <summary>
            Attaches an attachment to the document.
            </summary>
            <remarks>
            <para>
            An attachment instance can be embedded multiple times efficiently since each
            embedded copy is typically represented as a link to the same common attachment instance.
            </para>
            </remarks>
            <param name="attachment">The attachment to include.</param>
            <returns>The attachment.</returns>
            <seealso cref="M:Gallio.Common.Markup.MarkupStreamWriter.Embed(Gallio.Common.Markup.Attachment)"/>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="attachment"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Thrown if there is already an attachment
            with the same name.</exception>
        </member>
        <member name="M:Gallio.Common.Markup.MarkupDocumentWriter.AttachHtml(System.String,System.String)">
            <summary>
            Attaches an HTML attachment with mime-type <see cref="F:Gallio.Common.Markup.MimeTypes.Html"/>.
            </summary>
            <param name="attachmentName">The name of the attachment to create or null to
            automatically assign one.  The attachment name must be unique within the document.</param>
            <param name="html">The HTML to attach.</param>
            <returns>The attachment.</returns>
            <seealso cref="M:Gallio.Common.Markup.MarkupStreamWriter.EmbedHtml(System.String,System.String)"/>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="html"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Thrown if there is already an attachment
            with the same name.</exception>
        </member>
        <member name="M:Gallio.Common.Markup.MarkupDocumentWriter.AttachImage(System.String,System.Drawing.Image)">
            <summary>
            Attaches an image attachment with a mime-type compatible with its internal representation.
            </summary>
            <param name="attachmentName">The name of the attachment to create or null to
            automatically assign one.  The attachment name must be unique within the document.</param>
            <param name="image">The image to attach.</param>
            <returns>The attachment.</returns>
            <seealso cref="M:Gallio.Common.Markup.MarkupStreamWriter.EmbedImage(System.String,System.Drawing.Image)"/>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="image"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Thrown if there is already an attachment
            with the same name.</exception>
        </member>
        <member name="M:Gallio.Common.Markup.MarkupDocumentWriter.AttachVideo(System.String,Gallio.Common.Media.Video)">
            <summary>
            Attaches a video attachment with a mime-type compatible with its internal representation.
            </summary>
            <param name="attachmentName">The name of the attachment to create or null to
            automatically assign one.  The attachment name must be unique within the document.</param>
            <param name="video">The video to attach.</param>
            <returns>The attachment.</returns>
            <seealso cref="M:Gallio.Common.Markup.MarkupStreamWriter.EmbedVideo(System.String,Gallio.Common.Media.Video)"/>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="video"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Thrown if there is already an attachment
            with the same name.</exception>
        </member>
        <member name="M:Gallio.Common.Markup.MarkupDocumentWriter.AttachObjectAsXml(System.String,System.Object)">
            <summary>
            Attaches an XML-serialized object as an XML attachment with mime-type <see cref="F:Gallio.Common.Markup.MimeTypes.Xml"/>
            using the default <see cref="T:System.Xml.Serialization.XmlSerializer"/> for the object's type.
            </summary>
            <param name="attachmentName">The name of the attachment to create or null to
            automatically assign one.  The attachment name must be unique within the document.</param>
            <param name="obj">The object to serialize and embed, must not be null.</param>
            <returns>The attachment.</returns>
            <seealso cref="M:Gallio.Common.Markup.MarkupStreamWriter.EmbedObjectAsXml(System.String,System.Object)"/>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="obj"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Thrown if there is already an attachment
            with the same name.</exception>
        </member>
        <member name="M:Gallio.Common.Markup.MarkupDocumentWriter.AttachObjectAsXml(System.String,System.Object,System.Xml.Serialization.XmlSerializer)">
            <summary>
            Attaches an XML-serialized object as an XML attachment with mime-type <see cref="F:Gallio.Common.Markup.MimeTypes.Xml"/>
            using the specified <see cref="T:System.Xml.Serialization.XmlSerializer"/>.
            </summary>
            <param name="attachmentName">The name of the attachment to create or null to
            automatically assign one.  The attachment name must be unique within the document.</param>
            <param name="obj">The object to serialize and embed, must not be null.</param>
            <param name="xmlSerializer">The <see cref="T:System.Xml.Serialization.XmlSerializer"/> to use, or null to use the default <see cref="T:System.Xml.Serialization.XmlSerializer"/>
            for the object's type.</param>
            <returns>The attachment.</returns>
            <seealso cref="M:Gallio.Common.Markup.MarkupStreamWriter.EmbedObjectAsXml(System.String,System.Object,System.Xml.Serialization.XmlSerializer)"/>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="obj"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Thrown if there is already an attachment
            with the same name.</exception>
        </member>
        <member name="M:Gallio.Common.Markup.MarkupDocumentWriter.AttachPlainText(System.String,System.String)">
            <summary>
            Attaches an plain text attachment with mime-type <see cref="F:Gallio.Common.Markup.MimeTypes.PlainText"/>.
            </summary>
            <param name="attachmentName">The name of the attachment to create or null to
            automatically assign one.  The attachment name must be unique within the document.</param>
            <param name="text">The text to attach.</param>
            <returns>The attachment.</returns>
            <seealso cref="M:Gallio.Common.Markup.MarkupStreamWriter.EmbedPlainText(System.String,System.String)"/>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="text"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Thrown if there is already an attachment
            with the same name.</exception>
        </member>
        <member name="M:Gallio.Common.Markup.MarkupDocumentWriter.AttachXHtml(System.String,System.String)">
            <summary>
            Attaches an XHTML attachment with mime-type <see cref="F:Gallio.Common.Markup.MimeTypes.XHtml"/>.
            </summary>
            <param name="attachmentName">The name of the attachment to create or null to
            automatically assign one.  The attachment name must be unique within the document.</param>
            <param name="xhtml">The XHTML to attach.</param>
            <returns>The attachment.</returns>
            <seealso cref="M:Gallio.Common.Markup.MarkupStreamWriter.EmbedXHtml(System.String,System.String)"/>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="xhtml"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Thrown if there is already an attachment
            with the same name.</exception>
        </member>
        <member name="M:Gallio.Common.Markup.MarkupDocumentWriter.AttachXml(System.String,System.String)">
            <summary>
            Attaches an XML attachment with mime-type <see cref="F:Gallio.Common.Markup.MimeTypes.Xml"/>.
            </summary>
            <param name="attachmentName">The name of the attachment to create or null to
            automatically assign one.  The attachment name must be unique within the document.</param>
            <param name="xml">The XML to attach.</param>
            <returns>The attachment.</returns>
            <seealso cref="M:Gallio.Common.Markup.MarkupStreamWriter.EmbedXml(System.String,System.String)"/>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="xml"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Thrown if there is already an attachment
            with the same name.</exception>
        </member>
        <member name="M:Gallio.Common.Markup.MarkupDocumentWriter.GetStreamImpl(System.String)">
            <summary>
            Gets a writer for the stream with the specified name.
            </summary>
            <param name="streamName">The stream name, never null.</param>
            <returns>The markup stream writer.</returns>
        </member>
        <member name="M:Gallio.Common.Markup.MarkupDocumentWriter.CloseImpl">
            <summary>
            Closes the markup document writer.
            </summary>
            <remarks>
            <para>
            The implementation may prevent the document writer from being closed by throwing an
            exception.  When this happens, the log's <see cref="P:Gallio.Common.Markup.MarkupDocumentWriter.IsClosed"/> property
            will remain false.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Common.Markup.MarkupDocumentWriter.FlushImpl">
            <summary>
            Flushes the markup document writer.
            </summary>
            <remarks>
            The implementation should flush all of the individual document streams.
            </remarks>
        </member>
        <member name="M:Gallio.Common.Markup.MarkupDocumentWriter.AttachImpl(Gallio.Common.Markup.Attachment)">
            <summary>
            Adds an attachment to the markup document.
            </summary>
            <remarks>
            <para>
            The implementation should allow the same attachment instance to be attached
            multiple times and optimize this case by representing embedded attachments
            as links.
            </para>
            </remarks>
            <param name="attachment">The attachment to write, never null.</param>
            <exception cref="T:System.InvalidOperationException">Thrown if there is already an attachment
            with the same name.</exception>
        </member>
        <member name="M:Gallio.Common.Markup.MarkupDocumentWriter.StreamWriteImpl(System.String,System.String)">
            <summary>
            Writes a text string to a markup stream.
            </summary>
            <remarks>
            <para>
            The implementation can assume that newlines are normalized to LFs ('\n') only
            and that CRs ('\r') have been stripped.
            </para>
            </remarks>
            <param name="streamName">The markup stream name.</param>
            <param name="text">The text to write, never null.</param>
        </member>
        <member name="M:Gallio.Common.Markup.MarkupDocumentWriter.StreamEmbedImpl(System.String,System.String)">
            <summary>
            Embeds an attachment into a markup stream.
            </summary>
            <remarks>
            <para>
            The implementation should allow the same attachment instance to be attached
            multiple times and optimize this case by representing embedded attachments
            as links.
            </para>
            </remarks>
            <param name="streamName">The markup stream name.</param>
            <param name="attachmentName">The name of the attachment to write, never null.</param>
            <exception cref="T:System.InvalidOperationException">Thrown if no attachment with the specified
            name has been previously attached.</exception>
        </member>
        <member name="M:Gallio.Common.Markup.MarkupDocumentWriter.StreamBeginSectionImpl(System.String,System.String)">
            <summary>
            Begins a section in a markup stream.
            </summary>
            <param name="streamName">The markup stream name.</param>
            <param name="sectionName">The name of the section to begin, never null.</param>
        </member>
        <member name="M:Gallio.Common.Markup.MarkupDocumentWriter.StreamBeginMarkerImpl(System.String,Gallio.Common.Markup.Marker)">
            <summary>
            Begins a marked region in a markup stream.
            </summary>
            <param name="streamName">The markup stream name.</param>
            <param name="marker">The marker.</param>
        </member>
        <member name="M:Gallio.Common.Markup.MarkupDocumentWriter.StreamEndImpl(System.String)">
            <summary>
            Ends the current region started with one of the Begin* methods in a markup stream.
            </summary>
            <param name="streamName">The markup stream name.</param>
            <exception cref="T:System.InvalidOperationException">Thrown if there is no current nested region.</exception>
        </member>
        <member name="M:Gallio.Common.Markup.MarkupDocumentWriter.StreamFlushImpl(System.String)">
            <summary>
            Flushes a markup stream.
            </summary>
            <param name="streamName">The markup stream name.</param>
        </member>
        <member name="P:Gallio.Common.Markup.MarkupDocumentWriter.ConsoleError">
            <summary>
            Gets the stream writer for captured <see cref="P:System.Console.Error"/> messages.
            </summary>
        </member>
        <member name="P:Gallio.Common.Markup.MarkupDocumentWriter.ConsoleInput">
            <summary>
            Gets the stream writer for captured <see cref="P:System.Console.In"/> messages.
            </summary>
        </member>
        <member name="P:Gallio.Common.Markup.MarkupDocumentWriter.ConsoleOutput">
            <summary>
            Gets the stream writer for captured <see cref="P:System.Console.Out"/> messages.
            </summary>
        </member>
        <member name="P:Gallio.Common.Markup.MarkupDocumentWriter.DebugTrace">
            <summary>
            Gets the stream writer for diagnostic <see cref="T:System.Diagnostics.Debug"/> and <see cref="T:System.Diagnostics.Trace"/> messages.
            </summary>
        </member>
        <member name="P:Gallio.Common.Markup.MarkupDocumentWriter.Default">
            <summary>
            Gets the stream writer for generic log messages.
            </summary>
        </member>
        <member name="P:Gallio.Common.Markup.MarkupDocumentWriter.Failures">
            <summary>
            Gets the stream writer for reporting failure messages and exceptions.
            </summary>
        </member>
        <member name="P:Gallio.Common.Markup.MarkupDocumentWriter.Warnings">
            <summary>
            Gets the stream writer for reporting warning messages.
            </summary>
        </member>
        <member name="P:Gallio.Common.Markup.MarkupDocumentWriter.IsClosed">
            <summary>
            Returns true if the markup document writer is closed.
            </summary>
        </member>
        <member name="P:Gallio.Common.Markup.MarkupDocumentWriter.Item(System.String)">
            <summary>
            Gets the markup stream with the specified name.  If the stream
            does not exist, it is created on demand.
            </summary>
            <remarks>
            <para>
            This property may return different instances of <see cref="T:Gallio.Common.Markup.MarkupStreamWriter"/>
            each time it is called but they always represent the same stream just the same.
            </para>
            </remarks>
            <param name="streamName">The name of the markup stream.</param>
            <returns>The log stream.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="streamName"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Markup.FallbackMarkupDocumentWriter.#ctor(Gallio.Common.Markup.MarkupDocumentWriter,Gallio.Common.Markup.MarkupDocumentWriter)">
            <summary>
            Creates a fallback markup document writer with the specified provider.
            </summary>
            <param name="primary">The markup document writer to call by default.</param>
            <param name="fallback">The markup document to call as a fallback.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="primary"/>
            or <paramref name="fallback"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Markup.FallbackMarkupDocumentWriter.AttachImpl(Gallio.Common.Markup.Attachment)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Markup.FallbackMarkupDocumentWriter.StreamWriteImpl(System.String,System.String)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Markup.FallbackMarkupDocumentWriter.StreamEmbedImpl(System.String,System.String)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Markup.FallbackMarkupDocumentWriter.StreamBeginSectionImpl(System.String,System.String)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Markup.FallbackMarkupDocumentWriter.StreamBeginMarkerImpl(System.String,Gallio.Common.Markup.Marker)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Markup.FallbackMarkupDocumentWriter.StreamEndImpl(System.String)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Common.Markup.Marker">
            <summary>
            A marker is a hidden tag that labels markup contents with a semantic class.
            </summary>
            <remarks>
            <para>
            A marker is roughly equivalent in operation to an HTML "div" tag whose "class"
            attribute is used to annotate the contained block of tags and text.  In HTML
            CSS selectors are used to apply presentation artifacts to the block; likewise
            tools may vary the presentation of markup based on associated marker classes.
            </para>
            <para>
            This class provides several standard marker classes but you may also define your own
            at will just by creating a marker instance with a custom class name.
            </para>
            </remarks>
        </member>
        <member name="F:Gallio.Common.Markup.Marker.AssertionFailureClass">
            <summary>
            Standard marker class for assertion failures.
            </summary>
        </member>
        <member name="F:Gallio.Common.Markup.Marker.LabelClass">
            <summary>
            Standard marker class for labels and headings.
            </summary>
        </member>
        <member name="F:Gallio.Common.Markup.Marker.ExceptionClass">
            <summary>
            Standard marker class for exceptions including their details.
            </summary>
        </member>
        <member name="F:Gallio.Common.Markup.Marker.ExceptionTypeClass">
            <summary>
            Standard marker class for exception types reported as part of exception details.
            </summary>
        </member>
        <member name="F:Gallio.Common.Markup.Marker.ExceptionMessageClass">
            <summary>
            Standard marker class for exception messages reported as part of exception details.
            </summary>
        </member>
        <member name="F:Gallio.Common.Markup.Marker.ExceptionPropertyNameClass">
            <summary>
            Standard marker class for exception property names reported as part of exception details.
            </summary>
        </member>
        <member name="F:Gallio.Common.Markup.Marker.ExceptionPropertyValueClass">
            <summary>
            Standard marker class for exception property values reported as part of exception details.
            </summary>
        </member>
        <member name="F:Gallio.Common.Markup.Marker.StackTraceClass">
            <summary>
            Standard marker class for stack traces.
            </summary>
        </member>
        <member name="F:Gallio.Common.Markup.Marker.MonospaceClass">
            <summary>
            Standard marker class for fixed width output such as that from a console or structured table.
            </summary>
        </member>
        <member name="F:Gallio.Common.Markup.Marker.HighlightClass">
            <summary>
            Standard marker class for content that should be displayed with a highlight.
            </summary>
        </member>
        <member name="F:Gallio.Common.Markup.Marker.DiffAdditionClass">
            <summary>
            Standard marker class for content that represents added content in a diff.
            </summary>
        </member>
        <member name="F:Gallio.Common.Markup.Marker.DiffDeletionClass">
            <summary>
            Standard marker class for content that represents deleted content in a diff.
            </summary>
        </member>
        <member name="F:Gallio.Common.Markup.Marker.DiffChangeClass">
            <summary>
            Standard marker class for content that represents changed content in a diff.
            </summary>
        </member>
        <member name="F:Gallio.Common.Markup.Marker.EllipsisClass">
            <summary>
            Standard marker class for content that has been elided and may be made available
            instead as an attribute.
            </summary>
        </member>
        <member name="F:Gallio.Common.Markup.Marker.CodeLocationClass">
            <summary>
            Standard marker class for code location references.
            </summary>
        </member>
        <member name="F:Gallio.Common.Markup.Marker.CodeLocationPathAttrib">
            <summary>
            Path attribute for code location references.
            </summary>
        </member>
        <member name="F:Gallio.Common.Markup.Marker.CodeLocationLineNumberAttrib">
            <summary>
            Line attribute for code location references.
            </summary>
        </member>
        <member name="F:Gallio.Common.Markup.Marker.CodeLocationColumnNumberAttrib">
            <summary>
            Column attribute for code location references.
            </summary>
        </member>
        <member name="F:Gallio.Common.Markup.Marker.LinkClass">
            <summary>
            Standard marker class for link to a url.
            </summary>
        </member>
        <member name="F:Gallio.Common.Markup.Marker.LinkUrlAttrib">
            <summary>
            Url attribute for links.
            </summary>
        </member>
        <member name="M:Gallio.Common.Markup.Marker.CodeLocation(Gallio.Common.Reflection.CodeLocation)">
            <summary>
            Creates a standard marker for a code location.
            </summary>
        </member>
        <member name="M:Gallio.Common.Markup.Marker.Link(System.String)">
            <summary>
            Creates a standard marker for a link to a Url.
            </summary>
        </member>
        <member name="M:Gallio.Common.Markup.Marker.#ctor(System.String)">
            <summary>
            Creates a marker.
            </summary>
            <param name="class">The marker class.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="class"/> is null.</exception>
            <exception cref="T:System.ArgumentException">Thrown if the <paramref name="class"/> is not a valid identifier.  <seealso cref="M:Gallio.Common.Markup.Marker.ValidateIdentifier(System.String)"/>.</exception>
        </member>
        <member name="M:Gallio.Common.Markup.Marker.#ctor(System.String,System.Collections.Generic.IDictionary{System.String,System.String})">
            <summary>
            Creates a marker with attributes.
            </summary>
            <param name="class">The marker class.</param>
            <param name="attributes">The attributes.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="class"/> or
            <paramref name="attributes"/> is null.</exception>
            <exception cref="T:System.ArgumentException">Thrown if the <paramref name="class"/> is not a valid identifier.  <seealso cref="M:Gallio.Common.Markup.Marker.ValidateIdentifier(System.String)"/>.</exception>
        </member>
        <member name="M:Gallio.Common.Markup.Marker.WithAttribute(System.String,System.String)">
            <summary>
            Creates a copy of the marker with the specified attribute added.
            </summary>
            <param name="name">The attribute name.</param>
            <param name="value">The attribute value.</param>
            <returns>The marker copy with the attribute.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="name"/>
            or <paramref name="value"/> is null.</exception>
            <exception cref="T:System.ArgumentException">Thrown if the <paramref name="name"/> is not a valid identifier.  <seealso cref="M:Gallio.Common.Markup.Marker.ValidateIdentifier(System.String)"/>.</exception>
        </member>
        <member name="M:Gallio.Common.Markup.Marker.ValidateIdentifier(System.String)">
            <summary>
            Verifies that the parameter is a valid marker class or attribute identifier.
            </summary>
            <param name="identifier">The identifier.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="identifier"/> is null.</exception>
            <exception cref="T:System.ArgumentException">Thrown if <paramref name="identifier"/> is empty or contains characters
            other than letters, digits and underscores.</exception>
        </member>
        <member name="M:Gallio.Common.Markup.Marker.ToString">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Markup.Marker.Equals(Gallio.Common.Markup.Marker)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Markup.Marker.Equals(System.Object)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Markup.Marker.GetHashCode">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Markup.Marker.op_Equality(Gallio.Common.Markup.Marker,Gallio.Common.Markup.Marker)">
            <summary>
            Returns true if two markers are equal.
            </summary>
            <param name="a">The first marker to compare.</param>
            <param name="b">The second marker to compare.</param>
            <returns>True if the markers are equal.</returns>
        </member>
        <member name="M:Gallio.Common.Markup.Marker.op_Inequality(Gallio.Common.Markup.Marker,Gallio.Common.Markup.Marker)">
            <summary>
            Returns true if two markers are not equal.
            </summary>
            <param name="a">The first marker to compare.</param>
            <param name="b">The second marker to compare.</param>
            <returns>True if the markers are not equal.</returns>
        </member>
        <member name="P:Gallio.Common.Markup.Marker.AssertionFailure">
            <summary>
            Standard marker for assertion failures.
            </summary>
        </member>
        <member name="P:Gallio.Common.Markup.Marker.Label">
            <summary>
            Standard marker for labels and headings.
            </summary>
        </member>
        <member name="P:Gallio.Common.Markup.Marker.Exception">
            <summary>
            Standard marker for exceptions including their details.
            </summary>
        </member>
        <member name="P:Gallio.Common.Markup.Marker.ExceptionType">
            <summary>
            Standard marker for exception types reported as part of exception details.
            </summary>
        </member>
        <member name="P:Gallio.Common.Markup.Marker.ExceptionMessage">
            <summary>
            Standard marker for exception messages reported as part of exception details.
            </summary>
        </member>
        <member name="P:Gallio.Common.Markup.Marker.ExceptionPropertyName">
            <summary>
            Standard marker for exception property names reported as part of exception details.
            </summary>
        </member>
        <member name="P:Gallio.Common.Markup.Marker.ExceptionPropertyValue">
            <summary>
            Standard marker for exception property values reported as part of exception details.
            </summary>
        </member>
        <member name="P:Gallio.Common.Markup.Marker.StackTrace">
            <summary>
            Standard marker for stack traces.
            </summary>
        </member>
        <member name="P:Gallio.Common.Markup.Marker.Monospace">
            <summary>
            Standard marker for fixed width output such as that from a console or structured table.
            </summary>
        </member>
        <member name="P:Gallio.Common.Markup.Marker.Highlight">
            <summary>
            Standard marker for content that should be displayed with a highlight.
            </summary>
        </member>
        <member name="P:Gallio.Common.Markup.Marker.DiffAddition">
            <summary>
            Standard marker for content that represents added content in a diff.
            </summary>
        </member>
        <member name="P:Gallio.Common.Markup.Marker.DiffDeletion">
            <summary>
            Standard marker for content that represents deleted content in a diff.
            </summary>
        </member>
        <member name="P:Gallio.Common.Markup.Marker.DiffChange">
            <summary>
            Standard marker for content that represents changed content in a diff.
            </summary>
        </member>
        <member name="P:Gallio.Common.Markup.Marker.Ellipsis">
            <summary>
            Standard marker for text that is elided and replaced by an ellipsis.
            </summary>
        </member>
        <member name="P:Gallio.Common.Markup.Marker.Class">
            <summary>
            Gets the marker class.
            </summary>
        </member>
        <member name="P:Gallio.Common.Markup.Marker.Attributes">
            <summary>
            Gets the marker's attributes which are optional name/value pairs associated
            with a marker to carry additional semantic content.
            </summary>
        </member>
        <member name="T:Gallio.Common.Markup.MimeTypes">
            <summary>
            Defines constants for commonly used mime types for attachment contents.
            </summary>
        </member>
        <member name="F:Gallio.Common.Markup.MimeTypes.Binary">
            <summary>
            Binary data.
            </summary>
        </member>
        <member name="F:Gallio.Common.Markup.MimeTypes.PlainText">
            <summary>
            Plain text data.
            </summary>
        </member>
        <member name="F:Gallio.Common.Markup.MimeTypes.Xml">
            <summary>
            Xml data.
            </summary>
        </member>
        <member name="F:Gallio.Common.Markup.MimeTypes.Html">
            <summary>
            HTML.
            </summary>
        </member>
        <member name="F:Gallio.Common.Markup.MimeTypes.XHtml">
            <summary>
            Well-formed XHTML.
            </summary>
        </member>
        <member name="F:Gallio.Common.Markup.MimeTypes.Css">
            <summary>
            Cascading Style Sheet.
            </summary>
        </member>
        <member name="F:Gallio.Common.Markup.MimeTypes.JavaScript">
            <summary>
            JavaScript
            </summary>
        </member>
        <member name="F:Gallio.Common.Markup.MimeTypes.Png">
            <summary>
            PNG image.
            </summary>
        </member>
        <member name="F:Gallio.Common.Markup.MimeTypes.Jpeg">
            <summary>
            JPEG image.
            </summary>
        </member>
        <member name="F:Gallio.Common.Markup.MimeTypes.Gif">
            <summary>
            GIF image.
            </summary>
        </member>
        <member name="F:Gallio.Common.Markup.MimeTypes.MHtml">
            <summary>
            MHTML web archive.
            </summary>
        </member>
        <member name="F:Gallio.Common.Markup.MimeTypes.FlashVideo">
            <summary>
            Flash video.
            </summary>
        </member>
        <member name="M:Gallio.Common.Markup.MimeTypes.GetMimeTypeByExtension(System.String)">
            <summary>
            Guesses the mime type given a well-known extension.
            </summary>
            <param name="extension">The extension.</param>
            <returns>The mime type, or null if not known.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="extension"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Markup.MimeTypes.GetExtensionByMimeType(System.String)">
            <summary>
            Guesses the extension given a well-known mime-type.
            </summary>
            <param name="mimeType">The mime type.</param>
            <returns>The extension, or null if not known.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="mimeType"/> is null.</exception>
        </member>
        <member name="P:Gallio.Common.Markup.MimeTypes.All">
            <summary>
            Gets all the registered mime types.
            </summary>
        </member>
        <member name="T:Gallio.Common.Markup.NullMarkupDocumentWriter">
            <summary>
            A markup document writer that does nothing.
            </summary>
        </member>
        <member name="M:Gallio.Common.Markup.NullMarkupDocumentWriter.AttachImpl(Gallio.Common.Markup.Attachment)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Markup.NullMarkupDocumentWriter.StreamWriteImpl(System.String,System.String)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Markup.NullMarkupDocumentWriter.StreamEmbedImpl(System.String,System.String)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Markup.NullMarkupDocumentWriter.StreamBeginSectionImpl(System.String,System.String)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Markup.NullMarkupDocumentWriter.StreamBeginMarkerImpl(System.String,Gallio.Common.Markup.Marker)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Markup.NullMarkupDocumentWriter.StreamEndImpl(System.String)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Common.Markup.StringMarkupDocumentWriter">
            <summary>
            An implementation of <see cref="T:Gallio.Common.Markup.MarkupDocumentWriter"/> that writes its output to a string.
            </summary>
        </member>
        <member name="T:Gallio.Common.Markup.TextualMarkupDocumentWriter">
            <summary>
            An implementation of <see cref="T:Gallio.Common.Markup.MarkupDocumentWriter"/> that represents the test log as
            text written to a <see cref="T:System.IO.TextWriter"/>.
            </summary>
        </member>
        <member name="M:Gallio.Common.Markup.TextualMarkupDocumentWriter.#ctor(System.IO.TextWriter,System.Boolean)">
            <summary>
            Creates a textual markup document writer.
            </summary>
            <param name="writer">The text writer to write to.</param>
            <param name="verbose">If true, prints detailed information about the location of
            attachments, sections, and markers, otherwise discards these formatting details
            and prints section headers as text on their own line.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="writer"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Markup.TextualMarkupDocumentWriter.AttachImpl(Gallio.Common.Markup.Attachment)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Markup.TextualMarkupDocumentWriter.StreamWriteImpl(System.String,System.String)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Markup.TextualMarkupDocumentWriter.StreamEmbedImpl(System.String,System.String)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Markup.TextualMarkupDocumentWriter.StreamBeginSectionImpl(System.String,System.String)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Markup.TextualMarkupDocumentWriter.StreamBeginMarkerImpl(System.String,Gallio.Common.Markup.Marker)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Markup.TextualMarkupDocumentWriter.StreamEndImpl(System.String)">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Markup.TextualMarkupDocumentWriter.Writer">
            <summary>
            Gets the underlying text writer.
            </summary>
        </member>
        <member name="P:Gallio.Common.Markup.TextualMarkupDocumentWriter.Verbose">
            <summary>
            Returns true if the verbose print mode is enabled.
            </summary>
        </member>
        <member name="M:Gallio.Common.Markup.StringMarkupDocumentWriter.#ctor(System.Boolean)">
            <summary>
            Creates a log stream writer for the <see cref="F:Gallio.Common.Markup.MarkupStreamNames.Default"/> stream.
            </summary>
            <param name="verbose">If true, prints detailed information about the location of
            attachments, sections, and markers, otherwise discards these formatting details
            and prints section headers as text on their own line.</param>
        </member>
        <member name="M:Gallio.Common.Markup.StringMarkupDocumentWriter.ToString">
            <summary>
            Gets the formatted log contents as a string.
            </summary>
            <returns>The contents as a string.</returns>
        </member>
        <member name="T:Gallio.Common.Markup.StructuredDocument">
            <summary>
            A structured document is an Xml-serializable in-memory representation of a markup
            document written by a <see cref="T:Gallio.Common.Markup.MarkupDocumentWriter"/>.
            </summary>
            <seealso cref="T:Gallio.Common.Markup.StructuredDocumentWriter"/>
        </member>
        <member name="M:Gallio.Common.Markup.StructuredDocument.#ctor">
            <summary>
            Creates an empty document.
            </summary>
        </member>
        <member name="M:Gallio.Common.Markup.StructuredDocument.GetAttachment(System.String)">
            <summary>
            Gets an attachment by name.
            </summary>
            <param name="name">The attachment name.</param>
            <returns>The attachment or null if not found.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="name"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Markup.StructuredDocument.GetStream(System.String)">
            <summary>
            Gets a stream by name.
            </summary>
            <param name="name">The stream name.</param>
            <returns>The stream or null if not found.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="name"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Markup.StructuredDocument.WriteTo(Gallio.Common.Markup.MarkupDocumentWriter)">
            <summary>
            Writes the contents of the document to a markup document writer.
            </summary>
            <param name="writer">The writer.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="writer"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Markup.StructuredDocument.ToString">
            <summary>
            Formats the document to a string by concatenating all formatted streams and
            displaying a "*** Stream Name ***" header for each stream name.
            </summary>
            <returns>The formatted text.</returns>
        </member>
        <member name="P:Gallio.Common.Markup.StructuredDocument.Streams">
            <summary>
            Gets the list of streams, not null.
            Used for Xml-serialization.
            </summary>
        </member>
        <member name="P:Gallio.Common.Markup.StructuredDocument.Attachments">
            <summary>
            Gets the list of attachments, not null.
            </summary>
        </member>
        <member name="T:Gallio.Common.Markup.StructuredStream">
            <summary>
            A structured stream object represents a recursively structured stream of rich text that
            supports embedded attachments, nested sections and marked regions.  Each part of the
            text is captured by a tag, some of which are composable and may therefore contain other tags.
            </summary>
            <remarks>
            <para>
            It is effectively an xml-serializable representation of a markup stream written by
            a <see cref="T:Gallio.Common.Markup.MarkupStreamWriter"/>.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Common.Markup.StructuredStream.#ctor">
            <summary>
            Creates an uninitialized instance for Xml deserialization.
            </summary>
        </member>
        <member name="M:Gallio.Common.Markup.StructuredStream.#ctor(System.String)">
            <summary>
            Creates an initialized stream.
            </summary>
            <param name="name">The stream name.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="name"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Markup.StructuredStream.WriteTo(Gallio.Common.Markup.MarkupStreamWriter)">
            <summary>
            Writes the contents of the stream to a markup stream writer.
            </summary>
            <param name="writer">The writer.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="writer"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Markup.StructuredStream.ToString">
            <summary>
            Formats the stream using a <see cref="T:Gallio.Common.Markup.Tags.TagFormatter"/>.
            </summary>
            <returns>The formatted text.</returns>
        </member>
        <member name="P:Gallio.Common.Markup.StructuredStream.Name">
            <summary>
            Gets or sets the name of the stream, not null.
            </summary>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="P:Gallio.Common.Markup.StructuredStream.Body">
            <summary>
            Gets or sets the body of the stream, not null.
            </summary>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="T:Gallio.Common.Markup.StructuredDocumentWriter">
            <summary>
            Writes a <see cref="T:Gallio.Common.Markup.StructuredDocument"/> in memory.
            </summary>
        </member>
        <member name="M:Gallio.Common.Markup.StructuredDocumentWriter.#ctor">
            <summary>
            Creates a document writer that builds a new <see cref="T:Gallio.Common.Markup.StructuredDocument"/>.
            </summary>
        </member>
        <member name="M:Gallio.Common.Markup.StructuredDocumentWriter.ToString">
            <summary>
            Flushes the writer and formats it as a string.
            </summary>
            <returns>The formatted document as a string.</returns>
        </member>
        <member name="M:Gallio.Common.Markup.StructuredDocumentWriter.CloseImpl">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Markup.StructuredDocumentWriter.FlushImpl">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Markup.StructuredDocumentWriter.AttachImpl(Gallio.Common.Markup.Attachment)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Markup.StructuredDocumentWriter.StreamWriteImpl(System.String,System.String)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Markup.StructuredDocumentWriter.StreamEmbedImpl(System.String,System.String)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Markup.StructuredDocumentWriter.StreamBeginSectionImpl(System.String,System.String)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Markup.StructuredDocumentWriter.StreamBeginMarkerImpl(System.String,Gallio.Common.Markup.Marker)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Markup.StructuredDocumentWriter.StreamEndImpl(System.String)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Markup.StructuredDocumentWriter.StreamFlushImpl(System.String)">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Markup.StructuredDocumentWriter.Document">
            <summary>
            Gets the document under construction.
            </summary>
            <remarks>
            <para>
            The contents of the document will change as more text is written.
            However, it may be necessary to <see cref="M:Gallio.Common.Markup.MarkupDocumentWriter.Flush"/>
            or <see cref="M:Gallio.Common.Markup.MarkupDocumentWriter.Close"/>
            the writer for these changes to be observed.
            </para>
            </remarks>
        </member>
        <member name="T:Gallio.Common.Markup.StructuredText">
            <summary>
            A structured text object contains attachments and formatted text with rich
            presentation elements.
            </summary>
            <remarks>
            <para>
            Structured text is emitted by a <see cref="T:Gallio.Common.Markup.StructuredTextWriter"/>.
            </para>
            </remarks>
            <seealso cref="T:Gallio.Common.Markup.StructuredTextWriter"/>
        </member>
        <member name="M:Gallio.Common.Markup.StructuredText.#ctor(System.String)">
            <summary>
            Creates a simple structured text object over a plain text string.
            </summary>
            <param name="text">The text string.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="text"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Markup.StructuredText.#ctor(Gallio.Common.Markup.Tags.BodyTag)">
            <summary>
            Creates a structured text object that wraps the body tag of a structured markup document stream
            and no attachments.
            </summary>
            <param name="bodyTag">The body tag to wrap.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="bodyTag"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Markup.StructuredText.#ctor(Gallio.Common.Markup.Tags.BodyTag,System.Collections.Generic.IList{Gallio.Common.Markup.Attachment})">
            <summary>
            Creates a structured text object that wraps the body tag of a structured markup document stream
            and a list of attachments.
            </summary>
            <param name="bodyTag">The body tag to wrap.</param>
            <param name="attachments">The list of attachments.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="bodyTag"/>,
            or <paramref name="attachments"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Markup.StructuredText.GetTextLength">
            <summary>
            Returns the total length of all <see cref="T:Gallio.Common.Markup.Tags.TextTag"/>s that appear within
            the structured text body.
            </summary>
            <returns>The total text length.</returns>
        </member>
        <member name="M:Gallio.Common.Markup.StructuredText.WriteTo(Gallio.Common.Markup.MarkupStreamWriter)">
            <summary>
            Writes the structured text to a markup stream writer.
            </summary>
            <param name="writer">The writer.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="writer"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Markup.StructuredText.TruncatedWriteTo(Gallio.Common.Markup.MarkupStreamWriter,System.Int32)">
            <summary>
            Writes the structured text to a markup stream writer and truncates its text
            to a particular maximum length, omitting all subsequent contents.
            </summary>
            <param name="writer">The writer.</param>
            <param name="maxLength">The maximum length of text to write.</param>
            <returns>True if truncation occurred.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="writer"/> is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="maxLength"/> is negative.</exception>
        </member>
        <member name="M:Gallio.Common.Markup.StructuredText.ToString">
            <summary>
            Formats the structured text to a string, discarding unrepresentable formatting details.
            </summary>
            <returns>The structured text as a string.</returns>
        </member>
        <member name="M:Gallio.Common.Markup.StructuredText.Equals(Gallio.Common.Markup.StructuredText)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Markup.StructuredText.Equals(System.Object)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Markup.StructuredText.GetHashCode">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Markup.StructuredText.op_Equality(Gallio.Common.Markup.StructuredText,Gallio.Common.Markup.StructuredText)">
            <summary>
            Returns true if two structured text objects are equal.
            </summary>
            <param name="a">The first structured text object to compare.</param>
            <param name="b">The second structured text object to compare.</param>
            <returns>True if the structured text objects are equal.</returns>
        </member>
        <member name="M:Gallio.Common.Markup.StructuredText.op_Inequality(Gallio.Common.Markup.StructuredText,Gallio.Common.Markup.StructuredText)">
            <summary>
            Returns true if two structured text objects are not equal.
            </summary>
            <param name="a">The first structured text object to compare.</param>
            <param name="b">The second structured text object to compare.</param>
            <returns>True if the structured text objects are not equal.</returns>
        </member>
        <member name="P:Gallio.Common.Markup.StructuredText.BodyTag">
            <summary>
            Gets a copy of the body tag that describes the structured text.
            </summary>
        </member>
        <member name="P:Gallio.Common.Markup.StructuredText.Attachments">
            <summary>
            Gets the immutable list of attachments belonging to the structured text.
            </summary>
        </member>
        <member name="T:Gallio.Common.Markup.Tags.BaseTagVisitor">
            <summary>
            An abstract base class for tag visitors that recursively traverses all tags
            and does nothing else by default.
            </summary>
        </member>
        <member name="T:Gallio.Common.Markup.Tags.ITagVisitor">
            <summary>
            Visits a <see cref="T:Gallio.Common.Markup.Tags.Tag"/>.
            </summary>
        </member>
        <member name="M:Gallio.Common.Markup.Tags.ITagVisitor.VisitBodyTag(Gallio.Common.Markup.Tags.BodyTag)">
            <summary>
            Visits a body tag.
            </summary>
            <param name="tag">The tag to visit.</param>
        </member>
        <member name="M:Gallio.Common.Markup.Tags.ITagVisitor.VisitSectionTag(Gallio.Common.Markup.Tags.SectionTag)">
            <summary>
            Visits a section tag.
            </summary>
            <param name="tag">The tag to visit.</param>
        </member>
        <member name="M:Gallio.Common.Markup.Tags.ITagVisitor.VisitMarkerTag(Gallio.Common.Markup.Tags.MarkerTag)">
            <summary>
            Visits a marker tag.
            </summary>
            <param name="tag">The tag to visit.</param>
        </member>
        <member name="M:Gallio.Common.Markup.Tags.ITagVisitor.VisitEmbedTag(Gallio.Common.Markup.Tags.EmbedTag)">
            <summary>
            Visits an embedded attachment tag.
            </summary>
            <param name="tag">The tag to visit.</param>
        </member>
        <member name="M:Gallio.Common.Markup.Tags.ITagVisitor.VisitTextTag(Gallio.Common.Markup.Tags.TextTag)">
            <summary>
            Visits a text tag.
            </summary>
            <param name="tag">The tag to visit.</param>
        </member>
        <member name="M:Gallio.Common.Markup.Tags.BaseTagVisitor.VisitBodyTag(Gallio.Common.Markup.Tags.BodyTag)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Markup.Tags.BaseTagVisitor.VisitSectionTag(Gallio.Common.Markup.Tags.SectionTag)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Markup.Tags.BaseTagVisitor.VisitMarkerTag(Gallio.Common.Markup.Tags.MarkerTag)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Markup.Tags.BaseTagVisitor.VisitEmbedTag(Gallio.Common.Markup.Tags.EmbedTag)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Markup.Tags.BaseTagVisitor.VisitTextTag(Gallio.Common.Markup.Tags.TextTag)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Common.Markup.StructuredTextWriter">
            <summary>
            Writes information in a structured manner so as to produce a
            <see cref="T:Gallio.Common.Markup.StructuredText"/> or <see cref="T:System.String"/>.
            </summary>
        </member>
        <member name="T:Gallio.Common.Markup.MarkupStreamWriter">
            <summary>
            A markup stream writer provides methods for writing rich structured text with embedded
            attachments, nested sections and hidden semantic markers to a particular stream within
            a markup document writer.
            </summary>
            <remarks>
            <para>
            The operations on this interface are thread-safe.
            </para>
            <para>
            The object extends <see cref="T:System.MarshalByRefObject"/> so instances may be
            accessed by remote clients if required.
            </para>
            <para>
            Newlines are always normalized to LFs ('\n') only.  Any CRs ('\r') that are
            written are automatically stripped.
            </para>
            </remarks>
            <seealso cref="T:Gallio.Common.Markup.MarkupDocumentWriter"/>
        </member>
        <member name="M:Gallio.Common.Markup.MarkupStreamWriter.#ctor(Gallio.Common.Markup.MarkupDocumentWriter,System.String)">
            <summary>
            Creates a markup stream writer.
            </summary>
            <param name="container">The containing markup document writer.</param>
            <param name="streamName">The stream name.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="container"/>
            or <paramref name="streamName"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Markup.MarkupStreamWriter.Flush">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Markup.MarkupStreamWriter.Write(System.Char)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Markup.MarkupStreamWriter.Write(System.String)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Markup.MarkupStreamWriter.Write(System.Char[],System.Int32,System.Int32)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Markup.MarkupStreamWriter.WriteLine(System.Object)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Markup.MarkupStreamWriter.Write(System.Object)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Markup.MarkupStreamWriter.Write(Gallio.Common.Markup.IMarkupStreamWritable)">
            <summary>
            <para>
            Writes a markup stream writable object to the stream.
            </para>
            </summary>
            <param name="obj">The object to write, or null if none.</param>
        </member>
        <member name="M:Gallio.Common.Markup.MarkupStreamWriter.WriteException(System.Exception)">
            <summary>
            Writes an exception.
            </summary>
            <remarks>
            <para>
            The exception will not be terminated by a new line.
            </para>
            </remarks>
            <param name="exception">The exception to write.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="exception"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Markup.MarkupStreamWriter.WriteException(System.Exception,System.String)">
            <summary>
            Writes an exception within its own section.
            </summary>
            <remarks>
            <para>
            The exception will not be terminated by a new line.
            </para>
            </remarks>
            <param name="exception">The exception to write.</param>
            <param name="sectionName">The section name, or null if none.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="exception"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Markup.MarkupStreamWriter.WriteException(Gallio.Common.Diagnostics.ExceptionData)">
            <summary>
            Writes an exception.
            </summary>
            <remarks>
            <para>
            The exception will not be terminated by a new line.
            </para>
            </remarks>
            <param name="exception">The exception data to write.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="exception"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Markup.MarkupStreamWriter.WriteException(Gallio.Common.Diagnostics.ExceptionData,System.String)">
            <summary>
            Writes an exception within its own section which provides additional cues for interpretation.
            </summary>
            <remarks>
            <para>
            The exception will not be terminated by a new line.
            </para>
            </remarks>
            <param name="exception">The exception data to write.</param>
            <param name="sectionName">The section name, or null if none.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="exception"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Markup.MarkupStreamWriter.WriteHighlighted(System.String)">
            <summary>
            Writes highlighted text.  Highlights can be used to
            emphasize important information such differences between similar expected
            and actual values.
            </summary>
            <remarks>
            <para>
            This is a convenience method that simply encapsulates the highlighted text within a
            marked region of type <see cref="P:Gallio.Common.Markup.Marker.Highlight"/>.
            </para>
            </remarks>
            <param name="text">The text to write, or null if none.</param>
        </member>
        <member name="M:Gallio.Common.Markup.MarkupStreamWriter.WriteEllipsis">
            <summary>
            Writes an ellipsis to indicate where content has been elided for brevity.
            An ellipsis may be used, for example, when printing assertion failures to clearly
            identify sections where the user is not being presented all of the information
            because it was too long and had to be truncated.
            </summary>
            <remarks>
            <para>
            This is a convenience method that simply encapsulates "..." within a
            marked region of type <see cref="P:Gallio.Common.Markup.Marker.Ellipsis"/>.  However, tools
            may reinterpret the special marker to make the "..." less ambiguous.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Common.Markup.MarkupStreamWriter.BeginSection(System.String)">
            <summary>
            Begins a section with the specified name.  May be nested.
            </summary>
            <remarks>
            <para>
            A section groups together related content in the markup stream to make it
            easier to distinguish.  The section name is used as a heading for presentation.
            </para>
            </remarks>
            <example>
            <code><![CDATA[
            using (TestLog.Default.BeginSection("Doing something interesting"))
            {
                TestLog.Default.WriteLine("Ah ha!");
            }
            ]]></code>
            </example>
            <param name="sectionName">The name of the section.</param>
            <returns>A Disposable object that calls <see cref="M:Gallio.Common.Markup.MarkupStreamWriter.End"/> when disposed.  This
            is a convenience for use with the C# "using" statement.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="sectionName"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Markup.MarkupStreamWriter.BeginMarker(Gallio.Common.Markup.Marker)">
            <summary>
            Begins a marked region.  May be nested.
            </summary>
            <remarks>
            <para>
            A marker is a hidden tag that labels its contents with a semantic class.
            It is roughly equivalent in operation to an HTML "span" tag. Various tools
            may inspect the markers and modify the presentation accordingly.
            </para>
            </remarks>
            <example>
            <code><![CDATA[
            using (TestLog.Default.BeginMarker(Marker.Monospace))
            {
                TestLog.Default.WriteLine(contents);
            }
            ]]></code>
            </example>
            <param name="marker">The marker.</param>
            <returns>A Disposable object that calls <see cref="M:Gallio.Common.Markup.MarkupStreamWriter.End"/> when disposed.  This
            is a convenience for use with the C# "using" statement.</returns>
        </member>
        <member name="M:Gallio.Common.Markup.MarkupStreamWriter.End">
            <summary>
            Ends the region most recently started with one of the Begin* methods.
            </summary>
            <exception cref="T:System.InvalidOperationException">Thrown if there is no current nested region.</exception>
        </member>
        <member name="M:Gallio.Common.Markup.MarkupStreamWriter.Embed(Gallio.Common.Markup.Attachment)">
            <summary>
            Embeds an attachment.
            </summary>
            <remarks>
            <para>
            An attachment instance can be embedded multiple times efficiently since each
            embedded copy is typically represented as a link to the same common attachment instance.
            </para>
            </remarks>
            <param name="attachment">The attachment to embed.</param>
            <returns>The attachment.</returns>
            <seealso cref="M:Gallio.Common.Markup.MarkupDocumentWriter.Attach(Gallio.Common.Markup.Attachment)"/>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="attachment"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Thrown if there is already an attachment
            with the same name.</exception>
        </member>
        <member name="M:Gallio.Common.Markup.MarkupStreamWriter.EmbedExisting(System.String)">
            <summary>
            Embeds another copy of an existing attachment.
            </summary>
            <remarks>
            <para>
            This method can be used to repeatedly embed an existing attachment at multiple
            points in multiple streams without needing to keep the <see cref="T:Gallio.Common.Markup.Attachment"/> instance
            itself around.  This can help to reduce memory footprint since the
            original <see cref="T:Gallio.Common.Markup.Attachment"/> instance can be garbage collected shortly
            after it is first attached.
            </para>
            <para>
            An attachment instance can be embedded multiple times efficiently since each
            embedded copy is typically represented as a link to the same common attachment instance.
            </para>
            </remarks>
            <param name="attachmentName">The name of the existing attachment to embed.</param>
            <seealso cref="M:Gallio.Common.Markup.MarkupDocumentWriter.Attach(Gallio.Common.Markup.Attachment)"/>
            <seealso cref="M:Gallio.Common.Markup.MarkupStreamWriter.Embed(Gallio.Common.Markup.Attachment)"/>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="attachmentName"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Thrown if no attachment with the specified
            name has been previously attached.</exception>
        </member>
        <member name="M:Gallio.Common.Markup.MarkupStreamWriter.EmbedPlainText(System.String,System.String)">
            <summary>
            Embeds an plain text attachment with mime-type <see cref="F:Gallio.Common.Markup.MimeTypes.PlainText"/>.
            </summary>
            <param name="attachmentName">The name of the attachment to create or null to
            automatically assign one.  The attachment name must be unique within the document.</param>
            <param name="text">The text to attach.</param>
            <returns>The attachment.</returns>
            <seealso cref="M:Gallio.Common.Markup.MarkupDocumentWriter.AttachPlainText(System.String,System.String)"/>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="text"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Thrown if there is already an attachment
            with the same name.</exception>
        </member>
        <member name="M:Gallio.Common.Markup.MarkupStreamWriter.EmbedHtml(System.String,System.String)">
            <summary>
            Embeds an HTML attachment with mime-type <see cref="F:Gallio.Common.Markup.MimeTypes.Html"/>.
            </summary>
            <param name="attachmentName">The name of the attachment to create or null to
            automatically assign one.  The attachment name must be unique within the document.</param>
            <param name="html">The HTML to attach.</param>
            <returns>The attachment.</returns>
            <seealso cref="M:Gallio.Common.Markup.MarkupDocumentWriter.AttachHtml(System.String,System.String)"/>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="html"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Thrown if there is already an attachment
            with the same name.</exception>
        </member>
        <member name="M:Gallio.Common.Markup.MarkupStreamWriter.EmbedXHtml(System.String,System.String)">
            <summary>
            Embeds an XHTML attachment with mime-type <see cref="F:Gallio.Common.Markup.MimeTypes.XHtml"/>.
            </summary>
            <param name="attachmentName">The name of the attachment to create or null to
            automatically assign one.  The attachment name must be unique within the document.</param>
            <param name="xhtml">The XHTML to attach.</param>
            <returns>The attachment.</returns>
            <seealso cref="M:Gallio.Common.Markup.MarkupDocumentWriter.AttachXHtml(System.String,System.String)"/>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="xhtml"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Thrown if there is already an attachment
            with the same name.</exception>
        </member>
        <member name="M:Gallio.Common.Markup.MarkupStreamWriter.EmbedXml(System.String,System.String)">
            <summary>
            Embeds an XML attachment with mime-type <see cref="F:Gallio.Common.Markup.MimeTypes.Xml"/>.
            </summary>
            <param name="attachmentName">The name of the attachment to create or null to
            automatically assign one.  The attachment name must be unique within the document.</param>
            <param name="xml">The XML to attach.</param>
            <returns>The attachment.</returns>
            <seealso cref="M:Gallio.Common.Markup.MarkupDocumentWriter.AttachXml(System.String,System.String)"/>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="xml"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Thrown if there is already an attachment
            with the same name.</exception>
        </member>
        <member name="M:Gallio.Common.Markup.MarkupStreamWriter.EmbedImage(System.String,System.Drawing.Image)">
            <summary>
            Embeds an image attachment with a mime-type compatible with its internal representation.
            </summary>
            <param name="attachmentName">The name of the attachment to create or null to
            automatically assign one.  The attachment name must be unique within the document.</param>
            <param name="image">The image to attach.</param>
            <returns>The attachment.</returns>
            <seealso cref="M:Gallio.Common.Markup.MarkupDocumentWriter.AttachImage(System.String,System.Drawing.Image)"/>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="image"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Thrown if there is already an attachment
            with the same name.</exception>
        </member>
        <member name="M:Gallio.Common.Markup.MarkupStreamWriter.EmbedVideo(System.String,Gallio.Common.Media.Video)">
            <summary>
            Embeds a video attachment with a mime-type compatible with its internal representation.
            </summary>
            <param name="attachmentName">The name of the attachment to create or null to
            automatically assign one.  The attachment name must be unique within the document.</param>
            <param name="video">The video to attach.</param>
            <returns>The attachment.</returns>
            <seealso cref="M:Gallio.Common.Markup.MarkupDocumentWriter.AttachVideo(System.String,Gallio.Common.Media.Video)"/>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="video"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Thrown if there is already an attachment
            with the same name.</exception>
        </member>
        <member name="M:Gallio.Common.Markup.MarkupStreamWriter.EmbedObjectAsXml(System.String,System.Object)">
            <summary>
            Embeds an XML-serialized object as an XML attachment with mime-type <see cref="F:Gallio.Common.Markup.MimeTypes.Xml"/>
            using the default <see cref="T:System.Xml.Serialization.XmlSerializer"/> for the object's type.
            </summary>
            <param name="attachmentName">The name of the attachment to create or null to
            automatically assign one.  The attachment name must be unique within the document.</param>
            <param name="obj">The object to serialize and embed, must not be null.</param>
            <returns>The attachment.</returns>
            <seealso cref="M:Gallio.Common.Markup.MarkupDocumentWriter.AttachObjectAsXml(System.String,System.Object)"/>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="obj"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Thrown if there is already an attachment
            with the same name.</exception>
        </member>
        <member name="M:Gallio.Common.Markup.MarkupStreamWriter.EmbedObjectAsXml(System.String,System.Object,System.Xml.Serialization.XmlSerializer)">
            <summary>
            Embeds an XML-serialized object as an XML attachment with mime-type <see cref="F:Gallio.Common.Markup.MimeTypes.Xml"/>
            using the specified <see cref="T:System.Xml.Serialization.XmlSerializer"/>.
            </summary>
            <param name="attachmentName">The name of the attachment to create or null to
            automatically assign one.  The attachment name must be unique within the document.</param>
            <param name="obj">The object to serialize and embed, must not be null.</param>
            <param name="xmlSerializer">The <see cref="T:System.Xml.Serialization.XmlSerializer"/> to use, or null to use the default <see cref="T:System.Xml.Serialization.XmlSerializer"/>
            for the object's type.</param>
            <returns>The attachment.</returns>
            <seealso cref="M:Gallio.Common.Markup.MarkupDocumentWriter.AttachObjectAsXml(System.String,System.Object,System.Xml.Serialization.XmlSerializer)"/>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="obj"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Thrown if there is already an attachment
            with the same name.</exception>
        </member>
        <member name="M:Gallio.Common.Markup.MarkupStreamWriter.Close">
            <summary>
            This method does not make sense for a markup stream writer because
            a stream cannot be closed independently of its containing document.
            </summary>
        </member>
        <member name="M:Gallio.Common.Markup.MarkupStreamWriter.Dispose">
            <summary>
            This method does not make sense for a markup stream writer because
            a stream cannot be closed independently of its containing document.
            </summary>
        </member>
        <member name="M:Gallio.Common.Markup.MarkupStreamWriter.Dispose(System.Boolean)">
            <summary>
            This method does not make sense for a markup stream writer because
            a stream cannot be closed independently of its containing document.
            </summary>
        </member>
        <member name="P:Gallio.Common.Markup.MarkupStreamWriter.Container">
            <summary>
            Gets the containing markup document writer.
            </summary>
        </member>
        <member name="P:Gallio.Common.Markup.MarkupStreamWriter.StreamName">
            <summary>
            Gets the name of the markup stream being written.
            </summary>
        </member>
        <member name="P:Gallio.Common.Markup.MarkupStreamWriter.Encoding">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Markup.MarkupStreamWriter.NewLine">
            <inheritdoc cref="P:System.IO.TextWriter.NewLine"/>
        </member>
        <member name="M:Gallio.Common.Markup.StructuredTextWriter.#ctor">
            <summary>
            Creates a structured text writer.
            </summary>
        </member>
        <member name="M:Gallio.Common.Markup.StructuredTextWriter.ToStructuredText">
            <summary>
            Gets the structured text produced so far.
            </summary>
            <returns>The structured text.</returns>
        </member>
        <member name="M:Gallio.Common.Markup.StructuredTextWriter.ToString">
            <summary>
            Returns the structured text formatted as a string.
            </summary>
            <returns>The structured text as a string.</returns>
        </member>
        <member name="M:Gallio.Common.Markup.StructuredTextWriter.WriteTo(Gallio.Common.Markup.MarkupStreamWriter)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Common.Markup.Tags.BodyTag">
            <summary>
            The top-level container tag of markup.
            </summary>
        </member>
        <member name="T:Gallio.Common.Markup.Tags.ContainerTag">
            <summary>
            An abstract container tag for representing tags that can contain other tags.
            </summary>
        </member>
        <member name="T:Gallio.Common.Markup.Tags.Tag">
            <summary>
            A tag is the fundamental unit of content within a markup stream.
            </summary>
        </member>
        <member name="T:Gallio.Common.ICloneable`1">
            <summary>
            Provides a typed clone operation.
            </summary>
            <typeparam name="T">The type produced when the object is cloned.</typeparam>
        </member>
        <member name="M:Gallio.Common.ICloneable`1.Clone">
            <summary>
            Clones the object.
            </summary>
            <returns>The cloned object.</returns>
        </member>
        <member name="M:Gallio.Common.Markup.Tags.Tag.Accept(Gallio.Common.Markup.Tags.ITagVisitor)">
            <summary>
            Invokes the appropriate visitor method for this tag type.
            </summary>
            <param name="visitor">The visitor.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="visitor"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Markup.Tags.Tag.Equals(Gallio.Common.Markup.Tags.Tag)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Markup.Tags.Tag.ToString">
            <summary>
            Formats the tag using a <see cref="T:Gallio.Common.Markup.Tags.TagFormatter"/>.
            </summary>
            <returns>The formatted text.</returns>
        </member>
        <member name="M:Gallio.Common.Markup.Tags.Tag.WriteTo(Gallio.Common.Markup.MarkupStreamWriter)">
            <summary>
            Writes the tag to a <see cref="T:Gallio.Common.Markup.MarkupStreamWriter"/>.
            </summary>
            <param name="writer">The markup stream writer.</param>
            <exception cref="T:System.ArgumentNullException">Throw if <paramref name="writer"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Markup.Tags.Tag.Clone">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Markup.Tags.ContainerTag.#ctor">
            <summary>
            Creates an empty container tag.
            </summary>
        </member>
        <member name="M:Gallio.Common.Markup.Tags.ContainerTag.AcceptContents(Gallio.Common.Markup.Tags.ITagVisitor)">
            <summary>
            Invokes the appropriate visitor method each element contained within this tag.
            </summary>
            <param name="visitor">The visitor.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="visitor"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Markup.Tags.ContainerTag.Equals(Gallio.Common.Markup.Tags.ContainerTag)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Markup.Tags.ContainerTag.Clone">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Markup.Tags.ContainerTag.Contents">
            <summary>
            Gets the list of nested contents of this tag.
            </summary>
        </member>
        <member name="M:Gallio.Common.Markup.Tags.BodyTag.Clone">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Markup.Tags.BodyTag.Equals(Gallio.Common.Markup.Tags.BodyTag)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Markup.Tags.BodyTag.Equals(System.Object)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Markup.Tags.BodyTag.GetHashCode">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Common.Markup.Tags.EmbedTag">
            <summary>
            An embedded attachment tag.
            </summary>
        </member>
        <member name="M:Gallio.Common.Markup.Tags.EmbedTag.#ctor">
            <summary>
            Creates an uninitialized instance for Xml deserialization.
            </summary>
        </member>
        <member name="M:Gallio.Common.Markup.Tags.EmbedTag.#ctor(System.String)">
            <summary>
            Creates an initialized tag.
            </summary>
            <param name="attachmentName">The name of the attachment to embed.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="attachmentName"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Markup.Tags.EmbedTag.Equals(Gallio.Common.Markup.Tags.EmbedTag)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Markup.Tags.EmbedTag.Equals(System.Object)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Markup.Tags.EmbedTag.GetHashCode">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Markup.Tags.EmbedTag.Clone">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Markup.Tags.EmbedTag.AttachmentName">
            <summary>
            Gets or sets the name of the referenced attachment to embed, not null.
            </summary>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="T:Gallio.Common.Markup.Tags.MarkerTag">
            <summary>
            A marker tag.
            </summary>
        </member>
        <member name="M:Gallio.Common.Markup.Tags.MarkerTag.#ctor">
            <summary>
            Creates an uninitialized instance for Xml deserialization.
            </summary>
        </member>
        <member name="M:Gallio.Common.Markup.Tags.MarkerTag.#ctor(Gallio.Common.Markup.Marker)">
            <summary>
            Creates an initialized tag.
            </summary>
            <param name="marker">The marker.</param>
        </member>
        <member name="M:Gallio.Common.Markup.Tags.MarkerTag.Clone">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Markup.Tags.MarkerTag.Equals(Gallio.Common.Markup.Tags.MarkerTag)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Markup.Tags.MarkerTag.Equals(System.Object)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Markup.Tags.MarkerTag.GetHashCode">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Markup.Tags.MarkerTag.Class">
            <summary>
            Gets or sets the marker class, not null.
            </summary>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
            <exception cref="T:System.ArgumentException">Thrown if the <paramref name="value"/> is not a valid identifier.
            <seealso cref="M:Gallio.Common.Markup.Marker.ValidateIdentifier(System.String)"/>.</exception>
        </member>
        <member name="P:Gallio.Common.Markup.Tags.MarkerTag.Attributes">
            <summary>
            Gets the list of marker attributes.
            </summary>
        </member>
        <member name="P:Gallio.Common.Markup.Tags.MarkerTag.Marker">
            <summary>
            Gets the marker.
            </summary>
        </member>
        <member name="T:Gallio.Common.Markup.Tags.MarkerTag.Attribute">
            <summary>
            Represents a marker attribute.
            </summary>
        </member>
        <member name="M:Gallio.Common.Markup.Tags.MarkerTag.Attribute.#ctor">
            <summary>
            Creates an uninitialized instance for Xml deserialization.
            </summary>
        </member>
        <member name="M:Gallio.Common.Markup.Tags.MarkerTag.Attribute.#ctor(System.String,System.String)">
            <summary>
            Creates an initialized attribute.
            </summary>
            <param name="name">The attribute name.</param>
            <param name="value">The attribute value.</param>
            <exception cref="T:System.ArgumentException">Thrown if <paramref name="name"/>
            is invalid.</exception>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="name"/>
            or <paramref name="value"/> is null.</exception>
        </member>
        <member name="P:Gallio.Common.Markup.Tags.MarkerTag.Attribute.Name">
            <summary>
            Gets or sets the attribute name, not null.
            </summary>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
            <exception cref="T:System.ArgumentException">Thrown if the <paramref name="value"/> is not a valid identifier.</exception>
        </member>
        <member name="P:Gallio.Common.Markup.Tags.MarkerTag.Attribute.Value">
            <summary>
            Gets or sets the attribute value, not null.
            </summary>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="T:Gallio.Common.Markup.Tags.SectionTag">
            <summary>
            A section tag.
            </summary>
        </member>
        <member name="M:Gallio.Common.Markup.Tags.SectionTag.#ctor">
            <summary>
            Creates an uninitialized instance for Xml deserialization.
            </summary>
        </member>
        <member name="M:Gallio.Common.Markup.Tags.SectionTag.#ctor(System.String)">
            <summary>
            Creates an initialized tag.
            </summary>
            <param name="name">The section name.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="name"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Markup.Tags.SectionTag.Clone">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Markup.Tags.SectionTag.Equals(Gallio.Common.Markup.Tags.SectionTag)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Markup.Tags.SectionTag.Equals(System.Object)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Markup.Tags.SectionTag.GetHashCode">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Markup.Tags.SectionTag.Name">
            <summary>
            Gets or sets the section name, not null.
            </summary>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="T:Gallio.Common.Markup.Tags.TagFormatter">
            <summary>
            <para>
            Formats <see cref="T:Gallio.Common.Markup.Tags.Tag"/> instances to plain text.
            </para>
            <para>
            Text tags are written as-is.  Sections introduce paragraph breaks with
            the header written out as the first line.  Embedded attachments are
            described by name.
            </para>
            </summary>
        </member>
        <member name="M:Gallio.Common.Markup.Tags.TagFormatter.ToString">
            <summary>
            Gets the formatted text that has been built.
            </summary>
        </member>
        <member name="M:Gallio.Common.Markup.Tags.TagFormatter.VisitBodyTag(Gallio.Common.Markup.Tags.BodyTag)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Markup.Tags.TagFormatter.VisitSectionTag(Gallio.Common.Markup.Tags.SectionTag)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Markup.Tags.TagFormatter.VisitMarkerTag(Gallio.Common.Markup.Tags.MarkerTag)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Markup.Tags.TagFormatter.VisitEmbedTag(Gallio.Common.Markup.Tags.EmbedTag)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Markup.Tags.TagFormatter.VisitTextTag(Gallio.Common.Markup.Tags.TextTag)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Markup.Tags.TagFormatter.RequestMinimumSpacing(System.Int32)">
            <summary>
            Ensures that the next chunk of text appended is separated by at least the specified
            number of line breaks.
            </summary>
            <param name="spacing">The minimum number of line breaks to insert.</param>
        </member>
        <member name="M:Gallio.Common.Markup.Tags.TagFormatter.Append(System.String)">
            <summary>
            Appends text to the buffer including any requested spacing.
            </summary>
            <param name="text">The text to append.</param>
        </member>
        <member name="T:Gallio.Common.Markup.Tags.TextTag">
            <summary>
            A text tag, containing text.
            </summary>
        </member>
        <member name="M:Gallio.Common.Markup.Tags.TextTag.#ctor">
            <summary>
            Creates an uninitialized instance for Xml deserialization.
            </summary>
        </member>
        <member name="M:Gallio.Common.Markup.Tags.TextTag.#ctor(System.String)">
            <summary>
            Creates an initialized text tag.
            </summary>
            <param name="text">The text within the tag.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="text"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Markup.Tags.TextTag.Clone">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Markup.Tags.TextTag.Equals(Gallio.Common.Markup.Tags.TextTag)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Markup.Tags.TextTag.Equals(System.Object)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Markup.Tags.TextTag.GetHashCode">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Markup.Tags.TextTag.ProvideXmlSchema(System.Xml.Schema.XmlSchemaSet)">
            <summary>
            Provides the Xml schema for this element.
            </summary>
            <param name="schemas">The schema set.</param>
            <returns>The schema type of the element.</returns>
        </member>
        <member name="P:Gallio.Common.Markup.Tags.TextTag.Text">
            <summary>
            Gets or sets the text within the tag, not null.
            </summary>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="T:Gallio.Common.Policies.VersionPolicy">
            <summary>
            Gets version information for Gallio components.
            </summary>
        </member>
        <member name="M:Gallio.Common.Policies.VersionPolicy.GetVersionLabel(System.Version)">
            <summary>
            Generates a version label from a version number for display purposes.
            </summary>
            <remarks>
            <para>
            A Gallio version label consists of a major version, minor version and build number and
            is of the form "3.1 build 456".  The revision number is not displayed.
            </para>
            <para>
            Gallio component assemblies contain two different version numbers: an assembly version number
            and a file version number.  To preserve assembly compatibility across builds of the same version,
            the assembly version number omits build number and revision information.  Consequently
            <see cref="M:Gallio.Common.Policies.VersionPolicy.GetVersionLabel(System.Reflection.Assembly)"/> derived the version label from the file version number.
            </para>
            </remarks>
            <param name="version">The version to transform into a label.</param>
            <returns>The version label.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="version"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Policies.VersionPolicy.GetVersionLabel(System.Reflection.Assembly)">
            <summary>
            Gets a version label of a Gallio component assembly for display purposes.
            </summary>
            <remarks>
            <para>
            A Gallio version label consists of a major version, minor version and build number and
            is of the form "3.1 build 456".  The revision number is not displayed.
            </para>
            <para>
            Gallio component assemblies contain two different version numbers: an assembly version number
            and a file version number.  To preserve assembly compatibility across builds of the same version,
            the assembly version number omits build number and revision information.  Consequently
            <see cref="M:Gallio.Common.Policies.VersionPolicy.GetVersionLabel(System.Reflection.Assembly)"/> derived the version label from the file version number.
            </para>
            </remarks>
            <param name="assembly">The assembly.</param>
            <returns>The version label.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="assembly"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Policies.VersionPolicy.GetVersionNumber(System.Reflection.Assembly)">
            <summary>
            Gets the version number of an assembly for display purposes.
            </summary>
            <remarks>
            <para>
            Returns the file version (<see cref="T:System.Reflection.AssemblyFileVersionAttribute"/>) when available,
            otherwise returns the assembly version.
            </para>
            </remarks>
            <param name="assembly">The assembly.</param>
            <returns>The version number.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="assembly"/> is null.</exception>
        </member>
        <member name="T:Gallio.Common.Reflection.AssemblyMetadata">
            <summary>
            Provides basic information about an Assembly derived from its metadata.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.AssemblyMetadata.MajorRuntimeVersion">
            <summary>
            Gets the major version of the CLI runtime required for the assembly.
            </summary>
            <remarks>
            <para>
            Typical runtime versions:
            <list type="bullet">
            <item>2.0: .Net 1.0 / .Net 1.1</item>
            <item>2.5: .Net 2.0 / .Net 3.0 / .Net 3.5 / .Net 4.0</item>
            </list>
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Common.Reflection.AssemblyMetadata.MinorRuntimeVersion">
            <summary>
            Gets the minor version of the CLI runtime required for the assembly.
            </summary>
            <remarks>
            <para>
            Typical runtime versions:
            <list type="bullet">
            <item>2.0: .Net 1.0 / .Net 1.1</item>
            <item>2.5: .Net 2.0 / .Net 3.0 / .Net 3.5 / .Net 4.0</item>
            </list>
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Common.Reflection.AssemblyMetadata.ProcessorArchitecture">
            <summary>
            Gets the processor architecture required for the assembly.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.AssemblyMetadata.AssemblyName">
            <summary>
            Gets the assembly references.
            </summary>
            <remarks>
            <para>
            This field is only populated when the <see cref="F:Gallio.Common.Reflection.AssemblyMetadataFields.AssemblyName"/> flag is specified.
            </para>
            </remarks>
            <exception cref="T:System.InvalidOperationException">Thrown if the assembly name was not populated.</exception>
        </member>
        <member name="P:Gallio.Common.Reflection.AssemblyMetadata.AssemblyReferences">
            <summary>
            Gets the assembly references.
            </summary>
            <remarks>
            <para>
            This field is only populated when the <see cref="F:Gallio.Common.Reflection.AssemblyMetadataFields.AssemblyReferences"/> flag is specified.
            </para>
            </remarks>
            <exception cref="T:System.InvalidOperationException">Thrown if the assembly references were not populated.</exception>
        </member>
        <member name="P:Gallio.Common.Reflection.AssemblyMetadata.RuntimeVersion">
            <summary>
            Gets the runtime version in the form "vX.Y.ZZZZ".
            </summary>
            <remarks>
            <para>
            This field is only populated when the <see cref="F:Gallio.Common.Reflection.AssemblyMetadataFields.RuntimeVersion"/> flag is specified.
            </para>
            </remarks>
            <exception cref="T:System.InvalidOperationException">Thrown if the runtime version were not populated.</exception>
        </member>
        <member name="T:Gallio.Common.Reflection.AssemblyMetadataFields">
            <summary>
            Specifies the optional fields of the assembly metadata that are to be populated.
            </summary>
        </member>
        <member name="F:Gallio.Common.Reflection.AssemblyMetadataFields.Default">
            <summary>
            Populates the basic PE format information about the assembly.
            </summary>
        </member>
        <member name="F:Gallio.Common.Reflection.AssemblyMetadataFields.AssemblyName">
            <summary>
            Populates the assembly name.
            </summary>
            <remarks>
            <para>
            Populating this field is expensive because it requires loading the entire assembly.
            </para>
            </remarks>
            <seealso cref="P:Gallio.Common.Reflection.AssemblyMetadata.AssemblyName"/>
        </member>
        <member name="F:Gallio.Common.Reflection.AssemblyMetadataFields.AssemblyReferences">
            <summary>
            Populates the list of assembly references.
            </summary>
            <remarks>
            <para>
            Populating this field is expensive because it requires loading the entire assembly.
            </para>
            </remarks>
            <seealso cref="P:Gallio.Common.Reflection.AssemblyMetadata.AssemblyReferences"/>
        </member>
        <member name="F:Gallio.Common.Reflection.AssemblyMetadataFields.RuntimeVersion">
            <summary>
            Populates the runtime version.
            </summary>
        </member>
        <member name="T:Gallio.Common.Reflection.Impl.CciDebugSymbolResolver">
            <summary>
            Implementation of a debug symbol resolver based on the Microsoft Common Compiler Infrastructure Metadata Components (CCI Metadata Components)
            </summary>
            <remarks>
            <para>
            see http://ccimetadata.codeplex.com/ for more information about the CCI Metadata Components.
            </para>
            </remarks>
        </member>
        <member name="T:Gallio.Common.Reflection.Impl.IDebugSymbolResolver">
            <summary>
            Resolves debug symbols associated with members.
            </summary>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.IDebugSymbolResolver.GetSourceLocationForMethod(System.String,System.Int32)">
            <summary>
            Gets the location of a source file that contains the declaration of a method, or
            null if not available.
            </summary>
            <param name="assemblyPath">The path of the assembly that contains the method.</param>
            <param name="methodToken">The method token.</param>
            <returns>The source code location, or null if unknown.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="assemblyPath"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.CciDebugSymbolResolver.#ctor">
            <summary>
            Creates a Cci debug symbol resolver.
            </summary>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.CciDebugSymbolResolver.Dispose">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.CciDebugSymbolResolver.GetSourceLocationForMethod(System.String,System.Int32)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Common.Reflection.Impl.CciModuleCache">
            <summary>
            Data structure that maps every method in a CCI <see cref="T:Microsoft.Cci.IModule"/> with its <see cref="T:Gallio.Common.Reflection.CodeLocation"/>
            </summary>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.CciModuleCache.#ctor(Gallio.Common.IO.IFileSystem,System.String)">
            <summary>
            Constructor.
            </summary>
            <param name="fileSystem">File system wrapper.</param>
            <param name="assemblyPath">The path of the assembly to scan.</param>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.CciModuleCache.GetMethodLocation(System.UInt32)">
            <summary>
            Returns the code location of the method with the specified metadata token.
            </summary>
            <param name="methodToken">The searched metadata token.</param>
            <returns>The resulting code location, or an unknown location if the method was not found.</returns>
        </member>
        <member name="T:Gallio.Common.Reflection.Impl.UnresolvedCodeElementFactory">
            <summary>
            Creates instances of unresolved reflection objects based on <see cref="T:Gallio.Common.Reflection.ICodeElementInfo"/> wrappers.
            </summary>
            <remarks>
            <para>
            All objects produced by this factory implement <see cref="T:Gallio.Common.Reflection.Impl.IUnresolvedCodeElement"/>.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.UnresolvedCodeElementFactory.#ctor">
            <summary>
            Creates an instance of the factory.
            </summary>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.UnresolvedCodeElementFactory.Wrap(Gallio.Common.Reflection.IAssemblyInfo)">
            <summary>
            Creates an <see cref="T:System.Reflection.Assembly"/> wrapper for <see cref="T:Gallio.Common.Reflection.IAssemblyInfo"/>.
            </summary>
            <param name="adapter">The adapter.</param>
            <returns>The unresolved assembly.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="adapter"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.UnresolvedCodeElementFactory.Wrap(Gallio.Common.Reflection.IConstructorInfo)">
            <summary>
            Creates a <see cref="T:System.Reflection.ConstructorInfo"/> wrapper for <see cref="T:Gallio.Common.Reflection.IConstructorInfo"/>.
            </summary>
            <param name="adapter">The adapter.</param>
            <returns>The unresolved constructor.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="adapter"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.UnresolvedCodeElementFactory.Wrap(Gallio.Common.Reflection.IEventInfo)">
            <summary>
            Creates a <see cref="T:System.Reflection.EventInfo"/> wrapper for <see cref="T:Gallio.Common.Reflection.IEventInfo"/>.
            </summary>
            <param name="adapter">The adapter.</param>
            <returns>The unresolved event.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="adapter"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.UnresolvedCodeElementFactory.Wrap(Gallio.Common.Reflection.IFieldInfo)">
            <summary>
            Creates a <see cref="T:System.Reflection.FieldInfo"/> wrapper for <see cref="T:Gallio.Common.Reflection.IFieldInfo"/>.
            </summary>
            <param name="adapter">The adapter.</param>
            <returns>The unresolved field.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="adapter"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.UnresolvedCodeElementFactory.Wrap(Gallio.Common.Reflection.IMethodInfo)">
            <summary>
            Creates a <see cref="T:System.Reflection.MethodInfo"/> wrapper for <see cref="T:Gallio.Common.Reflection.IMethodInfo"/>.
            </summary>
            <param name="adapter">The adapter.</param>
            <returns>The unresolved method.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="adapter"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.UnresolvedCodeElementFactory.Wrap(Gallio.Common.Reflection.IParameterInfo)">
            <summary>
            Creates a <see cref="T:System.Reflection.ParameterInfo"/> wrapper for <see cref="T:Gallio.Common.Reflection.IParameterInfo"/>.
            </summary>
            <param name="adapter">The adapter.</param>
            <returns>The unresolved parameter.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="adapter"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.UnresolvedCodeElementFactory.Wrap(Gallio.Common.Reflection.IPropertyInfo)">
            <summary>
            Creates a <see cref="T:System.Reflection.PropertyInfo"/> wrapper for <see cref="T:Gallio.Common.Reflection.IPropertyInfo"/>.
            </summary>
            <param name="adapter">The adapter.</param>
            <returns>The unresolved property.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="adapter"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.UnresolvedCodeElementFactory.Wrap(Gallio.Common.Reflection.ITypeInfo)">
            <summary>
            Creates a <see cref="T:System.Type"/> wrapper for <see cref="T:Gallio.Common.Reflection.ITypeInfo"/>.
            </summary>
            <param name="adapter">The adapter.</param>
            <returns>The unresolved type.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="adapter"/> is null.</exception>
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.UnresolvedCodeElementFactory.Instance">
            <summary>
            Gets the singleton instance of the factory.
            </summary>
        </member>
        <member name="T:Gallio.Common.Reflection.Impl.IUnresolvedCodeElement">
            <summary>
            Represents a code element that could not be resolved to a native reflection type.
            </summary>
            <remarks>
            <para>
            The <see cref="T:Gallio.Common.Reflection.Impl.UnresolvedCodeElementFactory"/> produces reflection objects that
            implement this interface.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.IUnresolvedCodeElement.Adapter">
            <summary>
            Gets the underlying reflection adapter.
            </summary>
        </member>
        <member name="T:Gallio.Common.Reflection.Impl.NativeWrapper">
            <summary>
             Abstract base class for native wrappers.
            </summary>
        </member>
        <member name="T:Gallio.Common.Reflection.IMirror">
            <summary>
            A mirror describes a code element or attribute using a particular reflection policy.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.IMirror.ReflectionPolicy">
            <summary>
            Gets the reflection policy of the mirror.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.NativeWrapper.ReflectionPolicy">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Common.Reflection.Impl.NamespaceDoc">
            <summary>
            The Gallio.Common.Reflection.Impl namespace provides internal reflection services
            for reflection policy implementors and includes a framework for implementing
            new reflection policies as subclasses of the <see cref="T:Gallio.Common.Reflection.Impl.StaticReflectionPolicy"/>
            class.
            </summary>
        </member>
        <member name="T:Gallio.Common.Reflection.NamespaceDoc">
            <summary>
            The Gallio.Common.Reflection namespace defines an abstract reflection Api
            similar to System.Reflection but intended to enable reflection of .Net code
            assets that are not loaded as executable assemblies.  The reflection Api
            provides several capabilities not present in System.Reflection including the
            ability to obtain source file and line number information as well as Xml
            documentation comments.  This namespace includes a wrapper for standard .Net
            reflection and for a file-based reflection policy based on Mono.Cecil.
            </summary>
        </member>
        <member name="T:Gallio.Common.Reflection.ProxyUtils">
            <summary>
            Utilities for generating dynamic proxies and adapters using code generation techniques.
            </summary>
        </member>
        <member name="M:Gallio.Common.Reflection.ProxyUtils.CoerceDelegate(System.Type,System.Delegate)">
            <summary>
            Coerces a source delegate to a target delegate type by casting the source delegate's
            parameters individually to the target delegate type's parameter types.
            </summary>
            <param name="targetDelegateType">The target delegate type.</param>
            <param name="sourceDelegate">The source delegate, or null.</param>
            <returns>The target delegate, or null if the source delegate was null.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="targetDelegateType"/>
            is null.</exception>
            <exception cref="T:System.ArgumentException">Thrown if <paramref name="targetDelegateType"/>
            is not a delegate type.</exception>
            <exception cref="T:System.InvalidOperationException">Thrown if the source and target delegate types are
            incompatible such as if they have different numbers of parameters or a different
            composition of out/ref parameters.</exception>
        </member>
        <member name="T:Gallio.Common.Remoting.BaseChannel">
            <summary>
            Abstract base class for channels implemented using the .Net remoting infrastructure.
            </summary>
        </member>
        <member name="M:Gallio.Common.Remoting.BaseChannel.#ctor(System.Runtime.Remoting.Channels.IChannel,System.Uri)">
            <summary>
            Creates a channel.
            </summary>
            <param name="channel">The .Net remoting channel.</param>
            <param name="channelUri">The root Uri associated with the channel.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="channel"/> or <paramref name="channelUri"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Remoting.BaseChannel.Dispose">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Remoting.BaseChannel.Dispose(System.Boolean)">
            <summary>
            Disposes the channel.
            </summary>
            <param name="disposing">True if <see cref="M:Gallio.Common.Remoting.BaseChannel.Dispose"/> was called directly.</param>
        </member>
        <member name="M:Gallio.Common.Remoting.BaseChannel.GetServiceUri(System.String)">
            <summary>
            Gets the Uri of a service with the given name that can be accessed using this channel.
            </summary>
            <param name="serviceName">The service name.</param>
            <returns>The service uri.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="serviceName"/> is null.</exception>
        </member>
        <member name="P:Gallio.Common.Remoting.BaseChannel.Channel">
            <summary>
            Gets the associated .Net remoting channel.
            </summary>
        </member>
        <member name="P:Gallio.Common.Remoting.BaseChannel.ChannelUri">
            <summary>
            Gets the root Uri associated with the channel.
            </summary>
        </member>
        <member name="T:Gallio.Common.Remoting.BaseClientChannel">
            <summary>
            Abstract base class for client channels implemented using the .Net
            remoting infrastructure.
            </summary>
        </member>
        <member name="T:Gallio.Common.Remoting.IClientChannel">
            <summary>
            A client channel manages the client side of a remoting channel.
            </summary>
            <seealso cref="T:Gallio.Common.Remoting.IServerChannel"/>
        </member>
        <member name="M:Gallio.Common.Remoting.IClientChannel.GetService(System.Type,System.String)">
            <summary>
            Gets a well-known remote service with the specified name.
            </summary>
            <param name="serviceType">The type of the service.</param>
            <param name="serviceName">The name of the service.</param>
            <returns>The component or a proxy that provides the service.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="serviceType"/>
            or <paramref name="serviceName"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Remoting.BaseClientChannel.#ctor(System.Runtime.Remoting.Channels.IChannel,System.Uri)">
            <summary>
            Creates a channel.
            </summary>
            <param name="channel">The .Net remoting channel.</param>
            <param name="channelUri">The root Uri associated with the channel.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="channel"/> or <paramref name="channelUri"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Remoting.BaseClientChannel.GetService(System.Type,System.String)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Common.Remoting.BaseServerChannel">
            <summary>
            Abstract base class for client channels implemented using the .Net
            remoting infrastructure.
            </summary>
        </member>
        <member name="T:Gallio.Common.Remoting.IServerChannel">
            <summary>
            A server channel manages the server side of a remoting channel.
            </summary>
            <seealso cref="T:Gallio.Common.Remoting.IClientChannel"/>
        </member>
        <member name="M:Gallio.Common.Remoting.IServerChannel.RegisterService(System.String,System.MarshalByRefObject)">
            <summary>
            Registers a well-known service with the specified name.
            </summary>
            <param name="serviceName">The name of the service.</param>
            <param name="component">The component that provides the service.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="serviceName"/> or
            <paramref name="component"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Remoting.BaseServerChannel.#ctor(System.Runtime.Remoting.Channels.IChannel,System.Uri)">
            <summary>
            Creates a channel.
            </summary>
            <param name="channel">The .Net remoting channel.</param>
            <param name="channelUri">The root Uri associated with the channel.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="channel"/> or <paramref name="channelUri"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Remoting.BaseServerChannel.RegisterService(System.String,System.MarshalByRefObject)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Remoting.BaseServerChannel.Dispose(System.Boolean)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Common.Remoting.BinaryIpcClientChannel">
            <summary>
            A client channel based on an <see cref="T:System.Runtime.Remoting.Channels.Ipc.IpcClientChannel"/> that uses a
            <see cref="T:System.Runtime.Remoting.Channels.BinaryClientFormatterSinkProvider"/>.
            </summary>
        </member>
        <member name="M:Gallio.Common.Remoting.BinaryIpcClientChannel.#ctor(System.String)">
            <summary>
            Creates a channel.
            </summary>
            <param name="portName">The ipc port name to connect to.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="portName"/> is null.</exception>
        </member>
        <member name="T:Gallio.Common.Remoting.BinaryIpcServerChannel">
            <summary>
            A server channel based on an <see cref="T:System.Runtime.Remoting.Channels.Ipc.IpcServerChannel"/> that uses a
            <see cref="T:System.Runtime.Remoting.Channels.BinaryServerFormatterSinkProvider"/>.
            </summary>
        </member>
        <member name="M:Gallio.Common.Remoting.BinaryIpcServerChannel.#ctor(System.String)">
            <summary>
            Creates a channel.
            </summary>
            <param name="portName">The ipc port name to register.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="portName"/> is null.</exception>
        </member>
        <member name="T:Gallio.Common.Remoting.BinaryTcpClientChannel">
            <summary>
            A client channel based on an <see cref="T:System.Runtime.Remoting.Channels.Tcp.TcpClientChannel"/> that uses a
            <see cref="T:System.Runtime.Remoting.Channels.BinaryClientFormatterSinkProvider"/>.
            </summary>
        </member>
        <member name="M:Gallio.Common.Remoting.BinaryTcpClientChannel.#ctor(System.String,System.Int32,System.Nullable{System.TimeSpan})">
            <summary>
            Creates a channel.
            </summary>
            <param name="hostName">The host name to connect to.</param>
            <param name="portNumber">The port number to connect to.</param>
            <param name="requestTimeout">The request timeout or null if none.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="hostName"/> is null.</exception>
        </member>
        <member name="T:Gallio.Common.Remoting.BinaryTcpServerChannel">
            <summary>
            A server channel based on an <see cref="T:System.Runtime.Remoting.Channels.Tcp.TcpServerChannel"/> that uses a
            <see cref="T:System.Runtime.Remoting.Channels.BinaryServerFormatterSinkProvider"/>.
            </summary>
        </member>
        <member name="M:Gallio.Common.Remoting.BinaryTcpServerChannel.#ctor(System.String,System.Int32)">
            <summary>
            Creates a channel.
            </summary>
            <param name="hostName">The remotely accessed hostname.</param>
            <param name="portNumber">The port number.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="hostName"/> is null.</exception>
        </member>
        <member name="T:Gallio.Common.Remoting.NamespaceDoc">
            <summary>
            The Gallio.Common.Remoting namespace contains types for managing .Net remoting channels.
            </summary>
        </member>
        <member name="T:Gallio.Common.Security.FnvHasher">
            <summary>
            Calculates a 32-bit hash code based on the FNV (Fowler-Noll-Vo) algorithm.
            (http://en.wikipedia.org/wiki/Fowler_Noll_Vo_hash)
            </summary>
        </member>
        <member name="M:Gallio.Common.Security.FnvHasher.ToValue">
            <summary>
            Returns the final hash code.
            </summary>
            <returns>The resulting 32-bit hash code.</returns>
        </member>
        <member name="M:Gallio.Common.Security.FnvHasher.#ctor">
            <summary>
            Default constructor.
            </summary>
        </member>
        <member name="M:Gallio.Common.Security.FnvHasher.#ctor(System.Int32)">
            <summary>
            Constructor.
            </summary>
            <param name="salt">Salt value.</param>
        </member>
        <member name="M:Gallio.Common.Security.FnvHasher.Add(System.Object)">
            <summary>
            Adds the hash code of the specified object and combines it with the previous values.
            </summary>
            <param name="obj">The object to add.</param>
            <returns>The builder itself for chaining syntax.</returns>
        </member>
        <member name="M:Gallio.Common.Security.FnvHasher.Add(System.Collections.IEnumerable)">
            <summary>
            Adds the hash code of the specified objects and combines them with the previous values.
            </summary>
            <param name="objects">An enumeration of objects to add.</param>
            <returns>The builder itself for chaining syntax.</returns>
        </member>
        <member name="T:Gallio.Common.Text.NamespaceDoc">
            <summary>
            The Gallio.Common.Text namespace contains types for managing text ranges, 
            computing differences between strings, and regular expressions.
            </summary>
        </member>
        <member name="T:Gallio.Common.Text.RegularExpression.NamespaceDoc">
            <summary>
            The Gallio.Common.Text.RegularExpression namespace contains a lightweight regular expression parser <see cref="T:Gallio.Common.Text.RegularExpression.RegexLite"/>
            which supports a subset of the .Net regular expression features. The parser is used in particular by MbUnit to generate
            random strings based on a given pattern.
            </summary>
        </member>
        <member name="T:Gallio.Common.Time.Clock">
            <summary>
            Utility class for absolute and relative time management.
            </summary>
        </member>
        <member name="T:Gallio.Common.Time.IClock">
            <summary>
            Utility class for absolute and relative time management.
            </summary>
        </member>
        <member name="M:Gallio.Common.Time.IClock.Start">
            <summary>
            Resets the time and starts the clock.
            </summary>
        </member>
        <member name="M:Gallio.Common.Time.IClock.Stop">
            <summary>
            Stops the clock.
            </summary>
        </member>
        <member name="M:Gallio.Common.Time.IClock.ThreadSleep(System.Int32)">
            <summary>
            Blocks the current thread for a specified time.
            </summary>
            <param name="millisecondsTimeout">The amount of time for which the thread is blocked.</param>
            <seealso cref="M:System.Threading.Thread.Sleep(System.Int32)"/>
        </member>
        <member name="M:Gallio.Common.Time.IClock.ThreadSleep(System.TimeSpan)">
            <summary>
            Blocks the current thread for a specified time.
            </summary>
            <param name="timeout">The amount of time for which the thread is blocked.</param>
            <seealso cref="M:System.Threading.Thread.Sleep(System.TimeSpan)"/>
        </member>
        <member name="P:Gallio.Common.Time.IClock.Elapsed">
            <summary>
            Gets the time elapsed.
            </summary>
        </member>
        <member name="P:Gallio.Common.Time.IClock.Now">
            <summary>
            Returns the local date and time.
            </summary>
        </member>
        <member name="P:Gallio.Common.Time.IClock.UtcNow">
            <summary>
            Returns the current date and time, expressed as the Coordinated Universal Time (UTC).
            </summary>
        </member>
        <member name="M:Gallio.Common.Time.Clock.Start">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Time.Clock.Stop">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Time.Clock.ThreadSleep(System.Int32)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Time.Clock.ThreadSleep(System.TimeSpan)">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Time.Clock.Elapsed">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Time.Clock.Now">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Time.Clock.UtcNow">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Common.Time.NamespaceDoc">
            <summary>
            The Gallio.Common.Time namespace contains various types to ease absolute and relative time management.
            </summary>
        </member>
        <member name="T:Gallio.Common.Unit">
            <summary>
            A value type that represents the result of evaluating an
            expression of type <see cref="T:System.Void"/>.
            </summary>
        </member>
        <member name="F:Gallio.Common.Unit.Value">
            <summary>
            Gets the singular value of the <see cref="T:Gallio.Common.Unit"/> type.
            </summary>
        </member>
        <member name="M:Gallio.Common.Unit.ToString">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Common.Validation.NamespaceDoc">
            <summary>
            The Gallio.Common.Validation namespace provides a simple data validation framework
            intended to be used to verify the integrity of data that has been deserialized
            from Xml or other sources that lack strong built-in integrity constraints.
            </summary>
        </member>
        <member name="T:Gallio.Common.Normalization.NormalizationUtils">
            <summary>
            Normalization utilities.
            </summary>
        </member>
        <member name="M:Gallio.Common.Normalization.NormalizationUtils.NormalizeCollection``2(``0,Gallio.Common.Func{``0},Gallio.Common.Func{``1,``1},Gallio.Common.EqualityComparison{``1})">
            <summary>
            Normalizes a collection of normalizable values.
            </summary>
            <typeparam name="TCollection">The type of the collection.</typeparam>
            <typeparam name="T">The type of the values in the collection.</typeparam>
            <param name="collection">The collection of values to normalize, or null if none.</param>
            <param name="collectionFactory">The factory to use to create a new collection if needed.</param>
            <param name="normalize">The normalization function to apply to each value in the collection.</param>
            <param name="compare">The comparer to compare normalized values to determine if a change occurred during normalization.</param>
            <returns>The normalized collection, or null if none.  The result will
            be the same instance as <paramref name="collection"/> if it was already normalized.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="collectionFactory"/>,
            <paramref name="normalize"/> or <paramref name="compare"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Normalization.NormalizationUtils.NormalizeString(System.String,System.Predicate{System.Int32},System.Converter{System.Int32,System.String})">
            <summary>
            Normalizes a string.
            </summary>
            <remarks>
            <para>
            Preserves all valid characters in the string and replaces others as requested.
            </para>
            </remarks>
            <param name="str">The string to normalize, or null if none.</param>
            <param name="valid">The predicate to determine whether a character is valid.
            If the character consists of a surrogate pair, then the parameter will be
            its UTF32 value.</param>
            <param name="replace">The converter to provide a replacement for an invalid character.
            If the character consists of a surrogate pair, then the parameters will be
            its UTF32 value.</param>
            <returns>The normalized text, or null if <paramref name="str"/> was null.  The result will
            be the same instance as <paramref name="str"/> if it was already normalized.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="valid"/>
            or <paramref name="replace"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Normalization.NormalizationUtils.NormalizeName(System.String)">
            <summary>
            Normalizes a name by replacing characters that are not printable with a '?'.
            </summary>
            <param name="name">The name to normalize, or null if none.</param>
            <returns>The normalized name, or null if <paramref name="name"/> was null.  The result will
            be the same instance as <paramref name="name"/> if it was already normalized.</returns>
        </member>
        <member name="M:Gallio.Common.Normalization.NormalizationUtils.NormalizePrintableASCII(System.String)">
            <summary>
            Normalizes a name by replacing characters that are not printable ASCII with '?'.
            </summary>
            <param name="str">The string to normalize, or null if none.</param>
            <returns>The normalized string, or null if <paramref name="str"/> was null.  The result will
            be the same instance as <paramref name="str"/> if it was already normalized.</returns>
        </member>
        <member name="M:Gallio.Common.Normalization.NormalizationUtils.NormalizeXmlText(System.String)">
            <summary>
            Normalizes Xml text.
            </summary>
            <remarks>
            <para>
            Preserves all characters in the following ranges: \t, \n, \r, \u0020 - \uD7FF, 
            \uE000 - \uFFFD, and \U00010000 - \U0010FFFF.  All other characters are replaced
            with '?' to indicate that they cannot be represented in Xml.
            </para>
            </remarks>
            <param name="text">The Xml text to normalize, or null if none.</param>
            <returns>The normalized Xml text, or null if <paramref name="text"/> was null.  The result will
            be the same instance as <paramref name="text"/> if it was already normalized.</returns>
        </member>
        <member name="T:Gallio.Common.Xml.Diffing.DiffType">
            <summary>
            Represents a type of XML diff.
            </summary>
        </member>
        <member name="M:Gallio.Common.Xml.Diffing.DiffType.Equals(System.Object)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Xml.Diffing.DiffType.GetHashCode">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Xml.Diffing.DiffType.Equals(Gallio.Common.Xml.Diffing.DiffType)">
            <inheritdoc />
        </member>
        <member name="F:Gallio.Common.Xml.Diffing.DiffType.UnexpectedContent">
            <summary>
            Unexpected content.
            </summary>
        </member>
        <member name="F:Gallio.Common.Xml.Diffing.DiffType.UnexpectedComment">
            <summary>
            Unexpected comment.
            </summary>
        </member>
        <member name="F:Gallio.Common.Xml.Diffing.DiffType.UnexpectedElement">
            <summary>
            Unexpected element
            </summary>
        </member>
        <member name="F:Gallio.Common.Xml.Diffing.DiffType.MissingElement">
            <summary>
            Missing element
            </summary>
        </member>
        <member name="F:Gallio.Common.Xml.Diffing.DiffType.MismatchedContent">
            <summary>
            Mismatched content.
            </summary>
        </member>
        <member name="F:Gallio.Common.Xml.Diffing.DiffType.MismatchedComment">
            <summary>
            Mismatched comment.
            </summary>
        </member>
        <member name="F:Gallio.Common.Xml.Diffing.DiffType.MismatchedElement">
            <summary>
            Mismatched element.
            </summary>
        </member>
        <member name="F:Gallio.Common.Xml.Diffing.DiffType.UnexpectedAttribute">
            <summary>
            Unexpected attribute.
            </summary>
        </member>
        <member name="F:Gallio.Common.Xml.Diffing.DiffType.MissingAttribute">
            <summary>
            Missing attribute.
            </summary>
        </member>
        <member name="F:Gallio.Common.Xml.Diffing.DiffType.MismatchedAttribute">
            <summary>
            Mismatched attribute.
            </summary>
        </member>
        <member name="P:Gallio.Common.Xml.Diffing.DiffType.Description">
            <summary>
            Gets the description of the diff.
            </summary>
        </member>
        <member name="T:Gallio.Common.Xml.NodeAttribute">
            <summary>
            Represents a single attribute in an XML element.
            </summary>
        </member>
        <member name="T:Gallio.Common.Xml.Diffing.IDiffable`1">
            <summary>
            Represents an XML node that can be compared to another 
            node of the same type, in order to get the differences.
            </summary>
            <typeparam name="TNode">The type of the diffable node.</typeparam>
        </member>
        <member name="M:Gallio.Common.Xml.Diffing.IDiffable`1.Diff(`0,Gallio.Common.Xml.Paths.IXmlPathStrict,Gallio.Common.Xml.Paths.IXmlPathStrict,Gallio.Common.Xml.Options)">
            <summary>
            Diffs the current node with an expected prototype, and returns
            a set of differences found.
            </summary>
            <param name="expected">A prototype representing the expected content of the node.</param>
            <param name="path">The path of the parent node.</param>
            <param name="pathExpected">The path of the parent node of the expected node.</param>
            <param name="options">Comparison options.</param>
            <returns>The resulting diff set describing the differences found.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="expected"/> or <paramref name="path"/> is null.</exception>
        </member>
        <member name="T:Gallio.Common.Xml.INode">
            <summary>
            The base node for the XML composite tree representing an XML fragment.
            </summary>
        </member>
        <member name="T:Gallio.Common.Xml.INamed">
            <summary>
            Represents an XML node with a name.
            </summary>
        </member>
        <member name="M:Gallio.Common.Xml.INamed.AreNamesEqual(System.String,Gallio.Common.Xml.Options)">
            <summary>
            Determines whether the name of the current node is equal to the specified name, 
            by respecting the specified equality options.
            </summary>
            <param name="otherName">The name to compare.</param>
            <param name="options">Equality options.</param>
            <returns>True if the names are equal; false otherwise.</returns>
        </member>
        <member name="P:Gallio.Common.Xml.INamed.Name">
            <summary>
            Gets the name of the node.
            </summary>
        </member>
        <member name="M:Gallio.Common.Xml.INode.CountAt(Gallio.Common.Xml.Paths.IXmlPathLoose,System.String,Gallio.Common.Xml.Options)">
            <summary>
            Returns the number of times the searched node was found at the specified path.
            </summary>
            <param name="searchedPath">The path of the searched node.</param>
            <param name="expectedValue">The expected value found in the searched node, or null if the value must be ignored.</param>
            <param name="options">Options for the search.</param>
            <returns>The number of matching items found; zero if not found.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="searchedPath"/> is null.</exception>
        </member>
        <member name="P:Gallio.Common.Xml.INode.Type">
            <summary>
            Gets the type of the node.
            </summary>
        </member>
        <member name="P:Gallio.Common.Xml.INode.Index">
            <summary>
            Gets the index of the node.
            </summary>
        </member>
        <member name="P:Gallio.Common.Xml.INode.IsFirst">
            <summary>
            Determines whether it is the first attribute in its parent.
            </summary>
        </member>
        <member name="P:Gallio.Common.Xml.INode.IsLast">
            <summary>
            Determines whether it is the last attribute in its parent.
            </summary>
        </member>
        <member name="P:Gallio.Common.Xml.INode.Children">
            <summary>
            Gets the children nodes.
            </summary>
        </member>
        <member name="M:Gallio.Common.Xml.NodeAttribute.#ctor(System.Int32,System.String,System.String,System.Int32)">
            <summary>
            Constructs an attribute.
            </summary>
            <param name="index">The index of the attribute.</param>
            <param name="name">The name of the attribute.</param>
            <param name="value">The value of the attribute.</param>
            <param name="count">The number of attributes in the parent collection.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="name"/> or <paramref name="value"/> is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="index"/> is negative.</exception>
        </member>
        <member name="M:Gallio.Common.Xml.NodeAttribute.Diff(Gallio.Common.Xml.INode,Gallio.Common.Xml.Paths.IXmlPathStrict,Gallio.Common.Xml.Paths.IXmlPathStrict,Gallio.Common.Xml.Options)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Xml.NodeAttribute.Diff(Gallio.Common.Xml.NodeAttribute,Gallio.Common.Xml.Paths.IXmlPathStrict,Gallio.Common.Xml.Paths.IXmlPathStrict,Gallio.Common.Xml.Options)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Xml.NodeAttribute.AreNamesEqual(System.String,Gallio.Common.Xml.Options)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Xml.NodeAttribute.AreValuesEqual(System.String,Gallio.Common.Xml.Options)">
            <summary>
            Determines whether the value of the current attribute is equal to the specified value, 
            by respecting the specified equality options.
            </summary>
            <param name="otherValue">The value to compare.</param>
            <param name="options">Equality options.</param>
            <returns>True if the values are equal; false otherwise.</returns>
        </member>
        <member name="M:Gallio.Common.Xml.NodeAttribute.CountAt(Gallio.Common.Xml.Paths.IXmlPathLoose,System.String,Gallio.Common.Xml.Options)">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Xml.NodeAttribute.Type">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Xml.NodeAttribute.Index">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Xml.NodeAttribute.Name">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Xml.NodeAttribute.Value">
            <summary>
            Gets the value of the attribute.
            </summary>
        </member>
        <member name="P:Gallio.Common.Xml.NodeAttribute.IsFirst">
            <summary>
            Determines whether it is the first attribute in its parent.
            </summary>
        </member>
        <member name="P:Gallio.Common.Xml.NodeAttribute.IsLast">
            <summary>
            Determines whether it is the last attribute in its parent.
            </summary>
        </member>
        <member name="P:Gallio.Common.Xml.NodeAttribute.Children">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Xml.NodeAttribute.IsNull">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Common.Xml.NodeAttributeCollection">
            <summary>
            An immutable collection of XML attributes.
            </summary>
        </member>
        <member name="T:Gallio.Common.Xml.NodeCollection`1">
            <summary>
            Immutable collection of XML nodes.
            </summary>
        </member>
        <member name="M:Gallio.Common.Xml.NodeCollection`1.#ctor(System.Collections.Generic.IEnumerable{`0})">
            <summary>
            Constructs a collection of XML nodes from the specified enumeration.
            </summary>
            <param name="nodes">An enumeration of nodes.</param>
        </member>
        <member name="M:Gallio.Common.Xml.NodeCollection`1.GetEnumerator">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Xml.NodeCollection`1.FindIndex(System.Predicate{System.Int32})">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Xml.NodeCollection`1.Exists(System.Predicate{`0})">
            <summary>
            Determines whether the collection contains elements that match the conditions defined by the specified predicate. 
            </summary>
            <param name="match">The predicate.</param>
            <returns>True if the collection contains at least one element that match the conditions; otherwise, false.</returns>
        </member>
        <member name="M:Gallio.Common.Xml.NodeCollection`1.CountAt(Gallio.Common.Xml.Paths.IXmlPathLoose,System.String,Gallio.Common.Xml.Options)">
            <summary>
            Returns the number of times the searched node was found at the specified path.
            </summary>
            <param name="searchedPath">The path of the searched node.</param>
            <param name="expectedValue">The expected value found in the searched node, or null if the value must be ignored.</param>
            <param name="options">Options for the search.</param>
            <returns>The number of matching items found; zero if not found.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="searchedPath"/> is null.</exception>
        </member>
        <member name="P:Gallio.Common.Xml.NodeCollection`1.Count">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Xml.NodeCollection`1.Item(System.Int32)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Common.Xml.Diffing.IDiffableCollection`2">
            <summary>
            A collection of XML nodes that can be compared to another 
            collection of the same type, in order to get the differences.
            </summary>
            <typeparam name="TCollection">The type of the collection.</typeparam>
            <typeparam name="TItem">The type of the items in the collection.</typeparam>
        </member>
        <member name="M:Gallio.Common.Xml.Diffing.IDiffableCollection`2.FindIndex(System.Predicate{System.Int32})">
            <summary>
            Returns the index of the first item which matches the specified predicates.
            </summary>
            <param name="predicate">The predicate to evaluate.</param>
            <returns>The index of the first item found; otherwise -1 if no item was found.</returns>
        </member>
        <member name="P:Gallio.Common.Xml.Diffing.IDiffableCollection`2.Count">
            <summary>
            Gets the number of items in the collection.
            </summary>
        </member>
        <member name="P:Gallio.Common.Xml.Diffing.IDiffableCollection`2.Item(System.Int32)">
            <summary>
            Gets the item located at the specified index.
            </summary>
            <param name="index">The zero-based index.</param>
            <returns>The item found at the searched index.</returns>
        </member>
        <member name="F:Gallio.Common.Xml.NodeAttributeCollection.Empty">
            <summary>
            An empty collection singleton instance.
            </summary>
        </member>
        <member name="M:Gallio.Common.Xml.NodeAttributeCollection.#ctor(System.Collections.Generic.IEnumerable{Gallio.Common.Xml.NodeAttribute})">
            <summary>
            Constructs a collection of XML attributes from the specified enumeration.
            </summary>
            <param name="attributes">An enumeration of attributes.</param>
        </member>
        <member name="M:Gallio.Common.Xml.NodeAttributeCollection.Diff(Gallio.Common.Xml.NodeAttributeCollection,Gallio.Common.Xml.Paths.IXmlPathStrict,Gallio.Common.Xml.Paths.IXmlPathStrict,Gallio.Common.Xml.Options)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Xml.NodeAttributeCollection.Contains(System.String,System.String,Gallio.Common.Xml.Options)">
            <summary>
            Determines whether the collection contains an attribute with the specified name, and optionally the specified value.
            </summary>
            <param name="searchedAttributeName">The name of the searched attribute.</param>
            <param name="expectedAttributeValue">The expected value found in the searched attribute, or null if the value must be ignored.</param>
            <param name="options">Options for the search.</param>
            <returns>True is such an attribute exists; otherwise false.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="searchedAttributeName"/> is null.</exception>
        </member>
        <member name="T:Gallio.Common.Xml.NodeDeclaration">
            <summary>
            Represents the declaration element at the beginning of an XML document.
            </summary>
        </member>
        <member name="T:Gallio.Common.Xml.NodeBase">
            <summary>
            The abstract base node for the XML composite tree representing an XML fragment.
            </summary>
        </member>
        <member name="M:Gallio.Common.Xml.NodeBase.#ctor(Gallio.Common.Xml.NodeType,System.Int32,System.Int32,System.Collections.Generic.IEnumerable{Gallio.Common.Xml.INode})">
            <summary>
            Constructs a node instance.
            </summary>
            <param name="type">The type of the node.</param>
            <param name="index">The index of the node.</param>
            <param name="count">The number of elements at the same level.</param>
            <param name="children">The children nodes.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="children"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Xml.NodeBase.Diff(Gallio.Common.Xml.INode,Gallio.Common.Xml.Paths.IXmlPathStrict,Gallio.Common.Xml.Paths.IXmlPathStrict,Gallio.Common.Xml.Options)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Xml.NodeBase.AreNamesEqual(System.String,Gallio.Common.Xml.Options)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Xml.NodeBase.CountAt(Gallio.Common.Xml.Paths.IXmlPathLoose,System.String,Gallio.Common.Xml.Options)">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Xml.NodeBase.Type">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Xml.NodeBase.Index">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Xml.NodeBase.Children">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Xml.NodeBase.Name">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Xml.NodeBase.IsFirst">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Xml.NodeBase.IsLast">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Xml.NodeDeclaration.#ctor(System.Collections.Generic.IEnumerable{Gallio.Common.Xml.NodeAttribute})">
            <summary>
            Constructs the declaration element.
            </summary>
            <param name="attributes">The attributes of the element.</param>
        </member>
        <member name="M:Gallio.Common.Xml.NodeDeclaration.Diff(Gallio.Common.Xml.INode,Gallio.Common.Xml.Paths.IXmlPathStrict,Gallio.Common.Xml.Paths.IXmlPathStrict,Gallio.Common.Xml.Options)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Xml.NodeDeclaration.Diff(Gallio.Common.Xml.NodeDeclaration,Gallio.Common.Xml.Paths.IXmlPathStrict,Gallio.Common.Xml.Paths.IXmlPathStrict,Gallio.Common.Xml.Options)">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Xml.NodeDeclaration.Attributes">
            <summary>
            Gets the declaration attributes.
            </summary>
        </member>
        <member name="T:Gallio.Common.Xml.Diffing.Diff">
            <summary>
            A diff item representing one single difference between two XML fragments.
            </summary>
        </member>
        <member name="M:Gallio.Common.Xml.Diffing.Diff.#ctor(Gallio.Common.Xml.Diffing.DiffType,Gallio.Common.Xml.Paths.IXmlPathStrict,Gallio.Common.Xml.Diffing.DiffTargets)">
            <summary>
            Constructs a diff item.
            </summary>
            <param name="diffType">The type of the diff.</param>
            <param name="path">The path of the difference.</param>
            <param name="targets">Indicates which XML fragment is targeted by the diff.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="diffType"/> or <paramref name="path"/> is null.</exception>
            <exception cref="T:System.ArgumentException">Thrown if <paramref name="diffType"/> or <paramref name="path"/> is empty.</exception>
        </member>
        <member name="M:Gallio.Common.Xml.Diffing.Diff.ToString">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Xml.Diffing.Diff.ToAssertionFailure(Gallio.Common.Xml.NodeFragment,Gallio.Common.Xml.NodeFragment)">
            <summary>
            Returns the diff as an assertion failure.
            </summary>
            <param name="expected">The expected fragment used to format the diff.</param>
            <param name="actual">The actual fragment used to format the diff.</param>
            <returns>The resulting assertion failure.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="expected"/> or <paramref name="actual"/> is null.</exception>
        </member>
        <member name="P:Gallio.Common.Xml.Diffing.Diff.Type">
            <summary>
            Gets a type of the diff.
            </summary>
        </member>
        <member name="P:Gallio.Common.Xml.Diffing.Diff.Path">
            <summary>
            Gets the path of the difference.
            </summary>
        </member>
        <member name="P:Gallio.Common.Xml.Diffing.Diff.Targets">
            <summary>
            Indicates which XML fragment is targeted by the diff.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.Formatting.IFormatter">
            <summary>
            Provides services for formatting objects for display.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Formatting.IFormatter.Format(System.Object)">
            <summary>
            Formats an object to a string for display.
            </summary>
            <remarks>
            <para>
            The formatted string may incorporate a variety of presentation techniques
            intended to clearly identify formatted values of different types.
            For example, strings might appear quoted, objects might be described
            using <see cref="M:System.Object.ToString"/> or in terms of their properties,
            collections might be listed as sequences of formatted elements.
            </para>
            <para>
            The resulting string should not be expected to be machine-readable.
            </para>
            <para>
            This method should never return an empty string or throw an exception.
            If the value cannot be formatted property then a placeholder should
            be used instead, such as the value's type.
            </para>
            <para>
            Likewise this method should never throw an exception.  If the object cannot be formatted
            cleanly, then an error message should be produced instead.
            </para>
            <para>
            These constraints are intended to ensure that the formatter provides
            a robust service to all clients.
            </para>
            </remarks>
            <param name="obj">The object to format, may be null.</param>
            <returns>The formatted string, never null and never an empty string.</returns>
        </member>
        <member name="T:Gallio.Common.Xml.Diffing.DiffEngineFactory">
            <summary>
            Diffing engine abstract factory.
            </summary>
        </member>
        <member name="M:Gallio.Common.Xml.Diffing.DiffEngineFactory.ForAttributes(Gallio.Common.Xml.NodeAttributeCollection,Gallio.Common.Xml.NodeAttributeCollection,Gallio.Common.Xml.Paths.IXmlPathStrict,Gallio.Common.Xml.Paths.IXmlPathStrict,Gallio.Common.Xml.Options)">
            <summary>
            Makes a diffing engine for collections of attributes.
            </summary>
            <param name="expected">The expected attributes.</param>
            <param name="actual">The actual attributes.</param>
            <param name="path">The current path of the parent node.</param>
            <param name="pathExpected">The path of the parent node of the parent collection.</param>
            <param name="options">Equality options.</param>
            <returns>The resulting diffing engine.</returns>
        </member>
        <member name="M:Gallio.Common.Xml.Diffing.DiffEngineFactory.ForElements(Gallio.Common.Xml.NodeCollection,Gallio.Common.Xml.NodeCollection,Gallio.Common.Xml.Paths.IXmlPathStrict,Gallio.Common.Xml.Paths.IXmlPathStrict,Gallio.Common.Xml.Options)">
            <summary>
            Makes a diffing engine for collections of elements.
            </summary>
            <param name="expected">The expected elements.</param>
            <param name="actual">The actual elements.</param>
            <param name="path">The current path of the parent node.</param>
            <param name="pathExpected">The path of the parent node of the parent collection.</param>
            <param name="options">Equality options.</param>
            <returns>The resulting diffing engine.</returns>
        </member>
        <member name="T:Gallio.Common.Xml.Diffing.DiffSet">
            <summary>
            An immutable set of diff items representing the differences between two XML fragments.
            </summary>
        </member>
        <member name="F:Gallio.Common.Xml.Diffing.DiffSet.Empty">
            <summary>
            A empty diff set singleton instance.
            </summary>
        </member>
        <member name="M:Gallio.Common.Xml.Diffing.DiffSet.#ctor(System.Collections.Generic.IEnumerable{Gallio.Common.Xml.Diffing.Diff})">
            <summary>
            Constructs a sets from the specified enumeration of diff items.
            </summary>
            <param name="diffs">An enumeration of diff items.</param>
        </member>
        <member name="M:Gallio.Common.Xml.Diffing.DiffSet.GetEnumerator">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Xml.Diffing.DiffSet.ToAssertionFailures(Gallio.Common.Xml.NodeFragment,Gallio.Common.Xml.NodeFragment)">
            <summary>
            Returns the diff items as an enumeration of assertion failures.
            </summary>
            <param name="expected">The expected fragment used to format the diff.</param>
            <param name="actual">The actual fragment used to format the diff.</param>
            <returns>The resulting enumeration of assertion failures.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="expected"/> or <paramref name="actual"/> is null.</exception>
        </member>
        <member name="P:Gallio.Common.Xml.Diffing.DiffSet.IsEmpty">
            <summary>
            Gets a value indicating if the set is empty (i.e. no differences found)
            </summary>
        </member>
        <member name="P:Gallio.Common.Xml.Diffing.DiffSet.Count">
            <summary>
            Gets the number of diffs in the collection.
            </summary>
        </member>
        <member name="T:Gallio.Common.Xml.Diffing.DiffSetBuilder">
            <summary>
            A simple builder for the <see cref="T:Gallio.Common.Xml.Diffing.DiffSet"/> object.
            </summary>
        </member>
        <member name="M:Gallio.Common.Xml.Diffing.DiffSetBuilder.Add(Gallio.Common.Xml.Diffing.Diff)">
            <summary>
            Adds the specified diff item to the set.
            </summary>
            <param name="item">The diff item to be added.</param>
            <returns>A reference to the builder itself.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="item"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Xml.Diffing.DiffSetBuilder.Add(Gallio.Common.Xml.Diffing.DiffSet)">
            <summary>
            Adds the diff items contained into the specified set to the current set.
            </summary>
            <param name="items">The diff items to be added.</param>
            <returns>A reference to the builder itself.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="items"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Xml.Diffing.DiffSetBuilder.ToDiffSet">
            <summary>
            Returns a new <see cref="T:Gallio.Common.Xml.Diffing.DiffSet"/> based on the current content of the builder.
            </summary>
            <returns>The resulting diff set object.</returns>
        </member>
        <member name="T:Gallio.Common.Xml.Diffing.DiffTargets">
            <summary>
            The target of a diff result.
            </summary>
        </member>
        <member name="F:Gallio.Common.Xml.Diffing.DiffTargets.Actual">
            <summary>
            The actual XML fragment.
            </summary>
        </member>
        <member name="F:Gallio.Common.Xml.Diffing.DiffTargets.Expected">
            <summary>
            The expected XML fragment.
            </summary>
        </member>
        <member name="F:Gallio.Common.Xml.Diffing.DiffTargets.Both">
            <summary>
            The actual and the expected XML fragments.
            </summary>
        </member>
        <member name="T:Gallio.Common.Xml.NodeFragment">
            <summary>
            Represents a diffable XML fragment.
            </summary>
            <remarks>
            <para>
            fragments are the root objects for constructing, searching, diffing XML documents.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Common.Xml.NodeFragment.#ctor(Gallio.Common.Xml.NodeDeclaration,Gallio.Common.Xml.INode)">
            <summary>
            Constructs an XML document.
            </summary>
            <param name="declaration">The declaration element of the document.</param>
            <param name="root">The root element of the document.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="declaration"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Xml.NodeFragment.Diff(Gallio.Common.Xml.INode,Gallio.Common.Xml.Paths.IXmlPathStrict,Gallio.Common.Xml.Paths.IXmlPathStrict,Gallio.Common.Xml.Options)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Xml.NodeFragment.Diff(Gallio.Common.Xml.NodeFragment,Gallio.Common.Xml.Options)">
            <summary>
            Diffs the current fragment with an expected prototype, and returns a set of differences found.
            </summary>
            <param name="expected">A prototype representing the expected content of the node.</param>
            <param name="options">Comparison options.</param>
            <returns>The resulting diff set describing the differences found.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="expected"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Xml.NodeFragment.Diff(Gallio.Common.Xml.NodeFragment,Gallio.Common.Xml.Paths.IXmlPathStrict,Gallio.Common.Xml.Paths.IXmlPathStrict,Gallio.Common.Xml.Options)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Xml.NodeFragment.Find(Gallio.Common.Xml.Paths.IXmlPathStrict)">
            <summary>
            Finds the node located at the specified path.
            </summary>
            <param name="path">The searched strict path.</param>
            <returns>The node found.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="path"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Xml.NodeFragment.CountAt(Gallio.Common.Xml.Paths.IXmlPathLoose,System.String,Gallio.Common.Xml.Options)">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Xml.NodeFragment.Declaration">
            <summary>
            Gets the declaration element of the document.
            </summary>
        </member>
        <member name="T:Gallio.Common.Xml.Diffing.IDiffEngine`1">
            <summary>
            Diffing engine.
            </summary>
            <typeparam name="T">The type of the objects to diff.</typeparam>
        </member>
        <member name="M:Gallio.Common.Xml.Diffing.IDiffEngine`1.Diff">
            <summary>
            Computes the differences between the expected and the actual object.
            </summary>
            <returns>The resulting diff set.</returns>
        </member>
        <member name="T:Gallio.Common.Xml.NodeType">
            <summary>
            Type of XML Node.
            </summary>
        </member>
        <member name="F:Gallio.Common.Xml.NodeType.Fragment">
            <summary>
            A valid XML fragment.
            </summary>
        </member>
        <member name="F:Gallio.Common.Xml.NodeType.Element">
            <summary>
            An XML element.
            </summary>
        </member>
        <member name="F:Gallio.Common.Xml.NodeType.Comment">
            <summary>
            A comment element.
            </summary>
        </member>
        <member name="F:Gallio.Common.Xml.NodeType.Content">
            <summary>
            A textual content inside an element.
            </summary>
        </member>
        <member name="F:Gallio.Common.Xml.NodeType.Declaration">
            <summary>
            A declaration element at the beginning of an XML document.
            </summary>
        </member>
        <member name="F:Gallio.Common.Xml.NodeType.Attribute">
            <summary>
            An attribute.
            </summary>
        </member>
        <member name="T:Gallio.Common.Xml.Paths.IXmlPathLoose">
            <summary>
            Represents an immutable and loose path to a node in an XML fragment.
            </summary>
            <remarks>
            <para>
            A loose path is built based on the name of the elements that lead to it. 
            Thus several nodes might be represented by the same loose path.
            </para>
            </remarks>
        </member>
        <member name="T:Gallio.Common.Xml.Paths.IXmlPath">
            <summary>
            Represents an immutable path to a node in an XML fragment.
            </summary>
        </member>
        <member name="M:Gallio.Common.Xml.Paths.IXmlPath.ToString">
            <summary>
            Formats the current path.
            </summary>
            <returns>The resulting formatted path.</returns>
        </member>
        <member name="P:Gallio.Common.Xml.Paths.IXmlPath.IsEmpty">
            <summary>
            Determines whether the current node represents the empty root path.
            </summary>
        </member>
        <member name="M:Gallio.Common.Xml.Paths.IXmlPathLoose.Trail">
            <summary>
            Returns the entire path excluding the head node.
            </summary>
            <returns>The output path</returns>
        </member>
        <member name="M:Gallio.Common.Xml.Paths.IXmlPathLoose.AsArray">
            <summary>
            Returns the path nodes as an array.
            </summary>
            <returns>The output array.</returns>
        </member>
        <member name="M:Gallio.Common.Xml.Paths.IXmlPathLoose.Copy(Gallio.Common.Xml.Paths.IXmlPathLoose)">
            <summary>
            
            </summary>
            <param name="parent"></param>
            <returns></returns>
        </member>
        <member name="T:Gallio.Common.Xml.Paths.IXmlPathLooseClosed">
            <summary>
            Represents a closed immutable and loose path to a node in an XML fragment.
            </summary>
            <remarks>
            <para>
            A closed path points to a type of node that has no child, like an attribute.
            </para>
            </remarks>
            <remarks>
            <para>
            A loose path is built based on the name of the elements that lead to it. 
            Thus several nodes might be represented by the same loose path.
            </para>
            </remarks>
        </member>
        <member name="T:Gallio.Common.Xml.Paths.IXmlPathLooseOpen">
            <summary>
            Represents an immutable and loose path to a node in an XML fragment.
            </summary>
            <remarks>
            <para>
            A loose path is built based on the name of the elements that lead to it. 
            Thus several nodes might be represented by the same loose path.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Common.Xml.Paths.IXmlPathLooseOpen.Element(System.String)">
            <summary>
            Extends the path to a child element.
            </summary>
            <param name="name">The name of the child element.</param>
            <returns>A new immutable open path that encapsulates the current path.</returns>
        </member>
        <member name="M:Gallio.Common.Xml.Paths.IXmlPathLooseOpen.Attribute(System.String)">
            <summary>
            Extends the path to a child attribute.
            </summary>
            <param name="name">The name of the child attribute.</param>
            <returns>A new immutable closed path that encapsulates the current path.</returns>
        </member>
        <member name="T:Gallio.Common.Xml.Paths.XmlPathParser">
            <summary>
            Parses the textual representation of an XML path.
            </summary>
        </member>
        <member name="M:Gallio.Common.Xml.Paths.XmlPathParser.RunLoose(System.String)">
            <summary>
            Parses the specified textual representation of a loose path.
            </summary>
            <param name="input">The input path.</param>
            <returns>The resulting path object.</returns>
        </member>
        <member name="M:Gallio.Common.Xml.Paths.XmlPathParser.RunStrict(System.String)">
            <summary>
            Parses the specified textual representation of a strict path.
            </summary>
            <param name="input">The input path.</param>
            <returns>The resulting path object.</returns>
        </member>
        <member name="T:Gallio.Common.Xml.Paths.XmlPathRenderer">
            <summary>
            Formats a strict path into a human readable form, based on the contents of an existing XML fragment.
            </summary>
        </member>
        <member name="M:Gallio.Common.Xml.Paths.XmlPathRenderer.Run(Gallio.Common.Xml.Paths.IXmlPathStrict,Gallio.Common.Xml.NodeFragment,Gallio.Common.Xml.Paths.XmlPathRenderingOptions)">
            <summary>
            Formats a strict path into a human readable form, based on the contents of an existing XML fragment.
            </summary>
            <param name="path">The strict path to format.</param>
            <param name="fragment">The fragment used to format the path..</param>
            <param name="options">Rendering options.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="path"/>, or <paramref name="fragment"/> is null.</exception>
        </member>
        <member name="T:Gallio.Common.Xml.Paths.XmlPathRenderingOptions">
            <summary>
            Rendering options for the XML path renderer.
            </summary>
        </member>
        <member name="F:Gallio.Common.Xml.Paths.XmlPathRenderingOptions.None">
            <summary>
            No options.
            </summary>
        </member>
        <member name="F:Gallio.Common.Xml.Paths.XmlPathRenderingOptions.UseIndentation">
            <summary>
            Prints each element in its own indented line.
            </summary>
        </member>
        <member name="T:Gallio.Common.Xml.Paths.XmlPathStrictDeclaration">
            <summary>
            Concrete node representing an XML declaration node in a strict path, and which is closed to further extensions.
            </summary>
        </member>
        <member name="T:Gallio.Common.Xml.Paths.XmlPathStrict">
            <summary>
            Abstract node that extends a strict XML path, and let it opened for further extensions.
            </summary>
        </member>
        <member name="T:Gallio.Common.Xml.Paths.IXmlPathStrict">
            <summary>
            Represents an open, immutable and strict path to a node in an XML fragment.
            </summary>
            <remarks>
            <para>
            A strict path is built based on the index of the elements that lead to it. 
            Thus a strict path unambiguously designates one and only one node in an XML fragment.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Common.Xml.Paths.IXmlPathStrict.Element(System.Int32)">
            <summary>
            Extends the path to a child element.
            </summary>
            <param name="index">The index of the child element.</param>
            <returns>A new immutable strict path that encapsulates the current path.</returns>
        </member>
        <member name="M:Gallio.Common.Xml.Paths.IXmlPathStrict.Attribute(System.Int32)">
            <summary>
            Extends the path to a child attribute.
            </summary>
            <param name="index">The index of the child attribute.</param>
            <returns>A new immutable strict path that encapsulates the current path.</returns>
        </member>
        <member name="M:Gallio.Common.Xml.Paths.IXmlPathStrict.Declaration">
            <summary>
            Extends the path to the declaration node.
            </summary>
            <returns>A new immutable strict path that encapsulates the current path.</returns>
        </member>
        <member name="M:Gallio.Common.Xml.Paths.IXmlPathStrict.ToArray">
            <summary>
            Splits the current path into an array containing all the inner child nodes.
            </summary>
            <returns>An array of path nodes.</returns>
        </member>
        <member name="M:Gallio.Common.Xml.Paths.IXmlPathStrict.FindInParent(Gallio.Common.Xml.INode)">
            <summary>
            Returns the node with the current index from the child collection of the specified parent node.
            </summary>
            <param name="parent">The parent node.</param>
            <returns>The node in the collection of the child node with the current index.</returns>
        </member>
        <member name="P:Gallio.Common.Xml.Paths.IXmlPathStrict.Index">
            <summary>
            Gets the index of the node.
            </summary>
        </member>
        <member name="P:Gallio.Common.Xml.Paths.IXmlPathStrict.Parent">
            <summary>
            Gets the parent path node.
            </summary>
            <inheritdoc/>
        </member>
        <member name="M:Gallio.Common.Xml.Paths.XmlPathStrict.#ctor">
            <summary>
            Constructs an empty node that represents the root path.
            </summary>
        </member>
        <member name="M:Gallio.Common.Xml.Paths.XmlPathStrict.#ctor(Gallio.Common.Xml.Paths.IXmlPathStrict,System.Int32)">
            <summary>
            Constructs a node that extends the specified parent node with an additional level of depth.
            </summary>
            <param name="parent">The parent node to encapsulate.</param>
            <param name="index">The index of the inner attribute.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="parent"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Xml.Paths.XmlPathStrict.Element(System.Int32)">
            <inheritdoc/>
        </member>
        <member name="M:Gallio.Common.Xml.Paths.XmlPathStrict.Attribute(System.Int32)">
            <inheritdoc/>
        </member>
        <member name="M:Gallio.Common.Xml.Paths.XmlPathStrict.Declaration">
            <inheritdoc/>
        </member>
        <member name="M:Gallio.Common.Xml.Paths.XmlPathStrict.ToArray">
            <inheritdoc/>
        </member>
        <member name="M:Gallio.Common.Xml.Paths.XmlPathStrict.FindInParent(Gallio.Common.Xml.INode)">
            <inheritdoc/>
        </member>
        <member name="P:Gallio.Common.Xml.Paths.XmlPathStrict.Parent">
            <inheritdoc/>
        </member>
        <member name="P:Gallio.Common.Xml.Paths.XmlPathStrict.IsEmpty">
            <inheritdoc/>
        </member>
        <member name="P:Gallio.Common.Xml.Paths.XmlPathStrict.Index">
            <summary>
            Gets the index of the attribute.
            </summary>
        </member>
        <member name="M:Gallio.Common.Xml.Paths.XmlPathStrictDeclaration.#ctor(Gallio.Common.Xml.Paths.IXmlPathStrict)">
            <summary>
            Constructs a node that extends the specified root node by targetting the declaration node.
            </summary>
            <param name="parent">The parent node to encapsulate.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="parent"/> is null.</exception>
            <exception cref="T:System.ArgumentException">Thrown if <paramref name="parent"/> is not the root.</exception>
        </member>
        <member name="M:Gallio.Common.Xml.Paths.XmlPathStrictDeclaration.ToString">
            <summary>
            Formats the current path.
            </summary>
            <returns>The resulting formatted path.</returns>
        </member>
        <member name="M:Gallio.Common.Xml.Paths.XmlPathStrictDeclaration.Attribute(System.Int32)">
            <inheritdoc/>
        </member>
        <member name="T:Gallio.Common.Xml.Diffing.DiffEngineForOrderedItems`2">
            <summary>
            Diffing engine for collections of ordered XML items.
            </summary>
            <typeparam name="TCollection">The type of the collection.</typeparam>
            <typeparam name="TItem">The type of the items in the collection.</typeparam>
        </member>
        <member name="M:Gallio.Common.Xml.Diffing.DiffEngineForOrderedItems`2.#ctor(`0,`0,Gallio.Common.Xml.Paths.IXmlPathStrict,Gallio.Common.Xml.Paths.IXmlPathStrict,Gallio.Common.Xml.Options,Gallio.Common.Xml.Diffing.OrderedItemType)">
            <summary>
            Constructs the diffing engine.
            </summary>
            <param name="expected">The expected object.</param>
            <param name="actual">The actual object.</param>
            <param name="path">The current path of the parent node.</param>
            <param name="pathExpected">The path of the parent node of the expected collection.</param>
            <param name="options">Equality options.</param>
            <param name="itemType">A type of the diffed items.</param>
        </member>
        <member name="M:Gallio.Common.Xml.Diffing.DiffEngineForOrderedItems`2.Diff">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Common.Xml.Diffing.OrderedItemType">
            <summary>
            The target diffed items.
            </summary>
        </member>
        <member name="T:Gallio.Common.Xml.Diffing.DiffEngineForUnorderedAttributes">
            <summary>
            Diffing engine for collections of unordered attributes.
            </summary>
        </member>
        <member name="M:Gallio.Common.Xml.Diffing.DiffEngineForUnorderedAttributes.#ctor(Gallio.Common.Xml.NodeAttributeCollection,Gallio.Common.Xml.NodeAttributeCollection,Gallio.Common.Xml.Paths.IXmlPathStrict,Gallio.Common.Xml.Paths.IXmlPathStrict,Gallio.Common.Xml.Options)">
            <summary>
            Constructs the diffing engine.
            </summary>
            <param name="expected">The expected object.</param>
            <param name="actual">The actual object.</param>
            <param name="path">The current path of the parent node.</param>
            <param name="pathExpected">The path of the parent node of the parent collection.</param>
            <param name="options">Equality options.</param>
        </member>
        <member name="M:Gallio.Common.Xml.Diffing.DiffEngineForUnorderedAttributes.Diff">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Common.Xml.Diffing.DiffEngineForUnorderedElements">
            <summary>
            Diffing engine for collections of unordered elements.
            </summary>
        </member>
        <member name="M:Gallio.Common.Xml.Diffing.DiffEngineForUnorderedElements.#ctor(Gallio.Common.Xml.NodeCollection,Gallio.Common.Xml.NodeCollection,Gallio.Common.Xml.Paths.IXmlPathStrict,Gallio.Common.Xml.Paths.IXmlPathStrict,Gallio.Common.Xml.Options)">
            <summary>
            Constructs the diffing engine.
            </summary>
            <param name="expected">The expected object.</param>
            <param name="actual">The actual object.</param>
            <param name="path">The current path of the parent node.</param>
            <param name="pathExpected">The path of the parent node of the expected collection.</param>
            <param name="options">Equality options.</param>
        </member>
        <member name="M:Gallio.Common.Xml.Diffing.DiffEngineForUnorderedElements.Diff">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Common.Xml.Paths.XmlPathLooseClosed">
            <summary>
            Abstract node that extends and closes a loose XML path.
            </summary>
        </member>
        <member name="M:Gallio.Common.Xml.Paths.XmlPathLooseClosed.#ctor">
            <summary>
            Constructs an empty node that represents the root path.
            </summary>
        </member>
        <member name="M:Gallio.Common.Xml.Paths.XmlPathLooseClosed.#ctor(Gallio.Common.Xml.Paths.IXmlPathLooseClosed)">
            <summary>
            Constructs a node that extends the specified parent node with an additional level of depth.
            </summary>
            <param name="parent">The parent node to encapsulate.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="parent"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Xml.Paths.XmlPathLooseClosed.ToString(Gallio.Common.Xml.NodeFragment)">
            <inheritdoc/>
        </member>
        <member name="M:Gallio.Common.Xml.Paths.XmlPathLooseClosed.Copy(Gallio.Common.Xml.Paths.IXmlPathLoose)">
            <inheritdoc/>
        </member>
        <member name="M:Gallio.Common.Xml.Paths.XmlPathLooseClosed.Trail">
            <inheritdoc/>
        </member>
        <member name="M:Gallio.Common.Xml.Paths.XmlPathLooseClosed.AsArray">
            <inheritdoc/>
        </member>
        <member name="P:Gallio.Common.Xml.Paths.XmlPathLooseClosed.Parent">
            <summary>
            Gets the parent node of the path.
            </summary>
        </member>
        <member name="P:Gallio.Common.Xml.Paths.XmlPathLooseClosed.IsEmpty">
            <summary>
            Determines whether the current node represents the root path.
            </summary>
        </member>
        <member name="T:Gallio.Common.Xml.Paths.XmlPathLooseClosedAttribute">
            <summary>
            Concrete node representing an XML attribute node, and that closes a loose XML path.
            </summary>
        </member>
        <member name="M:Gallio.Common.Xml.Paths.XmlPathLooseClosedAttribute.#ctor(Gallio.Common.Xml.Paths.IXmlPathLooseClosed,System.String)">
            <summary>
            Constructs a node that extends the specified parent node by targetting an inner attribute by its name.
            </summary>
            <param name="parent">The parent node to encapsulate.</param>
            <param name="name">The name of the inner attribute.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="parent"/> or <paramref name="name"/> is null.</exception>
            <exception cref="T:System.ArgumentException">Thrown if <paramref name="name"/> is empty.</exception>
        </member>
        <member name="M:Gallio.Common.Xml.Paths.XmlPathLooseClosedAttribute.ToString">
            <summary>
            Formats the current path.
            </summary>
            <returns>The resulting formatted path.</returns>
        </member>
        <member name="M:Gallio.Common.Xml.Paths.XmlPathLooseClosedAttribute.ToString(Gallio.Common.Xml.NodeFragment)">
            <inheritdoc/>
        </member>
        <member name="M:Gallio.Common.Xml.Paths.XmlPathLooseClosedAttribute.Copy(Gallio.Common.Xml.Paths.IXmlPathLoose)">
            <inheritdoc/>
        </member>
        <member name="P:Gallio.Common.Xml.Paths.XmlPathLooseClosedAttribute.Name">
            <summary>
            Gets the name of the attribute.
            </summary>
        </member>
        <member name="T:Gallio.Common.Xml.Paths.XmlPathLooseOpen">
            <summary>
            Abstract node that extends a loose XML path, and let it opened for further extensions.
            </summary>
        </member>
        <member name="M:Gallio.Common.Xml.Paths.XmlPathLooseOpen.#ctor">
            <inheritdoc/>
        </member>
        <member name="M:Gallio.Common.Xml.Paths.XmlPathLooseOpen.#ctor(Gallio.Common.Xml.Paths.IXmlPathLooseOpen)">
            <inheritdoc/>
        </member>
        <member name="M:Gallio.Common.Xml.Paths.XmlPathLooseOpen.Element(System.String)">
            <inheritdoc/>
        </member>
        <member name="M:Gallio.Common.Xml.Paths.XmlPathLooseOpen.Attribute(System.String)">
            <inheritdoc/>
        </member>
        <member name="T:Gallio.Common.Xml.Paths.XmlPathLooseOpenElement">
            <summary>
            Concrete node representing an XML element markup in a loose path, and which is opened for further extensions.
            </summary>
        </member>
        <member name="F:Gallio.Common.Xml.Paths.XmlPathLooseOpenElement.Root">
            <summary>
            Gets the instance representing an empty root path.
            </summary>
        </member>
        <member name="M:Gallio.Common.Xml.Paths.XmlPathLooseOpenElement.#ctor(Gallio.Common.Xml.Paths.IXmlPathLooseOpen,System.String)">
            <summary>
            Constructs a node that extends the specified parent node by targetting an child element by its name.
            </summary>
            <param name="parent">The parent node to encapsulate.</param>
            <param name="name">The name of the inner element.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="parent"/> or <paramref name="name"/> is null.</exception>
            <exception cref="T:System.ArgumentException">Thrown if <paramref name="name"/> is empty.</exception>
        </member>
        <member name="M:Gallio.Common.Xml.Paths.XmlPathLooseOpenElement.Element(System.String)">
            <inheritdoc/>
        </member>
        <member name="M:Gallio.Common.Xml.Paths.XmlPathLooseOpenElement.Attribute(System.String)">
            <inheritdoc/>
        </member>
        <member name="M:Gallio.Common.Xml.Paths.XmlPathLooseOpenElement.ToString">
            <summary>
            Formats the current path.
            </summary>
            <returns>The resulting formatted path.</returns>
        </member>
        <member name="M:Gallio.Common.Xml.Paths.XmlPathLooseOpenElement.ToString(Gallio.Common.Xml.NodeFragment)">
            <inheritdoc/>
        </member>
        <member name="M:Gallio.Common.Xml.Paths.XmlPathLooseOpenElement.Copy(Gallio.Common.Xml.Paths.IXmlPathLoose)">
            <inheritdoc/>
        </member>
        <member name="P:Gallio.Common.Xml.Paths.XmlPathLooseOpenElement.Name">
            <summary>
            Gets the name of the element.
            </summary>
        </member>
        <member name="T:Gallio.Common.Xml.Paths.XmlPathStrictAttribute">
            <summary>
            Concrete node representing an XML attribute node, and that closes a strict XML path.
            </summary>
        </member>
        <member name="M:Gallio.Common.Xml.Paths.XmlPathStrictAttribute.#ctor(Gallio.Common.Xml.Paths.IXmlPathStrict,System.Int32)">
            <summary>
            Constructs a node that extends the specified parent node by targetting an inner attribute by its index.
            </summary>
            <param name="parent">The parent node to encapsulate.</param>
            <param name="index">The index of the inner attribute.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="parent"/> is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="index"/> is negative.</exception>
        </member>
        <member name="M:Gallio.Common.Xml.Paths.XmlPathStrictAttribute.ToString">
            <summary>
            Formats the current path.
            </summary>
            <returns>The resulting formatted path.</returns>
        </member>
        <member name="M:Gallio.Common.Xml.Paths.XmlPathStrictAttribute.FindInParent(Gallio.Common.Xml.INode)">
            <inheritdoc/>
        </member>
        <member name="T:Gallio.Common.Xml.Paths.XmlPathStrictElement">
            <summary>
            Concrete node representing an XML element node in a strict path, and which is opened for further extensions.
            </summary>
        </member>
        <member name="F:Gallio.Common.Xml.Paths.XmlPathStrictElement.Root">
            <summary>
            Gets the instance representing an empty root path.
            </summary>
        </member>
        <member name="M:Gallio.Common.Xml.Paths.XmlPathStrictElement.#ctor(Gallio.Common.Xml.Paths.IXmlPathStrict,System.Int32)">
            <summary>
            Constructs a node that extends the specified parent node by targetting an child element by its index.
            </summary>
            <param name="parent">The parent node to encapsulate.</param>
            <param name="index">The index of the child element.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="parent"/> is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="index"/> is negative.</exception>
        </member>
        <member name="M:Gallio.Common.Xml.Paths.XmlPathStrictElement.Element(System.Int32)">
            <inheritdoc/>
        </member>
        <member name="M:Gallio.Common.Xml.Paths.XmlPathStrictElement.Attribute(System.Int32)">
            <inheritdoc/>
        </member>
        <member name="M:Gallio.Common.Xml.Paths.XmlPathStrictElement.Declaration">
            <inheritdoc/>
        </member>
        <member name="M:Gallio.Common.Xml.Paths.XmlPathStrictElement.ToString">
            <summary>
            Formats the current path.
            </summary>
            <returns>The resulting formatted path.</returns>
        </member>
        <member name="T:Gallio.Common.Xml.NodeCollection">
            <summary>
            Immutable collection of XML nodes.
            </summary>
        </member>
        <member name="F:Gallio.Common.Xml.NodeCollection.Empty">
            <summary>
            An empty collection singleton instance.
            </summary>
        </member>
        <member name="M:Gallio.Common.Xml.NodeCollection.#ctor(System.Collections.Generic.IEnumerable{Gallio.Common.Xml.INode})">
            <summary>
            Constructs a collection of XML nodes from the specified enumeration.
            </summary>
            <param name="nodes">An enumeration of nodes.</param>
        </member>
        <member name="M:Gallio.Common.Xml.NodeCollection.Diff(Gallio.Common.Xml.NodeCollection,Gallio.Common.Xml.Paths.IXmlPathStrict,Gallio.Common.Xml.Paths.IXmlPathStrict,Gallio.Common.Xml.Options)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Common.Xml.NodeComment">
            <summary>
            Represents a comment tag in an XML fragment.
            </summary>
        </member>
        <member name="M:Gallio.Common.Xml.NodeComment.#ctor(System.Int32,System.Int32,System.String)">
            <summary>
            Constructs an XML comment tag.
            </summary>
            <param name="index">The index of the node.</param>
            <param name="count">The total number of nodes at the same level.</param>
            <param name="text">The literal content of the comment tag.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="text"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Xml.NodeComment.Diff(Gallio.Common.Xml.INode,Gallio.Common.Xml.Paths.IXmlPathStrict,Gallio.Common.Xml.Paths.IXmlPathStrict,Gallio.Common.Xml.Options)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Xml.NodeComment.Diff(Gallio.Common.Xml.NodeComment,Gallio.Common.Xml.Paths.IXmlPathStrict,Gallio.Common.Xml.Paths.IXmlPathStrict,Gallio.Common.Xml.Options)">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Xml.NodeComment.Text">
            <summary>
            Gets the textual content of the comment tag.
            </summary>
        </member>
        <member name="T:Gallio.Common.Xml.NodeContent">
            <summary>
            Represents a textual content inside an element
            </summary>
        </member>
        <member name="M:Gallio.Common.Xml.NodeContent.#ctor(System.Int32,System.Int32,System.String)">
            <summary>
            Constructs textual content inside an element.
            </summary>
            <param name="index">The index of the node.</param>
            <param name="count">The total number of nodes at the same level.</param>
            <param name="text">The literal text content.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="text"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Xml.NodeContent.Diff(Gallio.Common.Xml.INode,Gallio.Common.Xml.Paths.IXmlPathStrict,Gallio.Common.Xml.Paths.IXmlPathStrict,Gallio.Common.Xml.Options)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Xml.NodeContent.Diff(Gallio.Common.Xml.NodeContent,Gallio.Common.Xml.Paths.IXmlPathStrict,Gallio.Common.Xml.Paths.IXmlPathStrict,Gallio.Common.Xml.Options)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Xml.NodeContent.AreValuesEqual(System.String,Gallio.Common.Xml.Options)">
            <summary>
            Determines whether the text value is equal to the specified text value, 
            by respecting the specified equality options.
            </summary>
            <param name="otherText">The text value to compare.</param>
            <param name="options">Equality options.</param>
            <returns>True if the values are equal; false otherwise.</returns>
        </member>
        <member name="P:Gallio.Common.Xml.NodeContent.Text">
            <summary>
            Gets the textual content of the comment tag.
            </summary>
        </member>
        <member name="T:Gallio.Common.Xml.NodeElement">
            <summary>
            Represents an element in an XML fragment.
            </summary>
        </member>
        <member name="M:Gallio.Common.Xml.NodeElement.#ctor(System.Int32,System.Int32,System.String,System.Collections.Generic.IEnumerable{Gallio.Common.Xml.NodeAttribute},System.Collections.Generic.IEnumerable{Gallio.Common.Xml.INode})">
            <summary>
            Constructs an XML element.
            </summary>
            <param name="index">The index of the node.</param>
            <param name="count">The total number of nodes at the same level.</param>
            <param name="name">The name of the element.</param>
            <param name="attributes">The attributes of the element.</param>
            <param name="children">The child nodes of the element.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="name"/>, <paramref name="attributes"/>, or <paramref name="children"/> is null.</exception>
            <exception cref="T:System.ArgumentException">Thrown if <paramref name="name"/> is empty.</exception>
        </member>
        <member name="M:Gallio.Common.Xml.NodeElement.Diff(Gallio.Common.Xml.INode,Gallio.Common.Xml.Paths.IXmlPathStrict,Gallio.Common.Xml.Paths.IXmlPathStrict,Gallio.Common.Xml.Options)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Xml.NodeElement.Diff(Gallio.Common.Xml.NodeElement,Gallio.Common.Xml.Paths.IXmlPathStrict,Gallio.Common.Xml.Paths.IXmlPathStrict,Gallio.Common.Xml.Options)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Xml.NodeElement.AreNamesEqual(System.String,Gallio.Common.Xml.Options)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Xml.NodeElement.CountAt(Gallio.Common.Xml.Paths.IXmlPathLoose,System.String,Gallio.Common.Xml.Options)">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Xml.NodeElement.Name">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Xml.NodeElement.Attributes">
            <summary>
            Gets the attributes of the element.
            </summary>
        </member>
        <member name="T:Gallio.Common.Xml.NamespaceDoc">
            <summary>
            The Gallio.Common.Xml2 namespace contains types for manipulating Xml.
            </summary>
        </member>
        <member name="T:Gallio.Common.Xml.Options">
            <summary>
            Options for the XML-related equality assertions.
            </summary>
        </member>
        <member name="F:Gallio.Common.Xml.Options.None">
            <summary>
            No equality options (the strictest).
            </summary>
        </member>
        <member name="F:Gallio.Common.Xml.Options.IgnoreElementsNameCase">
            <summary>
            Ignores the case of the name of the XML elements.
            </summary>
            <example><![CDATA[ 
            "<ELEMENT/>" is equal to "<element/>".
            ]]></example>
        </member>
        <member name="F:Gallio.Common.Xml.Options.IgnoreElementsValueCase">
            <summary>
            Ignores the case of the value of the XML elements.
            </summary>
            <example><![CDATA[ 
            "<element>VALUE</element>" is equal to "<element>value</element>".
            ]]></example>
        </member>
        <member name="F:Gallio.Common.Xml.Options.IgnoreElementsOrder">
            <summary>
            Ignores the order of XML elements with the same parent.
            </summary>
            <example><![CDATA[ 
            "<parent><child1/><child2/></parent>" is equal to "<parent><child2/><child1/></parent>".
            ]]></example>
        </member>
        <member name="F:Gallio.Common.Xml.Options.IgnoreAttributesNameCase">
            <summary>
            Ignores the case of the name of the XML attributes.
            </summary>
            <example><![CDATA[ 
            "<element ATTRIBUTE='value'/>" is equal to "<element attribute='value'/>".
            ]]></example>
        </member>
        <member name="F:Gallio.Common.Xml.Options.IgnoreAttributesValueCase">
            <summary>
            Ignores the case of the value of the XML attributes.
            </summary>
            <example><![CDATA[ 
            "<element attribute='VALUE'/>" is equal to "<element attribute='value'/>".
            ]]></example>
        </member>
        <member name="F:Gallio.Common.Xml.Options.IgnoreAttributesOrder">
            <summary>
            Ignores the order of the attributes defined in the same element.
            </summary>
            <example><![CDATA[ 
            "<element attr1='x' attr2='y'/>" is equal to "<element attr2='y' attr1='x'/>".
            ]]></example>
        </member>
        <member name="F:Gallio.Common.Xml.Options.IgnoreComments">
            <summary>
            Ignores the comment tags.
            </summary>
            <example><![CDATA[ 
            "<!-- This is a comment... -->".
            ]]></example>
        </member>
        <member name="F:Gallio.Common.Xml.Options.Enclose">
            <summary>
            Encloses the XML fragments within a "root" element.
            </summary>
        </member>
        <member name="T:Gallio.Common.Xml.Parser">
            <summary>
            A parsing service that extracts a composite tree from an XML fragment.
            </summary>
        </member>
        <member name="M:Gallio.Common.Xml.Parser.Run(System.String,Gallio.Common.Xml.Options)">
            <summary>
            Parses the specified XML fragment.
            </summary>
            <param name="xml">The XML fragment to parse.</param>
            <param name="options">Parsing options.</param>
            <returns>The resulting document representing the parsed XML fragment.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="xml"/> is null.</exception>
        </member>
        <member name="T:Gallio.Common.Xml.Paths.XmlPathRoot">
            <summary>
            Entry-point class that serves as builder for an XML path.
            </summary>
        </member>
        <member name="F:Gallio.Common.Xml.Paths.XmlPathRoot.Empty">
            <summary>
            Empty path instance.
            </summary>
        </member>
        <member name="M:Gallio.Common.Xml.Paths.XmlPathRoot.Element(System.String)">
            <summary>
            Starts a new loose XML path by specifying the name of its root element.
            </summary>
            <param name="name">The name of the root element.</param>
            <returns>A new open loose XML path.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="name"/> is null.</exception>
            <exception cref="T:System.ArgumentException">Thrown if <paramref name="name"/> is empty.</exception>
        </member>
        <member name="M:Gallio.Common.Xml.Paths.XmlPathRoot.Parse(System.String)">
            <summary>
            Parses the specified textual representation of a path.
            </summary>
            <remarks>
            <para>
            The specified path should start with a slash character ('/').
            Elements are separated by a slash, and attributes denoted by a colon (':').
            </para>
            <example><![CDATA[
            "/Root/Parent/Child:someAttribute"
            ]]></example>
            </remarks>
            <param name="path">The textual representation of a path.</param>
            <returns>The resulting path object.</returns>
        </member>
        <member name="F:Gallio.Common.Xml.Paths.XmlPathRoot.ElementSeparator">
            <summary>
            Separator for elements.
            </summary>
        </member>
        <member name="F:Gallio.Common.Xml.Paths.XmlPathRoot.AttributeSeparator">
            <summary>
            Separator for elements.
            </summary>
        </member>
        <member name="T:Gallio.Common.Xml.Paths.XmlPathRoot.Strict">
            <summary>
            Entry-point for strict XML paths.
            </summary>
        </member>
        <member name="F:Gallio.Common.Xml.Paths.XmlPathRoot.Strict.Empty">
            <summary>
            Empty path instance.
            </summary>
        </member>
        <member name="M:Gallio.Common.Xml.Paths.XmlPathRoot.Strict.Element(System.Int32)">
            <summary>
            Starts a new strict XML path by specifying the index of its root element.
            </summary>
            <param name="index">The index of the root element.</param>
            <returns>A new open loose XML path.</returns>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="index"/> is negative.</exception>
        </member>
        <member name="M:Gallio.Common.Xml.Paths.XmlPathRoot.Strict.Parse(System.String)">
            <summary>
            Parses the specified textual representation of a path.
            </summary>
            <remarks>
            <para>
            The specified path should start with a slash character ('/').
            Elements are separated by a slash, and attributes denoted by a colon (':').
            </para>
            <example><![CDATA[
            "/Root/Parent/Child:someAttribute"
            ]]></example>
            </remarks>
            <param name="path">The textual representation of a path.</param>
            <returns>The resulting path object.</returns>
        </member>
        <member name="T:Gallio.Framework.Assertions.AssertionFailureExplanation">
            <summary>
            A delegate for the <see cref="M:Gallio.Framework.Assertions.AssertionHelper.Explain(Gallio.Common.Action,Gallio.Framework.Assertions.AssertionFailureExplanation)"/> decorator method which 
            combines the specified inner failures into a single outer failure with a common explanation.
            </summary>
            <param name="innerFailures">The inner failures to combine together.</param>
            <returns>The composite assertion failure.</returns>
        </member>
        <member name="T:Gallio.Framework.Assertions.NamespaceDoc">
            <summary>
            The Gallio.Framework.Assertions namespace provides a framework for reporting assertion failures.
            </summary>
        </member>
        <member name="T:Gallio.Framework.Capture">
            <summary>
            Captures screenshot images and videos.
            </summary>
            <remarks>
            <para>
            These functions are intended to provide a simple interface for capturing,
            captioning, and embedding images and video.  If you desire more control over the manner
            in which the capture occurs, you may prefer to use the <see cref="T:Gallio.Common.Media.ScreenGrabber"/>,
            <see cref="T:Gallio.Common.Media.ScreenRecorder"/>, and <see cref="T:Gallio.Common.Media.Overlay"/> classes directly.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Framework.Capture.GetScreenSize">
            <summary>
            Gets the size of the screen.
            </summary>
            <returns>The screen size.</returns>
        </member>
        <member name="M:Gallio.Framework.Capture.CanCaptureScreenshot">
            <summary>
            Returns true if screenshots can be captured.
            </summary>
            <remarks>
            <para>
            This method may return false if the application is running as a service which has
            not been granted the right to interact with the desktop.
            </para>
            </remarks>
            <returns>True if the screen can be captured.</returns>
        </member>
        <member name="M:Gallio.Framework.Capture.Screenshot">
            <summary>
            Captures an image of the entire desktop.
            </summary>
            <returns>The screenshot.</returns>
            <exception cref="T:Gallio.Common.Media.ScreenshotNotAvailableException">Thrown if a screenshot cannot be captured at this time.</exception>
        </member>
        <member name="M:Gallio.Framework.Capture.Screenshot(Gallio.Common.Media.CaptureParameters)">
            <summary>
            Captures an image of the entire desktop.
            </summary>
            <param name="parameters">The capture parameters.</param>
            <returns>The screenshot.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="parameters"/> is null.</exception>
            <exception cref="T:Gallio.Common.Media.ScreenshotNotAvailableException">Thrown if a screenshot cannot be captured at this time.</exception>
        </member>
        <member name="M:Gallio.Framework.Capture.StartRecording">
            <summary>
            Starts recording a screen capture video of the entire desktop.
            </summary>
            <remarks>
            <para>
            Recording a screen capture video can be very CPU and space intensive particularly
            when running tests on a single-core CPU.  We recommend calling
            <see cref="M:Gallio.Framework.Capture.StartRecording(Gallio.Common.Media.CaptureParameters,System.Double)"/> with
            a <see cref="P:Gallio.Common.Media.CaptureParameters.Zoom"/> factor of 0.25 or less and a frame rate
            of no more than 5 to 10 frames per second.
            </para>
            </remarks>
            <returns>The recorder.</returns>
            <exception cref="T:Gallio.Common.Media.ScreenshotNotAvailableException">Thrown if a screenshot cannot be captured at this time.</exception>
        </member>
        <member name="M:Gallio.Framework.Capture.StartRecording(Gallio.Common.Media.CaptureParameters,System.Double)">
            <summary>
            Starts recording a screen capture video of the entire desktop.
            </summary>
            <remarks>
            <para>
            Recording a screen capture video can be very CPU and space intensive particularly
            when running tests on a single-core CPU.  We recommend calling
            <see cref="M:Gallio.Framework.Capture.StartRecording(Gallio.Common.Media.CaptureParameters,System.Double)"/> with
            a <see cref="P:Gallio.Common.Media.CaptureParameters.Zoom"/> factor of 0.25 or less and a frame rate
            of no more than 5 to 10 frames per second.
            </para>
            </remarks>
            <param name="parameters">The capture parameters.</param>
            <param name="framesPerSecond">The number of frames per second to capture.</param>
            <returns>The recorder.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="parameters"/> is null.</exception>
            <exception cref="T:Gallio.Common.Media.ScreenshotNotAvailableException">Thrown if a screenshot cannot be captured at this time.</exception>
        </member>
        <member name="M:Gallio.Framework.Capture.AutoEmbedScreenshot(Gallio.Framework.TriggerEvent,System.String)">
            <summary>
            Automatically embeds a screenshot when a trigger event occurs.
            </summary>
            <remarks>
            <para>
            If screenshots cannot be captured, the method will embed a warning message to that effect.
            </para>
            </remarks>
            <param name="triggerEvent">The trigger event.</param>
            <param name="attachmentName">The name to give the image attachment, or null to assign one automatically.</param>
            <seealso cref="M:Gallio.Framework.TestContext.AutoExecute(Gallio.Framework.TriggerEvent,Gallio.Common.Action)"/>
        </member>
        <member name="M:Gallio.Framework.Capture.AutoEmbedScreenshot(Gallio.Framework.TriggerEvent,System.String,Gallio.Common.Media.CaptureParameters)">
            <summary>
            Automatically embeds a screenshot when a trigger event occurs.
            </summary>
            <remarks>
            <para>
            If screenshots cannot be captured, the method will embed a warning message to that effect.
            </para>
            </remarks>
            <param name="triggerEvent">The trigger event.</param>
            <param name="attachmentName">The name to give to the image attachment, or null to assign one automatically.</param>
            <param name="parameters">The capture parameters.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="parameters"/> is null.</exception>
            <seealso cref="M:Gallio.Framework.TestContext.AutoExecute(Gallio.Framework.TriggerEvent,Gallio.Common.Action)"/>
        </member>
        <member name="M:Gallio.Framework.Capture.AutoEmbedRecording(Gallio.Framework.TriggerEvent,System.String)">
            <summary>
            Automatically embeds a video of the test run from this point forward when a trigger event occurs.
            </summary>
            <remarks>
            <para>
            Recording a screen capture video can be very CPU and space intensive particularly
            when running tests on a single-core CPU.  We recommend calling
            <see cref="M:Gallio.Framework.Capture.AutoEmbedRecording(Gallio.Framework.TriggerEvent,System.String,Gallio.Common.Media.CaptureParameters,System.Double)"/> with
            a <see cref="P:Gallio.Common.Media.CaptureParameters.Zoom"/> factor of 0.25 or less and a frame rate
            of no more than 5 to 10 frames per second.
            </para>
            <para>
            If screenshots cannot be captured, the method will embed a warning message to that effect.
            </para>
            </remarks>
            <param name="triggerEvent">The trigger event.</param>
            <param name="attachmentName">The name to give the video attachment, or null to assign one automatically.</param>
            <seealso cref="M:Gallio.Framework.TestContext.AutoExecute(Gallio.Framework.TriggerEvent,Gallio.Common.Action)"/>
        </member>
        <member name="M:Gallio.Framework.Capture.AutoEmbedRecording(Gallio.Framework.TriggerEvent,System.String,Gallio.Common.Media.CaptureParameters,System.Double)">
            <summary>
            Automatically embeds a video of the test run from this point forward when a trigger event occurs.
            </summary>
            <remarks>
            <para>
            Recording a screen capture video can be very CPU and space intensive particularly
            when running tests on a single-core CPU.  We recommend calling
            <see cref="M:Gallio.Framework.Capture.AutoEmbedRecording(Gallio.Framework.TriggerEvent,System.String,Gallio.Common.Media.CaptureParameters,System.Double)"/> with
            a <see cref="P:Gallio.Common.Media.CaptureParameters.Zoom"/> factor of 0.25 or less and a frame rate
            of no more than 5 to 10 frames per second.
            </para>
            <para>
            If screenshots cannot be captured, the method will embed a warning message to that effect.
            </para>
            </remarks>
            <param name="triggerEvent">The trigger event.</param>
            <param name="attachmentName">The name to give the video attachment, or null to assign one automatically.</param>
            <param name="parameters">The capture parameters.</param>
            <param name="framesPerSecond">The number of frames per second to capture.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="parameters"/> is null.</exception>
            <seealso cref="M:Gallio.Framework.TestContext.AutoExecute(Gallio.Framework.TriggerEvent,Gallio.Common.Action)"/>
        </member>
        <member name="M:Gallio.Framework.Capture.GetOverlayManager">
            <summary>
            Gets the overlay manager for the current test context.
            </summary>
            <returns>The overlay manager.</returns>
        </member>
        <member name="M:Gallio.Framework.Capture.GetOverlayManager(Gallio.Framework.TestContext)">
            <summary>
            Gets the overlay manager for the specified test context.
            </summary>
            <param name="context">The test context.</param>
            <returns>The overlay manager.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="context"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.Capture.AddOverlay(Gallio.Common.Media.Overlay)">
            <summary>
            Adds an overlay to display over screenshot images and videos.
            </summary>
            <param name="overlay">The overlay to add.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="overlay"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.Capture.SetCaption(System.String)">
            <summary>
            Sets a caption to display over screenshots images and videos. 
            </summary>
            <param name="text">The caption text, an empty string to remove it.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="text"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.Capture.SetCaptionFontSize(System.Int32)">
            <summary>
            Sets the font size of the caption to display over screenshots images and videos. 
            </summary>
            <param name="fontSize">The caption font size.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="fontSize"/> is less than 1.</exception>
        </member>
        <member name="M:Gallio.Framework.Capture.SetCaptionAlignment(Gallio.Common.Media.HorizontalAlignment,Gallio.Common.Media.VerticalAlignment)">
            <summary>
            Sets the alignment of the caption to display over screenshots images and videos. 
            </summary>
            <param name="horizontalAlignment">The horizontal alignment.</param>
            <param name="verticalAlignment">The vertical alignment.</param>
        </member>
        <member name="M:Gallio.Framework.Capture.GetCaptionOverlay">
            <summary>
            Gets the caption overlay to display over of screenshots images and videos.
            </summary>
            <returns>The caption overlay.</returns>
        </member>
        <member name="T:Gallio.Framework.ComparisonSemantics">
            <summary>
            Describes the semantics of how objects should be compared.
            </summary>
            <remarks>
            <para>
            This class encapsulates a default set of rules for comparing objects.  These rules may be
            used as the foundation of a suite of standard assertion functions for comparing identity,
            equality and relations.
            </para>
            <para>
            The comparison engine has extension points available:
            <list type="bullet">Extend the object comparison by registring custom comparers through <see cref="T:Gallio.Framework.CustomComparers"/>.</list>
            <list type="bullet">Extend the object eqaulity by registring custom equality comparers through <see cref="T:Gallio.Framework.CustomEqualityComparers"/>.</list>
            </para>
            <para>
            Custom comparers defined through <see cref="T:Gallio.Framework.CustomComparers"/> or <see cref="T:Gallio.Framework.CustomEqualityComparers"/> 
            have always a higher priority than any built-in comparer, including inner type comparers such as 
            <see cref="T:System.IEquatable`1"/> or <see cref="T:System.IComparable`1"/>.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Framework.ComparisonSemantics.Default">
            <summary>
            Gets the default instance.
            </summary>
        </member>
        <member name="T:Gallio.Framework.Data.Generation.RandomRangeGenerator`1">
            <summary>
            Generic abstract generator of random values within a given range.
            </summary>
            <typeparam name="T">The type of the value to generate.</typeparam>
        </member>
        <member name="T:Gallio.Framework.Data.Generation.RandomGenerator`1">
            <summary>
            Generic abstract generator of random values within a given range.
            </summary>
            <typeparam name="T">The type of the value to generate.</typeparam>
        </member>
        <member name="T:Gallio.Framework.Data.Generation.Generator`1">
            <summary>
            Generic abstract generator of values.
            </summary>
            <typeparam name="T">The type of the values returned by the generator.</typeparam>
        </member>
        <member name="T:Gallio.Framework.Data.Generation.IGenerator">
            <summary>
            Generator of values.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Data.Generation.IGenerator.Run">
            <summary>
            Generates the sequence of values.
            </summary>
            <returns>An enumeration of generated values.</returns>
        </member>
        <member name="M:Gallio.Framework.Data.Generation.Generator`1.DoFilter(`0)">
            <summary>
            Filters the specified value.
            </summary>
            <param name="value">The value to be filtered.</param>
            <returns>True if the value is accepted; false otherwise.</returns>
        </member>
        <member name="M:Gallio.Framework.Data.Generation.Generator`1.#ctor">
            <summary>
            Default constructor.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Data.Generation.Generator`1.Run">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Data.Generation.Generator`1.CheckProperty(System.Double,System.String)">
            <summary>
            Checks for the specified value to be not one of the following:
            <list type="bullet">
            <item><see cref="F:System.Double.MinValue"/></item>
            <item><see cref="F:System.Double.MaxValue"/></item>
            <item><see cref="F:System.Double.PositiveInfinity"/></item>
            <item><see cref="F:System.Double.NegativeInfinity"/></item>
            <item><see cref="F:System.Double.NaN"/></item>
            </list>
            </summary>
            <param name="propertyValue">The <see cref="T:System.Double"/> property value to be checked.</param>
            <param name="propertyName">A friendly name for the property.</param>
            <exception cref="T:Gallio.Framework.Data.Generation.GenerationException">The specified property value is invalid.</exception>
        </member>
        <member name="M:Gallio.Framework.Data.Generation.Generator`1.CheckProperty(System.Decimal,System.String)">
            <summary>
            Checks for the specified value to be not one of the following:
            <list type="bullet">
            <item><see cref="F:System.Decimal.MinValue"/></item>
            <item><see cref="F:System.Decimal.MaxValue"/></item>
            </list>
            </summary>
            <param name="propertyValue">The <see cref="T:System.Decimal"/> property value to be checked.</param>
            <param name="propertyName">A friendly name for the property.</param>
            <exception cref="T:Gallio.Framework.Data.Generation.GenerationException">The specified property value is invalid.</exception>
        </member>
        <member name="M:Gallio.Framework.Data.Generation.Generator`1.CheckProperty(System.Int32,System.String)">
            <summary>
            Checks for the specified value to be not one of the following:
            <list type="bullet">
            <item><see cref="F:System.Int32.MinValue"/></item>
            <item><see cref="F:System.Int32.MaxValue"/></item>
            </list>
            </summary>
            <param name="propertyValue">The <see cref="T:System.Int32"/> property value to be checked.</param>
            <param name="propertyName">A friendly name for the property.</param>
            <exception cref="T:Gallio.Framework.Data.Generation.GenerationException">The specified property value is invalid.</exception>
        </member>
        <member name="P:Gallio.Framework.Data.Generation.Generator`1.Filter">
            <summary>
            Gets or sets the filter function that can be used
            to reject or accept generated values.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Data.Generation.RandomGenerator`1.#ctor">
            <summary>
            Default constructor.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Data.Generation.RandomGenerator`1.Verify">
            <summary>
            Verifies the properties of the generator.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Data.Generation.RandomGenerator`1.Run">
            <inheritdoc/>
        </member>
        <member name="M:Gallio.Framework.Data.Generation.RandomGenerator`1.GetSequence">
            <summary>
            Returns the sequence of random values.
            </summary>
            <returns>The sequence of values.</returns>
        </member>
        <member name="P:Gallio.Framework.Data.Generation.RandomGenerator`1.InnerGenerator">
            <summary>
            A general purpose pseudo-random number generator.
            </summary>
        </member>
        <member name="P:Gallio.Framework.Data.Generation.RandomGenerator`1.Seed">
            <summary>
            Gets or sets the seed value.
            </summary>
        </member>
        <member name="P:Gallio.Framework.Data.Generation.RandomGenerator`1.Count">
            <summary>
            Gets the length of the sequence of values
            created by the generator.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Data.Generation.RandomRangeGenerator`1.#ctor">
            <summary>
            Default constructor.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Data.Generation.RandomRangeGenerator`1.Verify">
            <inheritdoc/>
        </member>
        <member name="P:Gallio.Framework.Data.Generation.RandomRangeGenerator`1.Minimum">
            <summary>
            Gets the lower bound of the range.
            </summary>
        </member>
        <member name="P:Gallio.Framework.Data.Generation.RandomRangeGenerator`1.Maximum">
            <summary>
            Gets the upper bound of the range.
            </summary>
        </member>
        <member name="T:Gallio.Framework.Data.Generation.SequentialInt32Generator">
            <summary>
            Generator of sequential <see cref="T:System.Int32"/> values.
            </summary>
        </member>
        <member name="T:Gallio.Framework.Data.Generation.SequentialGenerator`1">
            <summary>
            Generic abstract generator of sequential numeric values.
            </summary>
            <typeparam name="T">The type of the value to generate.</typeparam>
        </member>
        <member name="M:Gallio.Framework.Data.Generation.SequentialGenerator`1.#ctor">
            <summary>
            Default constructor.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Data.Generation.SequentialGenerator`1.Run">
            <inheritdoc/>
        </member>
        <member name="M:Gallio.Framework.Data.Generation.SequentialGenerator`1.GetStartStepCountSequence">
            <summary>
            Returns the linear sequence constructed by using the <see cref="P:Gallio.Framework.Data.Generation.SequentialGenerator`1.Start"/>, <see cref="P:Gallio.Framework.Data.Generation.SequentialGenerator`1.Step"/>, and <see cref="P:Gallio.Framework.Data.Generation.SequentialGenerator`1.Count"/> properties.
            </summary>
            <returns>The sequence of values.</returns>
        </member>
        <member name="M:Gallio.Framework.Data.Generation.SequentialGenerator`1.GetStartEndCountSequence">
            <summary>
            Returns the linear sequence constructed by using the <see cref="P:Gallio.Framework.Data.Generation.SequentialGenerator`1.Start"/>, <see cref="P:Gallio.Framework.Data.Generation.SequentialGenerator`1.End"/>, and <see cref="P:Gallio.Framework.Data.Generation.SequentialGenerator`1.Count"/> properties.
            </summary>
            <returns>The sequence of values.</returns>
        </member>
        <member name="M:Gallio.Framework.Data.Generation.SequentialGenerator`1.GetStartEndStepSequence">
            <summary>
            Returns the linear sequence constructed by using the <see cref="P:Gallio.Framework.Data.Generation.SequentialGenerator`1.Start"/>, <see cref="P:Gallio.Framework.Data.Generation.SequentialGenerator`1.End"/>, and <see cref="P:Gallio.Framework.Data.Generation.SequentialGenerator`1.Step"/> properties.
            </summary>
            <returns>The sequence of values.</returns>
        </member>
        <member name="P:Gallio.Framework.Data.Generation.SequentialGenerator`1.Start">
            <summary>
            Gets or sets the starting point of the sequence.
            </summary>
        </member>
        <member name="P:Gallio.Framework.Data.Generation.SequentialGenerator`1.End">
            <summary>
            Gets or sets the ending point of the sequence.
            </summary>
        </member>
        <member name="P:Gallio.Framework.Data.Generation.SequentialGenerator`1.Step">
            <summary>
            Gets or sets the increment between each value of the sequence.
            </summary>
        </member>
        <member name="P:Gallio.Framework.Data.Generation.SequentialGenerator`1.Count">
            <summary>
            Gets or sets the length of the sequence of values
            created by the generator.
            </summary>
        </member>
        <member name="P:Gallio.Framework.Data.Generation.SequentialGenerator`1.DefaultStep">
            <summary>
            Gets the default step.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Data.Generation.SequentialInt32Generator.#ctor">
            <summary>
            Default constructor.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Data.Generation.SequentialInt32Generator.GetStartStepCountSequence">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Data.Generation.SequentialInt32Generator.GetStartEndCountSequence">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Data.Generation.SequentialInt32Generator.GetStartEndStepSequence">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Framework.Data.Generation.SequentialInt32Generator.DefaultStep">
            <summary>
            Gets the default step.
            </summary>
        </member>
        <member name="T:Gallio.Framework.Data.Generation.SequentialDoubleGenerator">
            <summary>
            Generator of sequential <see cref="T:System.Double"/> values.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Data.Generation.SequentialDoubleGenerator.#ctor">
            <summary>
            Default constructor.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Data.Generation.SequentialDoubleGenerator.GetStartStepCountSequence">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Data.Generation.SequentialDoubleGenerator.GetStartEndCountSequence">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Data.Generation.SequentialDoubleGenerator.GetStartEndStepSequence">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Framework.Data.Generation.SequentialDoubleGenerator.DefaultStep">
            <summary>
            Gets the default step.
            </summary>
        </member>
        <member name="T:Gallio.Framework.Data.Generation.RandomInt32Generator">
            <summary>
            Generator of random <see cref="T:System.Int32"/> values within a given range.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Data.Generation.RandomInt32Generator.#ctor">
            <summary>
            Constructs a generator of random <see cref="T:System.Double"/> numbers.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Data.Generation.RandomInt32Generator.GetSequence">
            <inheritdoc/>
        </member>
        <member name="T:Gallio.Framework.Data.Generation.RandomDoubleGenerator">
            <summary>
            Generator of random <see cref="T:System.Double"/> values within a given range.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Data.Generation.RandomDoubleGenerator.#ctor">
            <summary>
            Constructs a generator of random <see cref="T:System.Double"/> numbers.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Data.Generation.RandomDoubleGenerator.GetSequence">
            <inheritdoc/>
        </member>
        <member name="T:Gallio.Framework.IComparisonSemantics">
            <summary>
            Describes the semantics of how objects should be compared.
            </summary>
            <remarks>
            <para>
            This class encapsulates a default set of rules for comparing objects.  These rules may be
            used as the foundation of a suite of standard assertion functions for comparing identity,
            equality and relations.
            </para>
            <para>
            The comparison engine has extension points available:
            <list type="bullet">Extend the object comparison by registring custom comparers through <see cref="T:Gallio.Framework.CustomComparers"/>.</list>
            <list type="bullet">Extend the object eqaulity by registring custom equality comparers through <see cref="T:Gallio.Framework.CustomEqualityComparers"/>.</list>
            </para>
            <para>
            Custom comparers defined through <see cref="T:Gallio.Framework.CustomComparers"/> or <see cref="T:Gallio.Framework.CustomEqualityComparers"/> 
            have always a higher priority than any built-in comparer, including inner type comparers such as 
            <see cref="T:System.IEquatable`1"/> or <see cref="T:System.IComparable`1"/>.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Framework.IComparisonSemantics.Same``1(``0,``0)">
            <summary>
            Returns <c>true</c> if two objects are the same.
            </summary>
            <remarks>
            <para>
            Rules applied:
            <list type="bullet">
            <item>Objects are the same if they are referentially
            equal according to <see cref="M:System.Object.ReferenceEquals(System.Object,System.Object)"/>.</item>
            </list>
            </para>
            </remarks>
            <param name="left">The left object, may be null.</param>
            <param name="right">The right object, may be null.</param>
            <returns>True if both objects are the same.</returns>
            <typeparam name="T">The object type, which must be a reference type (class) since a value type
            (struct) has no concept of referential identity.</typeparam>
        </member>
        <member name="M:Gallio.Framework.IComparisonSemantics.Equals(System.Object,System.Object)">
            <summary>
            Returns true if two objects are equal.
            </summary>
            <param name="left">The left object, may be null.</param>
            <param name="right">The right object, may be null.</param>
            <returns>True if the objects are equal.</returns>
            <seealso cref="M:Gallio.Framework.IComparisonSemantics.Equals``1(``0,``0)"/> for details.
        </member>
        <member name="M:Gallio.Framework.IComparisonSemantics.Equals``1(``0,``0)">
            <summary>
            Returns true if two objects are equal.
            </summary>
            <remarks>
            <para>
            Rules applied:
            <list type="bullet">
            <item>If both objects are null, returns true.</item>
            <item>If one object is null but not the other, returns false.</item>
            <item>If both objects are referentially equal, returns true.</item>
            <item>If both objects are of a special type, applies special type equality semantics (see below)</item>
            <item>If the objects are both instances of the same simple enumerable type (<seealso cref="M:Gallio.Framework.IComparisonSemantics.IsSimpleEnumerableType(System.Type)"/>),
            returns true if the collections have equal length and contents.</item>
            <item>Otherwise uses <see cref="M:System.Object.Equals(System.Object)"/> to determine equality.</item>
            </list>
            </para>
            <para>
            Special type semantics:
            <list type="bullet">
            <item><see cref="T:System.IO.FileInfo"/> and <see cref="T:System.IO.DirectoryInfo"/>: Compared by their ToString().</item>
            <item><see cref="T:System.Reflection.AssemblyName"/>: Compared by their full name.</item>
            </list>
            </para>
            </remarks>
            <param name="left">The left object, may be null.</param>
            <param name="right">The right object, may be null.</param>
            <returns>True if the objects are equal.</returns>
            <typeparam name="T">The object type.</typeparam>
        </member>
        <member name="M:Gallio.Framework.IComparisonSemantics.Compare``1(``0,``0)">
            <summary>
            Compares two objects.
            </summary>
            <remarks>
            <para>
            Rules applied:
            <list type="bullet">
            <item>If both objects are null, returns 0.</item>
            <item>If both objects are referentially equal, returns true.</item>
            <item>If the objects are both instances of the same simple enumerable type (<seealso cref="M:Gallio.Framework.IComparisonSemantics.IsSimpleEnumerableType(System.Type)"/>),
            then compares each pair of values until a non-equal pair is found at which point the
            result of that comparison is returned.  If one enumeration runs out of values than the other,
            then it is considered to be less than the other.</item>
            <item>If the objects implement <see cref="T:System.IComparable`1"/>, uses it to determine order.</item>
            <item>If the objects implement <see cref="T:System.IComparable"/>, uses it to determine order.</item>
            <item>Otherwise no deterministic comparison is possible so throws an exception.</item>
            </list>
            </para>
            <para>
            The ordering of nulls is determined by <see cref="M:System.IComparable.CompareTo(System.Object)"/> except
            when comparing collections.  If one collection happens to be null but not the other then it
            is considered less than the other.
            </para>
            </remarks>
            <param name="left">The left object, may be null.</param>
            <param name="right">The right object, may be null.</param>
            <returns>A value less than zero if the left object if less than
            the right object, zero if the left and right objects are equal, or greater than zero if
            the left object is greater than the right object.</returns>
            <exception cref="T:System.InvalidOperationException">Thrown if the values cannot be ordered.</exception>
            <typeparam name="T">The object type.</typeparam>
        </member>
        <member name="M:Gallio.Framework.IComparisonSemantics.IsSimpleEnumerableType(System.Type)">
            <summary>
            Returns <c>true</c> if the specified type is a simple enumerable type.
            </summary>
            <remarks>
            <para>
            A simple enumerable type is one that that does not override <see cref="M:System.Object.Equals(System.Object)"/>.
            </para>
            <para>
            The set of simple enumerable types includes arrays, lists, dictionaries and other
            standard collection types in the .Net framework.
            </para>
            </remarks>
            <param name="type">The object type.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="type"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.IComparisonSemantics.ApproximatelyEqual``2(``0,``0,``1)">
            <summary>
            Returns true if two values are equal to within a specified delta.
            </summary>
            <remarks>
            <para>
            The values are considered approximately equal if the absolute value of their difference
            is less than or equal to the delta.
            </para>
            <para>
            This method works with any comparable type that also supports a subtraction operator
            including <see cref="T:System.Single"/>, <see cref="T:System.Double"/>, <see cref="T:System.Decimal"/>,
            <see cref="T:System.Int32"/>, <see cref="T:System.DateTime"/> (using a <see cref="T:System.TimeSpan"/> delta),
            and many others.
            </para>
            </remarks>
            <typeparam name="TValue">The type of values to be compared.</typeparam>
            <typeparam name="TDifference">The type of the difference produced when the values are
            subtracted, for numeric types this is the same as <typeparamref name="TValue"/> but it
            may differ for other types.</typeparam>
            <param name="left">The expected value.</param>
            <param name="right">The actual value.</param>
            <param name="delta">The inclusive delta between the values.</param>
            <returns>True if the values are approximately equal.</returns>
        </member>
        <member name="T:Gallio.Framework.CustomEqualityComparers">
            <summary>
            Extensibility point for object equality managed by <see cref="T:Gallio.Framework.IComparisonSemantics"/>.
            </summary>
            <remarks>
            <para>
            Use the methods <see cref="M:Gallio.Framework.CustomEqualityComparers.Register(System.Type,Gallio.Common.EqualityComparison)"/> and <see cref="M:Gallio.Framework.CustomEqualityComparers.Unregister(System.Type)"/> to add and remove 
            custom type equality comparers.
            </para>
            <para>
            The Gallio inner comparison engine handles with the case of null objects comparison prior to
            the custom comparers. Therefore, while defining a custom comparer, you can safely assume that the 
            objects to compare are never null.
            </para>
            </remarks>
            <example>
            <code><![CDATA[
            public interface IFoo
            {
                int Value
                {
                    get;
                }
            }
            
            var customEqualityComparers = new CustomEqualityComparers();
            customEqualityComparers.Register<IFoo>((x, y) => x.Value == y.Value);
            ]]></code>
            </example>
        </member>
        <member name="M:Gallio.Framework.CustomEqualityComparers.Register(System.Type,Gallio.Common.EqualityComparison)">
            <summary>
            Registers a custom equality comparer for the specified type.
            </summary>
            <remarks>
            <para>
            The Gallio inner comparison engine handles with the case of null objects comparison prior to
            the custom comparers. Therefore, while defining a custom comparer, you can safely assume that the 
            objects to compare are never null.
            </para>
            </remarks>
            <param name="type">The type for which the custom comparer operates.</param>
            <param name="equalityComparer">An equality comparer that returns true is the objects are equivalent; false otherwise.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="type"/> or <paramref name="equalityComparer"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Thrown if a custom comparer for the specified type was already registered.</exception>
        </member>
        <member name="M:Gallio.Framework.CustomEqualityComparers.Register``1(Gallio.Common.EqualityComparison{``0})">
            <summary>
            Registers a strongly-typed custom equality comparer for the specified type.
            </summary>
            <remarks>
            <para>
            The Gallio inner comparison engine handles with the case of null objects comparison prior to
            the custom comparers. Therefore, while defining a custom comparer, you can safely assume that the 
            objects to compare are never null.
            </para>
            </remarks>
            <typeparam name="T">The type for which the custom comparer operates.</typeparam>
            <param name="equalityComparer">An equality comparer that returns true is the objects are equivalent.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="equalityComparer"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Thrown if a custom comparer for the specified type was already registered.</exception>
        </member>
        <member name="M:Gallio.Framework.CustomEqualityComparers.Unregister(System.Type)">
            <summary>
            Unregisters the custom equality comparer for the specified type.
            </summary>
            <remarks>
            <para>
            If no custom comparer exists for the specified type,
            the method has no effect and no exception is thrown.
            </para>
            </remarks>
            <param name="type">The searched type.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="type"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.CustomEqualityComparers.Unregister``1">
            <summary>
            Unregisters the custom equality comparer for the specified type.
            </summary>
            <remarks>
            <para>
            If no custom comparer exists for the specified type,
            the method has no effect and no exception is thrown.
            </para>
            </remarks>
            <typeparam name="T">The searched type.</typeparam>
        </member>
        <member name="T:Gallio.Framework.CustomComparers">
            <summary>
            Extensibility point for object comparison managed by <see cref="T:Gallio.Framework.IComparisonSemantics"/>.
            </summary>
            <remarks>
            <para>
            Use the methods <see cref="M:Gallio.Framework.CustomComparers.Register(System.Type,Gallio.Common.Comparison)"/> and <see cref="M:Gallio.Framework.CustomComparers.Unregister(System.Type)"/> to add and remove 
            custom type comparers.
            </para>
            <para>
            The Gallio inner comparison engine handles with the case of null objects comparison prior to
            the custom comparers. Therefore, while defining a custom comparer, you can safely assume that the 
            objects to compare are never null.
            </para>
            </remarks>
            <example>
            <code><![CDATA[
            public interface IFoo
            {
                int Value
                {
                    get;
                }
            }
            
            var customComparers = new CustomComparers();
            customComparers.Register<IFoo>((x, y) => x.Value.CompareTo(y.Value));
            ]]></code>
            </example>
        </member>
        <member name="M:Gallio.Framework.CustomComparers.Register(System.Type,Gallio.Common.Comparison)">
            <summary>
            Registers a custom comparer for the specified type.
            </summary>
            <remarks>
            <para>
            The Gallio inner comparison engine handles with the case of null objects comparison prior to
            the custom comparers. Therefore, while defining a custom comparer, you can safely assume that the 
            objects to compare are never null.
            </para>
            </remarks>
            <param name="type">The type for which the custom comparer operates.</param>
            <param name="comparer">A comparer that returns a negative value if the first object represents less that the second object, 
            zero if they represents the same value; or a positive value if the first object represents more than the second object.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="type"/> or <paramref name="comparer"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Thrown if a custom comparer for the specified type was already registered.</exception>
        </member>
        <member name="M:Gallio.Framework.CustomComparers.Register``1(System.Comparison{``0})">
            <summary>
            Registers a strongly-tped custom comparer for the specified type.
            </summary>
            <remarks>
            <para>
            The Gallio inner comparison engine handles with the case of null objects comparison prior to
            the custom comparers. Therefore, while defining a custom comparer, you can safely assume that the 
            objects to compare are never null.
            </para>
            </remarks>
            <typeparam name="T">The type for which the custom comparer operates.</typeparam>
            <param name="comparer">A comparer that returns a negative value if the first object represents less that the second object, 
            zero if they represents the same value; or a positive value if the first object represents more than the second object.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="comparer"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Thrown if a custom comparer for the specified type was already registered.</exception>
        </member>
        <member name="M:Gallio.Framework.CustomComparers.Unregister(System.Type)">
            <summary>
            Unregisters the custom comparer for the specified type.
            </summary>
            <remarks>
            <para>
            If no custom comparer exists for the specified type,
            the method has no effect and no exception is thrown.
            </para>
            </remarks>
            <param name="type">The searched type.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="type"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.CustomComparers.Unregister``1">
            <summary>
            Unregisters the custom comparer for the specified type.
            </summary>
            <remarks>
            <para>
            If no custom comparer exists for the specified type,
            the method has no effect and no exception is thrown.
            </para>
            </remarks>
            <typeparam name="T">The searched type.</typeparam>
        </member>
        <member name="T:Gallio.Framework.Pattern.CompositePatternAttribute">
            <summary>
            The <see cref="T:Gallio.Framework.Pattern.CompositePatternAttribute"/> class is a base class that can be used to define "composite" patterns. 
            </summary>
            <remarks>
            <para>
            A composite pattern is a single pattern that is composed of (and equivelent to) a defined set of "component" patterns.
            </para>
            <para>
            Composite patterns allow arbitrary sets of individual <see cref="T:Gallio.Framework.Pattern.IPattern"/>s to be grouped together 
            and encapsulated so that the entire group can be treated as a single pattern.
            </para>
            <para>
            Grouping patterns that are commonly used together into a composite pattern offers multiple benefits 
            vs. using the component patterns separately.
            Benefits of composite patterns include:
            <list type="bullet">
            <item>Composite patterns are easier to apply than the equivelent set of component patterns.</item>
            <item>Composite patterns ensure that the entire set of component patterns is applied consistently.</item>
            <item>Composite patterns can reduce code duplication (e.g. for declaratively applied <see cref="T:Gallio.Framework.Pattern.PatternAttribute"/>s).</item>
            <item>
            Composite patterns encapsulate and centralize the definition of the pattern group.
            (This makes it easier and safer to maintain test code, 
            such as when adding, removing, or modifying the component patterns of the composite pattern.)
            </item>
            <item>
            Composite patterns allow meaningful names to be assigned to pattern groups. 
            (This often improves test code readability, understandability, and maintainability.)
            </item>
            </list>
            </para>
            </remarks>
            <example>
            <para>
            This C# example shows a derived class that encapsulates 3 separate <see cref="T:Gallio.Framework.Pattern.PatternAttribute"/>s 
            as a named composite attribute.
            <code><![CDATA[
            /// <summary>
            /// This attribute composites 3 separate <see cref="MetadataPatternAttribute"/>s into a single attribute.
            /// </summary>
            public class SampleCompositePatternAttribute: CompositePatternAttribute
            {
                private readonly PatternAttribute[] _componentPatterns = new[]
                {
                    new CategoryAttribute("Samples"),
                    new AuthorAttribute("John"),
                    new ImportanceAttribute(Importance.Critical)
                };
            
                protected override IEnumerable<IPattern> GetPatterns()
                {
                    return _componentPatterns;
                }
            }
            ]]></code>
            </para>
            <para>
            This C# example shows 2 derived classes that each encapsulates multiple separate MbUnit.Framework.CatchExceptionAttributes 
            as a named composite attribute.
            <code><![CDATA[
            /// <summary>
            /// This attribute composites 4 separate <see cref="MbUnit.Framework.CatchExceptionAttributes"/>s into a single attribute.
            /// </summary>
            public class CompositeCatchArgumentExceptionsAttribute : CompositePatternAttribute
            {
                //NOTE: The Order properties of the attributes are intentionally different than the array sequence.
                private readonly PatternAttribute[] _componentPatterns = new PatternAttribute[]
                {
                    new CatchExceptionAttribute(typeof(ArgumentNullException)) { StandardOutcome = "TestOutcome.Skipped", Order = 1},
                    new CatchExceptionAttribute(typeof(ArgumentOutOfRangeException)) { StandardOutcome = "TestOutcome.Passed", Order = 4},
                    new CatchExceptionAttribute(typeof(ArgumentOutOfRangeException)) { StandardOutcome = "TestOutcome.Ignored", ExceptionMessage = "expectedmessage", Order = 2},
                    new CatchExceptionAttribute(typeof(ArgumentException)) { StandardOutcome = "TestOutcome.Inconclusive", Order = 3}
                };
            
                protected override IEnumerable<IPattern> GetPatterns()
                {
                    return _componentPatterns;
                }
            }
            
            /// <summary>
            /// This attribute composites 2 separate <see cref="MbUnit.Framework.CatchExceptionAttributes"/>s into a single attribute.
            /// </summary>
            public class CompositeCatchMiscExceptionsAttribute : CompositePatternAttribute
            {
                private readonly PatternAttribute[] _componentPatterns = new PatternAttribute[]
                {
                    new CatchExceptionAttribute(typeof(InvalidCastException)) { StandardOutcome = "TestOutcome.Ignored", Order = 1},
                    new CatchExceptionAttribute(typeof(Exception)) { StandardOutcome = "TestOutcome.Pending", ExceptionMessage = "expectedmessage", Order = 2}
                };
            
                protected override IEnumerable<IPattern> GetPatterns()
                {
                    return _componentPatterns;
                }
            }
            
            /// <summary>
            /// This test illustrates a potential usage scenario for the 2 composite attributes above.
            /// </summary>
            [Test]
            [CompositeCatchArgumentExceptions]
            [CompositeCatchMiscExceptions]
            public void ExpectInconclusiveFromFirstOfMultipleCompositeCatchAttributesWhenThrowArgEx()
            {
                throw new ArgumentException();
            }
            ]]></code>
            </para>
            </example>
            <seealso cref="T:Gallio.Framework.Pattern.IPattern"/>
            <seealso cref="T:Gallio.Framework.Pattern.PatternAttribute"/>
        </member>
        <member name="T:Gallio.Framework.Pattern.PatternAttribute">
            <summary>
            The <see cref="T:Gallio.Framework.Pattern.PatternAttribute"/> class is the base class for all pattern test framework
            attributes.  It associates a code element with a <see cref="T:Gallio.Framework.Pattern.IPattern"/> for building
            up parts of the test model using reflection.
            </summary>
            <remarks>
            <para>
            Subclasses of <see cref="T:Gallio.Framework.Pattern.IPattern"/> define simpler interfaces for implementing
            the semantics of common types of attributes such as test factories, decorators,
            and data providers.  Refer to the documentation of each subclass for details on its use.
            </para>
            </remarks>
            <seealso cref="T:Gallio.Framework.Pattern.IPattern"/>
            <seealso cref="T:Gallio.Framework.Pattern.PatternTestFramework"/>
        </member>
        <member name="T:Gallio.Framework.Pattern.IPattern">
            <summary>
            A <see cref="T:Gallio.Framework.Pattern.IPattern"/> defines a composable rule for building up a test model
            using reflection.
            </summary>
            <remarks>
            <para>
            The general idea is that a pattern applies contributions to a <see cref="T:Gallio.Framework.Pattern.IPatternScope"/>
            that represents the state of the pattern interpretation process.  A primary pattern
            adds contributions to its containing scope with the <see cref="M:Gallio.Framework.Pattern.IPattern.Consume(Gallio.Framework.Pattern.IPatternScope,Gallio.Common.Reflection.ICodeElementInfo,System.Boolean)"/> method.  All
            patterns (primary and non-primary) add further contributions to the pattern's own
            scope with the <see cref="M:Gallio.Framework.Pattern.IPattern.Process(Gallio.Framework.Pattern.IPatternScope,Gallio.Common.Reflection.ICodeElementInfo)"/> method.
            </para>
            <para>
            A pattern can also defer some of its processing by registering a decorator on the scope.
            Once all of the decorators have been gathered, they can be applied in sorted order
            as required.
            </para>
            <para>
            Pattern processing is performed recursively.  First the primary pattern for the assembly
            is found.  If none is registered then the default assembly pattern is used instead.
            The assembly pattern then performs reflection over the types within the assembly and hands
            off control (via <see cref="M:Gallio.Framework.Pattern.IPattern.Consume(Gallio.Framework.Pattern.IPatternScope,Gallio.Common.Reflection.ICodeElementInfo,System.Boolean)"/>) to any primary patterns it finds each type.  Likewise the
            types scan their members and call into their primary patterns.  And so on.  Each primary pattern
            is responsible for invoking (via <see cref="M:Gallio.Framework.Pattern.IPattern.Process(Gallio.Framework.Pattern.IPatternScope,Gallio.Common.Reflection.ICodeElementInfo)"/>) any additional non-primary patterns
            associated with their code element after they have established the appropriate evaluation scope.
            </para>
            <para>
            Typically a pattern is associated with a code element by means of a <see cref="T:Gallio.Framework.Pattern.PatternAttribute"/>
            but other associations are possible.  Some patterns might define default rules for recursively
            processing code elements that do not have primary patterns of their own.  Others might use
            means other than standard reflection to discover the patterns to be applied.  The process is
            intended to be open and extensible.
            </para>
            </remarks>
            <seealso cref="T:Gallio.Framework.Pattern.PatternAttribute"/>
            <seealso cref="T:Gallio.Framework.Pattern.PatternTestFramework"/>
        </member>
        <member name="M:Gallio.Framework.Pattern.IPattern.GetTestParts(Gallio.Framework.Pattern.IPatternEvaluator,Gallio.Common.Reflection.ICodeElementInfo)">
            <summary>
            Gets the test parts represented by a code element.
            </summary>
            <remarks>
            <para>
            This method is only called for primary patterns.
            </para>
            </remarks>
            <param name="evaluator">The evaluator.</param>
            <param name="codeElement">The code element.</param>
            <returns>The test parts, or an empty array if none.</returns>
            <exception cref="T:Gallio.Framework.Pattern.PatternUsageErrorException">May be thrown to halt processing of the pattern
            and report an error message to the user as an annotation that describes how the
            pattern was misapplied.</exception>
        </member>
        <member name="M:Gallio.Framework.Pattern.IPattern.Consume(Gallio.Framework.Pattern.IPatternScope,Gallio.Common.Reflection.ICodeElementInfo,System.Boolean)">
            <summary>
            Consumes a code element and applies its contributions to the scope
            provided by a containing pattern.
            </summary>
            <remarks>
            <para>
            This method is used to declare new tests, test parameters and other components
            and add them to a containing test that was defined in some other scope.
            </para>
            <para>
            For example, when enumerating test fixtures, the assembly-level pattern will
            call the <see cref="M:Gallio.Framework.Pattern.IPattern.Consume(Gallio.Framework.Pattern.IPatternScope,Gallio.Common.Reflection.ICodeElementInfo,System.Boolean)"/> method of the primary patterns associated
            with each type in an assembly.  Some of these patterns will create new test fixture
            objects and add them as children of the containing assembly-level test.  They will then
            call the <see cref="M:Gallio.Framework.Pattern.IPattern.Process(Gallio.Framework.Pattern.IPatternScope,Gallio.Common.Reflection.ICodeElementInfo)"/> method of each non-primary pattern associated with
            the type within the scope of the test fixture.  Then they will typically 
            recurse into the fixture to apply contributions defined by patterns associated
            with methods, fields, properties, events, constructors and generic type parameters.
            </para>
            <para>
            This method is only called for primary patterns.
            </para>
            </remarks>
            <param name="containingScope">The containing scope.</param>
            <param name="codeElement">The code element to process.</param>
            <param name="skipChildren">If true, skips generating child test components.
            Instead the children may be populated on demand using
            <see cref="M:Gallio.Framework.Pattern.IPatternScope.AddDeferredComponentPopulator(Gallio.Framework.Pattern.DeferredComponentPopulator)"/>.  The implementation
            may safely ignore the value of this flag so long as subsequent attempts to populate children on
            demand are idempotent (do nothing or have no adverse side-effects).</param>
            <seealso cref="P:Gallio.Framework.Pattern.IPattern.IsPrimary"/>
            <exception cref="T:Gallio.Framework.Pattern.PatternUsageErrorException">May be thrown to halt processing of the pattern
            and report an error message to the user as an annotation that describes how the
            pattern was misapplied.</exception>
        </member>
        <member name="M:Gallio.Framework.Pattern.IPattern.Process(Gallio.Framework.Pattern.IPatternScope,Gallio.Common.Reflection.ICodeElementInfo)">
            <summary>
            Processes a code element and applies its contributions to the scope of this pattern.
            The scope will typically have been introduced by the <see cref="M:Gallio.Framework.Pattern.IPattern.Consume(Gallio.Framework.Pattern.IPatternScope,Gallio.Common.Reflection.ICodeElementInfo,System.Boolean)"/> method
            of a primary pattern applied to this code element.
            </summary>
            <remarks>
            <para>
            This method is used by patterns to decorate tests and test parameters that
            have been declared by primary patterns.
            </para>
            <para>
            For example, the <see cref="M:Gallio.Framework.Pattern.IPattern.Process(Gallio.Framework.Pattern.IPatternScope,Gallio.Common.Reflection.ICodeElementInfo)"/> method will typically be called by another
            pattern that has just created a new test based on the associated code element,
            such as a test method.  The method then has the opportunity to modify the test
            to add metadata, change its name, add new behaviors, and so on.
            </para>
            </remarks>
            <param name="scope">The scope.</param>
            <param name="codeElement">The code element to process.</param>
            <exception cref="T:Gallio.Framework.Pattern.PatternUsageErrorException">May be thrown to halt processing of the pattern
            and report an error message to the user as an annotation that describes how the
            pattern was misapplied.</exception>
        </member>
        <member name="P:Gallio.Framework.Pattern.IPattern.IsPrimary">
            <summary>
            Returns true if this is a primary pattern.
            </summary>
            <remarks>
            <para>
            A primary pattern is a pattern that defines the ultimate purpose of a code
            element and the nature of the tests or test parameters that are produced from it.
            Consequently the primary pattern is the only one on which the <see cref="M:Gallio.Framework.Pattern.IPattern.Consume(Gallio.Framework.Pattern.IPatternScope,Gallio.Common.Reflection.ICodeElementInfo,System.Boolean)"/>
            method will be called.
            </para>
            <para>
            Each code element may have at most one primary pattern.  It is an error
            for a code element to have more than one associated primary pattern.
            </para>
            <para>
            If a code element does not have an associated primary pattern, its containing
            test may choose to apply default processing to it instead.  For example, the
            containing test may give an opportunity to patterns associated with the code element
            to consume a test method parameter but will revert to default behavior if no
            primary patterns explicitly claim it.
            </para>
            <para>
            Non-primary patterns still play a very important part in the construction
            of the test model.  Non-primary patterns may implement the <see cref="M:Gallio.Framework.Pattern.IPattern.Process(Gallio.Framework.Pattern.IPatternScope,Gallio.Common.Reflection.ICodeElementInfo)"/>
            method to decorate tests and test parameters declared by the primary pattern.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Framework.Pattern.PatternAttribute.GetTestParts(Gallio.Framework.Pattern.IPatternEvaluator,Gallio.Common.Reflection.ICodeElementInfo)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Pattern.PatternAttribute.Consume(Gallio.Framework.Pattern.IPatternScope,Gallio.Common.Reflection.ICodeElementInfo,System.Boolean)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Pattern.PatternAttribute.Process(Gallio.Framework.Pattern.IPatternScope,Gallio.Common.Reflection.ICodeElementInfo)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Pattern.PatternAttribute.ThrowUsageErrorException(System.String)">
            <summary>
            Throws a <see cref="T:Gallio.Framework.Pattern.PatternUsageErrorException"/> with the specified message
            including a short heading that identifies the attribute type.
            </summary>
            <param name="message">The message, not null.</param>
            <exception cref="T:Gallio.Framework.Pattern.PatternUsageErrorException">Always thrown.</exception>
        </member>
        <member name="M:Gallio.Framework.Pattern.PatternAttribute.ThrowUsageErrorException(System.String,System.Exception)">
            <summary>
            Throws a <see cref="T:Gallio.Framework.Pattern.PatternUsageErrorException"/> with the specified message
            including a short heading that identifies the attribute type.
            </summary>
            <param name="message">The message, not null.</param>
            <param name="ex">The associated exception, or null if none.</param>
            <exception cref="T:Gallio.Framework.Pattern.PatternUsageErrorException">Always thrown.</exception>
        </member>
        <member name="P:Gallio.Framework.Pattern.PatternAttribute.IsPrimary">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Pattern.CompositePatternAttribute.Process(Gallio.Framework.Pattern.IPatternScope,Gallio.Common.Reflection.ICodeElementInfo)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Pattern.CompositePatternAttribute.Consume(Gallio.Framework.Pattern.IPatternScope,Gallio.Common.Reflection.ICodeElementInfo,System.Boolean)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Pattern.CompositePatternAttribute.GetPatterns">
            <summary>
            Gets a set of individual patterns that are collectively equivelent to the composite pattern represented by the instance.
            </summary>
            <remarks>
            Note to inheritors: A common implementation of this method is to simply return an array containing 
            programmatically instantiated instances of various Attributes that implement <see cref="T:Gallio.Framework.Pattern.IPattern"/>.
            See the class documentation for examples of this type of implementation.
            </remarks>
            <returns>The set of patterns that collectively define the composite pattern.</returns>
        </member>
        <member name="T:MbUnit.Framework.ExtensionPointPatternAttribute">
            <summary>
            Base class for all the patterns defining an extension point of the framework.
            </summary>
            <remarks>
            <para>
            Extension point attributes act through a static method.
            </para>
            </remarks>
        </member>
        <member name="T:Gallio.Framework.Pattern.DecoratorPatternAttribute">
            <summary>
            A decorator attribute applies contributions to a test component in scope
            such as a test or test parameter generated by some other pattern attribute.
            </summary>
            <remarks>
            <para>
            Occasionally the order in which decorators are applied is significant so this type provides a <see cref="P:Gallio.Framework.Pattern.DecoratorPatternAttribute.Order"/> 
            property to specify an explicit ordering when required. All decorators that apply to a given test component 
            declaration are applied in increasing <see cref="P:Gallio.Framework.Pattern.DecoratorPatternAttribute.Order"/>.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Framework.Pattern.DecoratorPatternAttribute.Order">
            <summary>
            Gets or sets the order in which the decorator should be applied.
            </summary>
            <remarks>
            <para>
            Decorators with lower order indices values are applied before decorators with
            higher ones. In the case of a tie, an arbitrary choice is
            made among decorators with the same order index to determine the order in
            which they will be processed.
            </para>
            </remarks>
            <value>
            The default order index is 0.
            </value>
        </member>
        <member name="M:MbUnit.Framework.ExtensionPointPatternAttribute.GetTestParts(Gallio.Framework.Pattern.IPatternEvaluator,Gallio.Common.Reflection.ICodeElementInfo)">
            <inheritdoc />
        </member>
        <member name="M:MbUnit.Framework.ExtensionPointPatternAttribute.Consume(Gallio.Framework.Pattern.IPatternScope,Gallio.Common.Reflection.ICodeElementInfo,System.Boolean)">
            <inheritdoc />
        </member>
        <member name="M:MbUnit.Framework.ExtensionPointPatternAttribute.Validate(Gallio.Framework.Pattern.IPatternScope,Gallio.Common.Reflection.IMethodInfo)">
            <summary>
            Verifies that the attribute is being used correctly.
            </summary>
            <param name="containingScope">The containing scope.</param>
            <param name="method">The method.</param>
            <exception cref="T:Gallio.Framework.Pattern.PatternUsageErrorException">Thrown if the attribute is being used incorrectly.</exception>
        </member>
        <member name="M:MbUnit.Framework.ExtensionPointPatternAttribute.DecorateContainingScope(Gallio.Framework.Pattern.IPatternScope,Gallio.Common.Reflection.IMethodInfo)">
            <summary>
            Applies decorations to the containing test.
            </summary>
            <param name="containingScope">The containing scope.</param>
            <param name="method">The method to process.</param>
        </member>
        <member name="P:MbUnit.Framework.ExtensionPointPatternAttribute.IsPrimary">
            <inheritdoc />
        </member>
        <member name="P:MbUnit.Framework.ExtensionPointPatternAttribute.CustomTestEnvironment">
            <summary>
            Gets the current test environment instance which can be used to register custom actions.
            </summary>
        </member>
        <member name="T:Gallio.Framework.Pattern.FixtureMemberInvokerTargets">
            <summary>
            Targeted member types for the fixture invoker.
            </summary>
        </member>
        <member name="F:Gallio.Framework.Pattern.FixtureMemberInvokerTargets.Default">
            <summary>
            Default value combining <see cref="F:Gallio.Framework.Pattern.FixtureMemberInvokerTargets.Field"/>, <see cref="F:Gallio.Framework.Pattern.FixtureMemberInvokerTargets.Property"/>, and <see cref="F:Gallio.Framework.Pattern.FixtureMemberInvokerTargets.Method"/>.
            </summary>
        </member>
        <member name="F:Gallio.Framework.Pattern.FixtureMemberInvokerTargets.Field">
            <summary>
            Indicates to find the searched member among the fields.
            </summary>
        </member>
        <member name="F:Gallio.Framework.Pattern.FixtureMemberInvokerTargets.Property">
            <summary>
            Indicates to find the searched member among the properties.
            </summary>
        </member>
        <member name="F:Gallio.Framework.Pattern.FixtureMemberInvokerTargets.Method">
            <summary>
            Indicates to find the searched member among the methods.
            </summary>
        </member>
        <member name="T:Gallio.Framework.Data.TestParameterDataBinding">
            <summary>
            Describes a data binding that binds to a test parameter.
            </summary>
            <remarks>
            <para>
            A data set that encomasses multiple tests may use the info in <see cref="P:Gallio.Framework.Data.TestParameterDataBinding.TestParameter"/>
            to access parameter properties like type or containing fixture.
            </para>
            </remarks>
        </member>
        <member name="T:Gallio.Framework.Data.DataBinding">
            <summary>
            A data binding object describes how a data binding is to take place.
            </summary>
            <remarks>
            <para>
            This class provides support for optional path-based and index-based lookup.  Subclasses
            may provide additional properties that are recognized by special kinds of data sets
            to modify how a bound value is resolved.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Framework.Data.DataBinding.#ctor(System.Nullable{System.Int32},System.String)">
            <summary>
            Creates a new data binding with an optional index and path.
            </summary>
            <param name="index">The binding index or null if none. <seealso cref="P:Gallio.Framework.Data.DataBinding.Index"/>.</param>
            <param name="path">The binding path or null if none. <seealso cref="P:Gallio.Framework.Data.DataBinding.Path"/>.</param>
        </member>
        <member name="M:Gallio.Framework.Data.DataBinding.ReplaceIndex(System.Nullable{System.Int32})">
            <summary>
            Creates a clone of the data binding with a different index.
            </summary>
            <param name="index">The new index.</param>
            <returns>The cloned binding.</returns>
        </member>
        <member name="M:Gallio.Framework.Data.DataBinding.Equals(System.Object)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Data.DataBinding.Equals(Gallio.Framework.Data.DataBinding)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Data.DataBinding.GetHashCode">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Data.DataBinding.ToString">
            <summary>
            Returns a debug representation of the binding as a string.
            </summary>
            <returns>The string representation.</returns>
        </member>
        <member name="P:Gallio.Framework.Data.DataBinding.Index">
            <summary>
            Gets an optional binding index that describes how to locate the bound value
            in a data set that is structured as an ordered tuple, such as the ordinal index
            of a cell in an array.  Null if none.
            </summary>
            <remarks>
            <para>
            The default binding index for a test parameter may be its ordinal index
            in the parameter array.  A data set can take advantage of this convention by
            treating the binding index.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Framework.Data.DataBinding.Path">
            <summary>
            Gets an optional binding path that describes how to locate the bound value
            in the data set, such as a column name or an XPath expression.  Null if none.
            </summary>
            <remarks>
            <para>
            The default binding path for a test parameter may be the name of the test parameter.
            A data set can take advantage of this convention by treating the binding path as a
            case-insensitive name where appropriate.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Framework.Data.TestParameterDataBinding.#ctor(System.Nullable{System.Int32},System.String,Gallio.Model.Tree.TestParameter)">
            <summary>
            Creates a new data binding with an optional index, path and a reference to the corresponding <see cref="T:Gallio.Model.Tree.TestParameter"/>.
            </summary>
            <param name="index">The binding index or null if none. <seealso cref="P:Gallio.Framework.Data.DataBinding.Index"/>.</param>
            <param name="path">The binding path or null if none. <seealso cref="P:Gallio.Framework.Data.DataBinding.Path"/>.</param>
            <param name="testParameter"><see cref="T:Gallio.Model.Tree.TestParameter"/> that this binding corresponds to.</param>
        </member>
        <member name="P:Gallio.Framework.Data.TestParameterDataBinding.TestParameter">
            <summary>
            Gets the <see cref="T:Gallio.Model.Tree.TestParameter"/> that this binding corresponds to.
            </summary>
        </member>
        <member name="T:Gallio.Framework.Pattern.PatternTestFrameworkExtensionProvider">
            <summary>
            Gets the list of test framework extensions associated with a given assembly.
            </summary>
            <param name="assembly">The assembly.</param>
            <returns>The associated extensions.</returns>
        </member>
        <member name="T:Gallio.Framework.Pattern.PatternTestExplorer">
            <summary>
            Explores tests implemented using the pattern test framework.
            </summary>
        </member>
        <member name="T:Gallio.Model.Helpers.TestExplorer">
            <summary>
            A test explorer generates a <see cref="P:Gallio.Model.Helpers.TestExplorer.TestModel"/> from test code.
            </summary>
            <remarks>
            <para>
            A test explorer may be stateful since it is only used to build one <see cref="P:Gallio.Model.Helpers.TestExplorer.TestModel"/>
            incrementally and then is disposed.
            </para>
            <para>
            Subclasses of this class provide the algorithm used to populate the test model.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Model.Helpers.TestExplorer.Dispose">
            <summary>
            Disposes the test explorer.
            </summary>
        </member>
        <member name="M:Gallio.Model.Helpers.TestExplorer.Dispose(System.Boolean)">
            <summary>
            Disposes the test explorer.
            </summary>
            <param name="disposing">True if <see cref="M:Gallio.Model.Helpers.TestExplorer.Dispose"/> was called directly.</param>
        </member>
        <member name="M:Gallio.Model.Helpers.TestExplorer.Explore(Gallio.Common.Reflection.IReflectionPolicy,Gallio.Common.Reflection.ICodeElementInfo)">
            <summary>
            Explores tests defined by the specified code element and populates the explorer's test model.
            </summary>
            <param name="reflectionPolicy">The reflection policy.</param>
            <param name="codeElement">The code element.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="reflectionPolicy"/>,
            <paramref name="codeElement"/> is null.</exception>
        </member>
        <member name="M:Gallio.Model.Helpers.TestExplorer.Finish">
            <summary>
            Finishes populating the model.
            </summary>
            <remarks>
            <para>
            The default implementation does nothing.  Subclasses should override this method
            to apply any deferred changes to the test model once exploration is complete.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Model.Helpers.TestExplorer.ExploreImpl(Gallio.Common.Reflection.IReflectionPolicy,Gallio.Common.Reflection.ICodeElementInfo)">
            <summary>
            Explores tests defined by the specified code element and populates the explorer's test model.
            </summary>
            <param name="reflectionPolicy">The reflection policy, not null.</param>
            <param name="codeElement">The code element, not null.</param>
        </member>
        <member name="M:Gallio.Model.Helpers.TestExplorer.CreateTestModel">
            <summary>
            Creates the <see cref="P:Gallio.Model.Helpers.TestExplorer.TestModel"/>.
            </summary>
            <remarks>
            <para>
            The default implementation returns a new <see cref="P:Gallio.Model.Helpers.TestExplorer.TestModel"/>.
            </para>
            </remarks>
            <returns>The test model.</returns>
        </member>
        <member name="P:Gallio.Model.Helpers.TestExplorer.TestModel">
            <summary>
            Gets the test model.
            </summary>
        </member>
        <member name="T:Gallio.Framework.Pattern.PatternTestModel">
            <summary>
            The test model for the pattern test framework.
            </summary>
        </member>
        <member name="T:Gallio.Model.Tree.TestModel">
            <summary>
            The test model provides access to the contents of the test tree
            generated from a test package by the test enumeration process.
            </summary>
        </member>
        <member name="M:Gallio.Model.Tree.TestModel.#ctor">
            <summary>
            Creates a test model with a new empty root test.
            </summary>
        </member>
        <member name="M:Gallio.Model.Tree.TestModel.ClearAnnotations">
            <summary>
            Clears the list of annotations.
            </summary>
        </member>
        <member name="M:Gallio.Model.Tree.TestModel.AddAnnotation(Gallio.Model.Tree.Annotation)">
            <summary>
            Adds an annotation.
            </summary>
            <param name="annotation">The annotation to add.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="annotation"/> is null.</exception>
            <seealso cref="P:Gallio.Model.Tree.TestModel.Annotations"/>
        </member>
        <member name="M:Gallio.Model.Tree.TestModel.RemoveAnnotation(Gallio.Model.Tree.Annotation)">
            <summary>
            Removes an annotation.
            </summary>
            <param name="annotation">The annotation to remove.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="annotation"/> is null.</exception>
            <seealso cref="P:Gallio.Model.Tree.TestModel.Annotations"/>
        </member>
        <member name="M:Gallio.Model.Tree.TestModel.FindTest(System.String)">
            <summary>
            Finds a test by its id.
            </summary>
            <param name="testId">The test id.</param>
            <returns>The test, or null if not found.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="testId"/> is null.</exception>
        </member>
        <member name="P:Gallio.Model.Tree.TestModel.RootTest">
            <summary>
            Gets or sets the root test in the model.
            </summary>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="P:Gallio.Model.Tree.TestModel.AllTests">
            <summary>
            Recursively enumerates all tests including the root test.
            </summary>
        </member>
        <member name="P:Gallio.Model.Tree.TestModel.Annotations">
            <summary>
            Gets the read-only list of annotations.
            </summary>
            <remarks>
            <para>
            An annotation is an informational, warning or error message associated with
            a code element in the test model.
            </para>
            <para>
            Test frameworks publish annotations on the test model that describe usage errors
            or warnings about problems that may prevent tests from running, such as using a
            custom attribute incorrectly.  They may also emit informational annotations to
            draw the user's attention, such as by flagging ignored or pending tests.
            </para>
            <para>
            The presentation of annotations is undefined.  A command-line test runner might
            simply log them whereas an IDE plugin could generate new task items to incorporate
            them into the UI.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Framework.Pattern.PatternTestModel.#ctor">
            <summary>
            Creates a pattern test model.
            </summary>
        </member>
        <member name="P:Gallio.Framework.Pattern.PatternTestModel.RootTest">
            <summary>
            Gets or sets the root test.
            </summary>
        </member>
        <member name="T:Gallio.Framework.TriggerEvent">
            <summary>
            Specifies a trigger condition for automatic execution of an action.
            </summary>
            <seealso cref="M:Gallio.Framework.TestContext.AutoExecute(Gallio.Framework.TriggerEvent,Gallio.Common.Action)"/>
        </member>
        <member name="F:Gallio.Framework.TriggerEvent.Never">
            <summary>
            Never performs the action.
            </summary>
        </member>
        <member name="F:Gallio.Framework.TriggerEvent.TestFinished">
            <summary>
            Perform the action when the test finishes.
            </summary>
        </member>
        <member name="F:Gallio.Framework.TriggerEvent.TestPassed">
            <summary>
            Perform the action when the test passed.
            </summary>
        </member>
        <member name="F:Gallio.Framework.TriggerEvent.TestPassedOrInconclusive">
            <summary>
            Perform the action when the test passed or was inconclusive.
            </summary>
        </member>
        <member name="F:Gallio.Framework.TriggerEvent.TestInconclusive">
            <summary>
            Perform the action when the test was inconclusive.
            </summary>
        </member>
        <member name="F:Gallio.Framework.TriggerEvent.TestFailed">
            <summary>
            Perform the action when the test failed.
            </summary>
        </member>
        <member name="F:Gallio.Framework.TriggerEvent.TestFailedOrInconclusive">
            <summary>
            Perform the action when the test failed or was inconclusive.
            </summary>
        </member>
        <member name="T:Gallio.Framework.Data.Generation.RandomStockStringGenerator">
            <summary>
            Generator of random <see cref="T:System.String"/> objects from a predefined list of string values.
            </summary>
        </member>
        <member name="T:Gallio.Framework.Data.Generation.RandomStringGenerator">
            <summary>
            Generator of random <see cref="T:System.String"/> objects based on a regular expression filter mask.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Data.Generation.RandomStringGenerator.#ctor">
            <summary>
            Constructs a generator of random <see cref="T:System.String"/> objects.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Data.Generation.RandomStringGenerator.GetSequence">
            <inheritdoc/>
        </member>
        <member name="M:Gallio.Framework.Data.Generation.RandomStringGenerator.GetNextString">
            <summary>
            Generates the next random string.
            </summary>
            <returns>A random string.</returns>
        </member>
        <member name="M:Gallio.Framework.Data.Generation.RandomStockStringGenerator.#ctor">
            <summary>
            Constructs a generator of random <see cref="T:System.String"/> objects.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Data.Generation.RandomStockStringGenerator.Verify">
            <inheritdoc/>
        </member>
        <member name="M:Gallio.Framework.Data.Generation.RandomStockStringGenerator.GetNextString">
            <inheritdoc/>
        </member>
        <member name="P:Gallio.Framework.Data.Generation.RandomStockStringGenerator.Values">
            <summary>
            Gets or sets the predefined string values.
            </summary>
        </member>
        <member name="T:Gallio.Framework.Data.Generation.RandomRegexLiteStringGenerator">
            <summary>
            Generator of random <see cref="T:System.String"/> objects based on a regular expression filter mask.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Data.Generation.RandomRegexLiteStringGenerator.#ctor">
            <summary>
            Constructs a generator of random <see cref="T:System.String"/> objects.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Data.Generation.RandomRegexLiteStringGenerator.Verify">
            <inheritdoc/>
        </member>
        <member name="M:Gallio.Framework.Data.Generation.RandomRegexLiteStringGenerator.Run">
            <inheritdoc/>
        </member>
        <member name="M:Gallio.Framework.Data.Generation.RandomRegexLiteStringGenerator.GetNextString">
            <inheritdoc/>
        </member>
        <member name="P:Gallio.Framework.Data.Generation.RandomRegexLiteStringGenerator.RegularExpressionPattern">
            <summary>
            Gets or sets regular expression pattern that serves as a filter mask.
            </summary>
        </member>
        <member name="T:Gallio.Framework.Data.Generation.NamespaceDoc">
            <summary>
            The Gallio.Framework.Data.Generation namespace provides a framework for generating data
            based on a specification.
            </summary>
        </member>
        <member name="T:Gallio.Common.Text.RegularExpression.ElementSet">
            <summary>
            Represents a arbitrary character among a set of possible values, in a regular expression tree.
            </summary>
            <remarks>
            <para>
            It is usually the representation of an explicit set, noted as "[...]" in a regular expression.
            </para>
            </remarks>
        </member>
        <member name="T:Gallio.Common.Text.RegularExpression.Element">
            <summary>
            Abstract base class for a regular expression composite tree leaf.
            </summary>
        </member>
        <member name="T:Gallio.Common.Text.RegularExpression.IElement">
            <summary>
            Interface for a regular expression composite tree leaf.
            </summary>
        </member>
        <member name="M:Gallio.Common.Text.RegularExpression.IElement.GetRandomString(System.Random)">
            <summary>
            Returns a random string that matches the regular expression element.
            </summary>
            <param name="random">A random number generator.</param>
            <returns>A random string.</returns>
        </member>
        <member name="M:Gallio.Common.Text.RegularExpression.Element.#ctor(Gallio.Common.Text.RegularExpression.Quantifier)">
            <summary>
            Constructs an inner element of a regular expression composite tree.
            </summary>
            <param name="quantifier">A quantifier specifying how many times the element is repeated.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="quantifier"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Text.RegularExpression.Element.GetRandomString(System.Random)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Text.RegularExpression.Element.GetRandomStringImpl(System.Random)">
            <summary>
            Returns the random string that matches the regular expression element.
            </summary>
            <param name="random">A random number generator.</param>
            <returns>A random string.</returns>
        </member>
        <member name="M:Gallio.Common.Text.RegularExpression.ElementSet.#ctor(Gallio.Common.Text.RegularExpression.Quantifier,System.String)">
            <summary>
            Constructs an element representing a set of possible characters.
            </summary>
            <param name="quantifier">A quantifier specifying how many times the element is repeated.</param>
            <param name="raw">A raw string containing the characters to include into the set, 
            expressed in the usual regular expression syntax (example: "ABCX-Z0-9").</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="quantifier"/> or <paramref name="raw"/> are null.</exception>
        </member>
        <member name="M:Gallio.Common.Text.RegularExpression.ElementSet.#ctor(Gallio.Common.Text.RegularExpression.Quantifier,System.Char[])">
            <summary>
            Constructs an element representing a set of possible characters.
            </summary>
            <param name="quantifier">A quantifier specifying how many times the element is repeated.</param>
            <param name="characters">An array of characters to include into the set.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="quantifier"/> or <paramref name="characters"/> are null.</exception>
        </member>
        <member name="M:Gallio.Common.Text.RegularExpression.ElementSet.GetRandomStringImpl(System.Random)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Common.Text.RegularExpression.ElementEmpty">
            <summary>
            Represents an empty element in a regular expression composite tree.
            </summary>
        </member>
        <member name="T:Gallio.Common.Text.RegularExpression.ElementLiteral">
            <summary>
            Represents an invariant literal text in a regular expression tree.
            </summary>
        </member>
        <member name="M:Gallio.Common.Text.RegularExpression.ElementLiteral.#ctor(Gallio.Common.Text.RegularExpression.Quantifier,System.String)">
            <summary>
            Constructs an invariant literal text.
            </summary>
            <param name="quantifier">A quantifier specifying how many times the element is repeated.</param>
            <param name="literal">The invariant literal text.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="quantifier"/> or <paramref name="literal"/> are null.</exception>
        </member>
        <member name="M:Gallio.Common.Text.RegularExpression.ElementLiteral.GetRandomStringImpl(System.Random)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Text.RegularExpression.ElementEmpty.#ctor">
            <summary>
            Default constructor.
            </summary>
        </member>
        <member name="T:Gallio.Common.Text.RegularExpression.ElementGroup">
            <summary>
            Represents an element of a regular expression tree that serves as logical container child elements.
            </summary>
            <remarks>
            <para>
            It is usually the representation of a logical group, noted as "(...)" in a regular expression.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Common.Text.RegularExpression.ElementGroup.#ctor(Gallio.Common.Text.RegularExpression.Quantifier,System.Collections.Generic.IEnumerable{Gallio.Common.Text.RegularExpression.IElement})">
            <summary>
            Constructs a group element that contains child elements.
            </summary>
            <param name="quantifier">A quantifier specifying how many times the element is repeated.</param>
            <param name="children">The child elements.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="quantifier"/> or <paramref name="children"/> are null.</exception>
        </member>
        <member name="M:Gallio.Common.Text.RegularExpression.ElementGroup.GetRandomStringImpl(System.Random)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Common.Text.RegularExpression.RegexLiteException">
            <summary>
            This exception type is used to signal an error while parsing
            a simplified regular expression with the RegexLite parser.
            </summary>
        </member>
        <member name="M:Gallio.Common.Text.RegularExpression.RegexLiteException.#ctor">
            <summary>
            Creates a exception.
            </summary>
        </member>
        <member name="M:Gallio.Common.Text.RegularExpression.RegexLiteException.#ctor(System.String)">
            <summary>
            Creates a exception with the specified message..
            </summary>
            <param name="message">The message, or null if none.</param>
        </member>
        <member name="M:Gallio.Common.Text.RegularExpression.RegexLiteException.#ctor(System.String,System.Exception)">
            <summary>
            Creates a exception with the specified message and the inner exception.
            </summary>
            <param name="message">The message, or null if none.</param>
            <param name="innerException">The inner exception, or null if none.</param>
        </member>
        <member name="M:Gallio.Common.Text.RegularExpression.RegexLiteException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Creates a exception from serialization info.
            </summary>
            <param name="info">The serialization info.</param>
            <param name="context">The streaming context.</param>
        </member>
        <member name="T:Gallio.Common.Text.RegularExpression.Parser">
            <summary>
            Lightweight parser for simplified regular expressions.
            </summary>
        </member>
        <member name="M:Gallio.Common.Text.RegularExpression.Parser.Run(System.String)">
            <summary>
            RegexLite text parser.
            </summary>
            <param name="input">The text to be parsed.</param>
            <returns>A root element containing the resulting regular expression tree.</returns>
        </member>
        <member name="T:Gallio.Common.Text.RegularExpression.ParsingInfo">
            <summary>
            Provides information describing how to parse the current expression.
            </summary>
        </member>
        <member name="F:Gallio.Common.Text.RegularExpression.ParsingInfo.Root">
            <summary>
            Primary mode for parsing root expressions.
            </summary>
        </member>
        <member name="F:Gallio.Common.Text.RegularExpression.ParsingInfo.Group">
            <summary>
            Special mode for parsing logical groups "(...)".
            </summary>
        </member>
        <member name="F:Gallio.Common.Text.RegularExpression.ParsingInfo.Set">
            <summary>
            Special mode for parsing explicit sets "[...]".
            </summary>
        </member>
        <member name="M:Gallio.Common.Text.RegularExpression.ParsingInfo.IsInitiator(System.Char)">
            <summary>
            Determines whether the specified character is 
            the initiator character for the current parsing mode.
            </summary>
            <param name="character">The character to evaluate.</param>
            <returns>True if <paramref name="character"/> is an initiator; false otherwise.</returns>
        </member>
        <member name="M:Gallio.Common.Text.RegularExpression.ParsingInfo.IsTerminator(System.Char)">
            <summary>
            Determines whether the specified character is 
            the terminator character for the current parsing mode.
            </summary>
            <param name="character">The character to evaluate.</param>
            <returns>True if <paramref name="character"/> is a terminator; false otherwise.</returns>
        </member>
        <member name="M:Gallio.Common.Text.RegularExpression.ParsingInfo.ParseToken(System.String,Gallio.Common.Text.RegularExpression.Quantifier)">
            <summary>
            Parses the specified expression in the context of the actual parsing mode.
            </summary>
            <param name="token">The text to parse.</param>
            <param name="quantifier">A quantifier to attach to the resulting element.</param>
            <returns>A resulting element representing the expression.</returns>
        </member>
        <member name="M:Gallio.Common.Text.RegularExpression.ParsingInfo.FromInitiator(System.Char)">
            <summary>
            Returns the information container corresponding to the specified initiator character, 
            or the 'Root' parsing mode, if not found.
            </summary>
            <param name="initiator">The character to evaluate.</param>
            <returns>The resulting information container.</returns>
        </member>
        <member name="P:Gallio.Common.Text.RegularExpression.ParsingInfo.Initiator">
            <summary>
            Gets the initiator character.
            </summary>
            <remarks>
            <para>
            The initiator character is the character that starts of an inner expression.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Common.Text.RegularExpression.ParsingInfo.Terminator">
            <summary>
            Gets the terminator character.
            </summary>
            <remarks>
            <para>
            The initiator character is the character that ends an inner expression.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Common.Text.RegularExpression.ParsingInfo.IsRoot">
            <summary>
            Gets a value indicating if the actual parsing mode is the primary 'Root' mode.
            </summary>
        </member>
        <member name="P:Gallio.Common.Text.RegularExpression.ParsingInfo.AcceptMetacharacters">
            <summary>
            Gets a value indicating if the actual parsing mode should process metacharacters, 
            or just to ignore them for a later processing.
            </summary>
        </member>
        <member name="T:Gallio.Common.Text.RegularExpression.RegexLite">
            <summary>
            A lightweight simplified regular expression pattern.
            </summary>
            <remarks>
            <para>
            The following syntactic features are supported:
            <list type="bullet">
            <item>
            <strong>Logical Grouping</strong> : Group a part of the expression (<c>(...)</c>).
            </item>
            <item>
            <strong>Explicit Set</strong> : Define a set of possible characters (<c>[...]</c>). 
            Ranges defined with a tiret are accepted.
            </item>
            <item>
            <strong>Explicit Quantifier</strong> : Specify the number of times the previous expression must be repeated. 
            'Constant' (<c>{N}</c>) or 'Range' (<c>{N,M}</c>) syntax are both accepted.
            </item>
            <item>
            <strong>Zero Or One Quantifier Metacharacter</strong> : 0 or 1 of the previous expression (<c>?</c>).
            Same effect as <c>{0,1}</c>.
            </item>
            <item>
            <strong>Escape Character</strong> : Makes the next character literal instead of a special character (<c>\</c>).
            </item>
            </list>
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Common.Text.RegularExpression.RegexLite.#ctor(System.String)">
            <summary>
            Constructs a simplified regular expression pattern.
            </summary>
            <param name="pattern">The input pattern.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="pattern"/> is null.</exception>
            <exception cref="T:Gallio.Common.Text.RegularExpression.RegexLiteException">Thrown if <paramref name="pattern"/> is invalid.</exception>
        </member>
        <member name="M:Gallio.Common.Text.RegularExpression.RegexLite.GetRandomString(System.Random)">
            <summary>
            Returns the random string that matches the regular expression pattern.
            </summary>
            <param name="random">A random number generator.</param>
            <returns>A random string that matches the regular expression pattern.</returns>
        </member>
        <member name="P:Gallio.Common.Text.RegularExpression.RegexLite.Root">
            <summary>
            Gets the root element (for testing purpose.)
            </summary>
        </member>
        <member name="T:Gallio.Common.Text.RegularExpression.Quantifier">
            <summary>
            Quantifier for a regular expression element, 
            which specifies the number of times the element must be repeated.
            </summary>
        </member>
        <member name="F:Gallio.Common.Text.RegularExpression.Quantifier.One">
            <summary>
            Gets a special quantifier specifying a single occurence of an element (1 time).
            </summary>
        </member>
        <member name="F:Gallio.Common.Text.RegularExpression.Quantifier.ZeroOrOne">
            <summary>
            Gets a special quantifier specifying the optional occurence of an element (0 or 1 time).
            </summary>
        </member>
        <member name="M:Gallio.Common.Text.RegularExpression.Quantifier.#ctor(System.Int32)">
            <summary>
            Constructs a quantifier with a constant value.
            </summary>
            <param name="repeat">The number of repetitions.</param>
        </member>
        <member name="M:Gallio.Common.Text.RegularExpression.Quantifier.#ctor(System.Int32,System.Int32)">
            <summary>
            Constructs a quantifier specifying a variable number of times.
            </summary>
            <param name="minimum">The minimum value of the range.</param>
            <param name="maximum">The maximum value of the range.</param>
        </member>
        <member name="M:Gallio.Common.Text.RegularExpression.Quantifier.GetRandomRepeat(System.Random)">
            <summary>
            Returns a random number within the range of the quantifier.
            </summary>
            <param name="random">A random number generator.</param>
            <returns>A random number.</returns>
        </member>
        <member name="P:Gallio.Common.Text.RegularExpression.Quantifier.Minimum">
            <summary>
            Gets the minimum number of times.
            </summary>
        </member>
        <member name="P:Gallio.Common.Text.RegularExpression.Quantifier.Maximum">
            <summary>
            Gets the maximum number of times.
            </summary>
        </member>
        <member name="T:Gallio.Framework.Data.Generation.SequentialDecimalGenerator">
            <summary>
            Generator of sequential <see cref="T:System.Decimal"/> values.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Data.Generation.SequentialDecimalGenerator.#ctor">
            <summary>
            Default constructor.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Data.Generation.SequentialDecimalGenerator.GetStartStepCountSequence">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Data.Generation.SequentialDecimalGenerator.GetStartEndCountSequence">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Data.Generation.SequentialDecimalGenerator.GetStartEndStepSequence">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Framework.Data.Generation.SequentialDecimalGenerator.DefaultStep">
            <summary>
            Gets the default step.
            </summary>
        </member>
        <member name="T:Gallio.Framework.Data.Generation.RandomDecimalGenerator">
            <summary>
            Generator of random <see cref="T:System.Decimal"/> values within a given range.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Data.Generation.RandomDecimalGenerator.#ctor">
            <summary>
            Constructs a generator of random <see cref="T:System.Decimal"/> numbers.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Data.Generation.RandomDecimalGenerator.GetSequence">
            <inheritdoc/>
        </member>
        <member name="T:Gallio.Common.Condition">
            <summary>
            A condition is a simple light-weight mechanism for evaluating conditional
            expressions in a given context.
            </summary>
            <remarks>
            <para>
            Conditions are most useful for defining declarative conditional activation
            expressions in <see cref="T:Gallio.Runtime.Extensibility.Traits"/>.  For example, we might wish to automatically
            activate a plugin or enable an action when a given property appears in the
            conditional context.
            </para>
            <para>
            The currently-supported conditional expression syntax is as follows:
            <list type="bullet">
            <item>"${namespace:identifier}": Specifies a condition based on the existence
            of a property with a particular identifier within the specified namespace.
            eg. "${env:VariableName}" might evaluate to true if the "VariableName" environment
            variable is defined.</item>
            <item>"ExprA or ExprB": Given two conditions ExprA and ExprB produces a combined
            condition that evaluates to true when either on is true.</item>
            <item>An empty condition is invalid.</item>
            </list>
            </para>
            <para>
            Note: This abstraction is a work in progress.  If you need additional
            conditional expression types, operators or combinators please post
            a feature request to the Gallio issue tracker.  Later we may open
            this up similar to the test Filter mechanism.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Common.Condition.Evaluate(Gallio.Common.ConditionContext)">
            <summary>
            Returns true if the condition is satisfied in the given context.
            </summary>
            <param name="context">The condition evaluation context.</param>
            <returns>True if the condition is satisfied.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="context"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Condition.Parse(System.String)">
            <summary>
            Parses a condition from an expression.
            </summary>
            <param name="expression">The expression to parse.</param>
            <returns>The expression.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="expression"/> is null.</exception>
            <exception cref="T:System.FormatException">Thrown if <paramref name="expression"/> cannot be parsed.</exception>
        </member>
        <member name="M:Gallio.Common.Condition.ToString">
            <summary>
            Returns the conditional expression as a string.
            </summary>
            <returns>The expression string.</returns>
        </member>
        <member name="T:Gallio.Common.ConditionContext">
            <summary>
            A condition context provides information used to evaluate whether a condition holds true.
            </summary>
        </member>
        <member name="M:Gallio.Common.ConditionContext.HasProperty(System.String,System.String)">
            <summary>
            Returns true if the context contains a value for a given property.
            </summary>
            <param name="namespace">The property namespace.</param>
            <param name="identifier">The property identifier.</param>
            <returns>True if the context has the specified property.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="namespace"/>
            or <paramref name="identifier"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.ConditionContext.HasPropertyImpl(System.String,System.String)">
            <summary>
            Returns true if the context contains a value for a given property.
            </summary>
            <param name="namespace">The property namespace, not null.</param>
            <param name="identifier">The property identifier, not null.</param>
            <returns>True if the context has the specified property.</returns>
        </member>
        <member name="T:Gallio.Framework.Data.Generation.GenerationException">
            <summary>
            This exception type is used to signal an error while using a data generator.
            The exception message, if present, should explain the reason that the test was generator has failed.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Data.Generation.GenerationException.#ctor">
            <summary>
            Creates a exception.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Data.Generation.GenerationException.#ctor(System.String)">
            <summary>
            Creates a exception with the specified message..
            </summary>
            <param name="message">The message, or null if none.</param>
        </member>
        <member name="M:Gallio.Framework.Data.Generation.GenerationException.#ctor(System.String,System.Exception)">
            <summary>
            Creates a exception with the specified message and the inner exception.
            </summary>
            <param name="message">The message, or null if none.</param>
            <param name="innerException">The inner exception, or null if none.</param>
        </member>
        <member name="M:Gallio.Framework.Data.Generation.GenerationException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Creates a exception from serialization info.
            </summary>
            <param name="info">The serialization info.</param>
            <param name="context">The streaming context.</param>
        </member>
        <member name="T:Gallio.Framework.Data.NamespaceDoc">
            <summary>
            The Gallio.Framework.Data namespace provides a framework for manipulating data
            from multiple data sources and performing data binding.
            </summary>
        </member>
        <member name="T:Gallio.Framework.NamespaceDoc">
            <summary>
            The Gallio.Framework namespace provides data types and services for test writers
            and framework implementors.
            </summary>
        </member>
        <member name="T:Gallio.Framework.Pattern.FixtureMemberInvoker`1">
            <summary>
            Finds and invokes a member of a test fixture, a nested type of the test fixture,
            or an external type.
            </summary>
            <remarks>
            <para>
            The member is searched among the fields, the properties, and the methods. It might be
            a public or a non-public member. If the member belongs directly to the test fixture, it
            might be an instance member. Otherwise, it must be a static member.
            </para>
            </remarks>
            <typeparam name="TOutput">The type of the result returned by the member invoked.</typeparam>
        </member>
        <member name="M:Gallio.Framework.Pattern.FixtureMemberInvoker`1.#ctor(System.Type,Gallio.Framework.Pattern.IPatternScope,System.String)">
            <summary>
            Constructs a invoker for a member of a test fixture, a nested type of the test fixture,
            or an external type.
            </summary>
            <remarks>
            <para>
            The member is searched among the fields, the properties, and the methods of the test fixture
            or the specified <paramref name="type"/>.
            </para>
            </remarks>
            <param name="type">The owning type of the searched member, or null if it is assumed to be the fixture class.</param>
            <param name="scope">The scope of the test.</param>
            <param name="memberName">The name of the searched member.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="scope"/> or <paramref name="memberName"/> are null.</exception>
        </member>
        <member name="M:Gallio.Framework.Pattern.FixtureMemberInvoker`1.Invoke">
            <summary>
            Invokes the argument-less member and returns the resulting value.
            </summary>
            <returns>The resulting value.</returns>
        </member>
        <member name="M:Gallio.Framework.Pattern.FixtureMemberInvoker`1.Invoke(System.Object[])">
            <summary>
            Invokes the member with the specified arguments and returns the resulting value.
            </summary>
            <param name="args">The arguments to pass to the member.</param>
            <returns>The resulting value.</returns>
        </member>
        <member name="M:Gallio.Framework.Pattern.FixtureMemberInvoker`1.Invoke(Gallio.Framework.Pattern.FixtureMemberInvokerTargets,System.Object[])">
            <summary>
            Invokes the member with the specified arguments and returns the resulting value.
            </summary>
            <param name="targets">The arguments to pass to the member.</param>
            <param name="args">The arguments to pass to the member.</param>
            <returns>The resulting value.</returns>
        </member>
        <member name="T:Gallio.Framework.Pattern.NamespaceDoc">
            <summary>
            The Gallio.Framework.Pattern namespace provides the Pattern Test Framework which
            can serve as the foundation for building new test frameworks.
            </summary>
            <remarks>
            <para>
            The Pattern Test Framework is based on the idea of extensible and composable units
            called patterns (<see cref="T:Gallio.Framework.Pattern.IPattern"/>).  Patterns are usually encoded as .Net attributes
            and applied to test assemblies, types and members to define tests.
            </para>
            <para>
            MbUnit is based on the Pattern Test Framework.
            </para>
            <para>
            If you are implementing a new attribute-based test framework then you may find it
            beneficial to extend the Pattern Test Framework.  Alternately you may implement
            <see cref="T:Gallio.Model.ITestFramework"/> directly.
            </para>
            </remarks>
            <seealso cref="T:Gallio.Framework.Pattern.IPattern"/>
            <seealso cref="T:Gallio.Framework.Pattern.PatternTestFramework"/>
        </member>
        <member name="T:Gallio.Framework.Utilities.NamespaceDoc">
            <summary>
            The Gallio.Framework.Utilities namespace provides utilities for framework implementors.
            </summary>
        </member>
        <member name="T:Gallio.Model.Commands.ITestCommandFactory">
            <summary>
            Generates test commands from a tree of tests.
            </summary>
        </member>
        <member name="M:Gallio.Model.Commands.ITestCommandFactory.BuildCommands(Gallio.Model.Tree.TestModel,Gallio.Model.Filters.FilterSet{Gallio.Model.Filters.ITestDescriptor},System.Boolean,Gallio.Model.Contexts.ITestContextManager)">
            <summary>
            Recursively builds a tree of test commands.
            </summary>
            <param name="testModel">The test model.</param>
            <param name="filterSet">The filter set for the test model.</param>
            <param name="exactFilter">If true, only the specified tests are included, otherwise children
            of the selected tests are automatically included.</param>
            <param name="contextManager">The test context manager.</param>
            <returns>The root test command or null if none of the tests in
            the subtree including <paramref name="testModel"/> matched the filter.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="testModel"/>,
            <paramref name="filterSet"/> or <paramref name="contextManager"/> is null.</exception>
            <exception cref="T:Gallio.Model.ModelException">Thrown if an invalid test dependency is found.</exception>
        </member>
        <member name="T:Gallio.Model.Commands.NamespaceDoc">
            <summary>
            The Gallio.Model.Commands namespace provides an optional abstraction for
            decomposing a <see cref="T:Gallio.Model.Tree.TestModel"/> into a tree of <see cref="T:Gallio.Model.Commands.ITestCommand"/>s
            sorted according to test dependencies and order constraints.
            </summary>
            <remarks>
            <para>
            The types in this namespace are provided as an optional convenience for implementing
            a <see cref="T:Gallio.Model.ITestDriver"/>.
            </para>
            </remarks>
        </member>
        <member name="T:Gallio.Model.Contexts.NamespaceDoc">
            <summary>
            The Gallio.Model.Contexts namespace provides an optional abstraction for
            associating a <see cref="T:Gallio.Model.Contexts.ITestContext"/> with a thread which can then
            be used to track the current test and to publish test messages to a
            <see cref="T:Gallio.Common.Messaging.IMessageSink"/>.
            </summary>
            <remarks>
            <para>
            The types in this namespace are provided as an optional convenience for implementing
            a <see cref="T:Gallio.Model.ITestDriver"/>.
            </para>
            </remarks>
        </member>
        <member name="T:Gallio.Model.Environments.CustomTestEnvironment">
            <summary>
            Test environmnent hosting custom actions to be run on AppDomain/Thread set-up and teardown.
            </summary>
        </member>
        <member name="T:Gallio.Model.Environments.BaseTestEnvironment">
            <summary>
            Base implementation of a test environment.
            </summary>
        </member>
        <member name="T:Gallio.Model.Environments.ITestEnvironment">
            <summary>
            The test environment configures global behavior related to preparing
            the test execution environment for running tests and tearing them down.
            </summary>
        </member>
        <member name="M:Gallio.Model.Environments.ITestEnvironment.SetUpAppDomain">
            <summary>
            Sets up the current test AppDomain.
            </summary>
            <returns>Returns an object that when disposed causes the test environment to be torn down, or null if none.</returns>
        </member>
        <member name="M:Gallio.Model.Environments.ITestEnvironment.SetUpThread">
            <summary>
            Sets up the current test Thread.
            </summary>
            <returns>Returns an object that when disposed causes the test environment to be torn down, or null if none.</returns>
        </member>
        <member name="M:Gallio.Model.Environments.BaseTestEnvironment.SetUpAppDomain">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.Environments.BaseTestEnvironment.SetUpThread">
            <inheritdoc />
        </member>
        <member name="F:Gallio.Model.Environments.CustomTestEnvironment.SetUpAppDomainChain">
            <summary>
            A chain of actions to be run on AppDomain set-up.
            </summary>
        </member>
        <member name="F:Gallio.Model.Environments.CustomTestEnvironment.TeardownAppDomainChain">
            <summary>
            A chain of actions to be run on AppDomain teardown.
            </summary>
        </member>
        <member name="F:Gallio.Model.Environments.CustomTestEnvironment.SetUpThreadChain">
            <summary>
            A chain of actions to be run on Thread set-up.
            </summary>
        </member>
        <member name="F:Gallio.Model.Environments.CustomTestEnvironment.TeardownThreadChain">
            <summary>
            A chain of actions to be run on Thread teardown.
            </summary>
        </member>
        <member name="M:Gallio.Model.Environments.CustomTestEnvironment.SetUpAppDomain">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.Environments.CustomTestEnvironment.SetUpThread">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Model.FallbackTestDriver">
            <summary>
            A test driver implementation used when no test framework supports a given test file.
            </summary>
        </member>
        <member name="T:Gallio.Model.BaseTestDriver">
            <summary>
            A base test driver that does nothing.
            </summary>
        </member>
        <member name="T:Gallio.Model.ITestDriver">
            <summary>
            Provides test framework services for exploring and running tests.
            </summary>
        </member>
        <member name="M:Gallio.Model.ITestDriver.GetTestParts(Gallio.Common.Reflection.IReflectionPolicy,Gallio.Common.Reflection.ICodeElementInfo)">
            <summary>
            Gets the test parts represented by a code element.
            </summary>
            <param name="reflectionPolicy">The reflection policy.</param>
            <param name="codeElement">The code element.</param>
            <returns>The test parts, or an empty array if none.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="reflectionPolicy"/>
            or <paramref name="codeElement"/> is null.</exception>
        </member>
        <member name="M:Gallio.Model.ITestDriver.Describe(Gallio.Common.Reflection.IReflectionPolicy,System.Collections.Generic.IList{Gallio.Common.Reflection.ICodeElementInfo},Gallio.Model.TestExplorationOptions,Gallio.Common.Messaging.IMessageSink,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
            <summary>
            Describes tests via reflection over code elements.
            </summary>
            <param name="reflectionPolicy">The reflection policy.</param>
            <param name="codeElements">The list of code elements, usually <see cref="T:Gallio.Common.Reflection.ITypeInfo"/>
            and <see cref="T:Gallio.Common.Reflection.IAssemblyInfo"/> objects, that might contain tests to be described.</param>
            <param name="testExplorationOptions">The test exploration options.</param>
            <param name="messageSink">The message sink to receive test exploration messages.</param>
            <param name="progressMonitor">The progress monitor.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="reflectionPolicy"/>,
            <paramref name="codeElements"/>, <paramref name="testExplorationOptions"/>, <paramref name="messageSink"/>
            or <paramref name="progressMonitor"/> is null.</exception>
        </member>
        <member name="M:Gallio.Model.ITestDriver.Explore(Gallio.Model.Isolation.ITestIsolationContext,Gallio.Model.TestPackage,Gallio.Model.TestExplorationOptions,Gallio.Common.Messaging.IMessageSink,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
            <summary>
            Explores tests in a test package.
            </summary>
            <param name="testIsolationContext">The test isolation context.</param>
            <param name="testPackage">The test package.</param>
            <param name="testExplorationOptions">The test exploration options.</param>
            <param name="messageSink">The message sink to receive test exploration messages.</param>
            <param name="progressMonitor">The progress monitor.</param>
            <returns>The test report.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="testIsolationContext"/>,
            <paramref name="testPackage"/>, <paramref name="testExplorationOptions"/>, <paramref name="messageSink"/>
            or <paramref name="progressMonitor"/> is null.</exception>
        </member>
        <member name="M:Gallio.Model.ITestDriver.Run(Gallio.Model.Isolation.ITestIsolationContext,Gallio.Model.TestPackage,Gallio.Model.TestExplorationOptions,Gallio.Model.TestExecutionOptions,Gallio.Common.Messaging.IMessageSink,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
            <summary>
            Runs tests from a test package.
            </summary>
            <param name="testIsolationContext">The test isolation context.</param>
            <param name="testPackage">The test package.</param>
            <param name="testExplorationOptions">The test exploration options.</param>
            <param name="testExecutionOptions">The test execution options.</param>
            <param name="messageSink">The message sink to receive test exploration and execution messages.</param>
            <param name="progressMonitor">The progress monitor.</param>
            <returns>The test report.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="testIsolationContext"/>,
            <paramref name="testPackage"/>, <paramref name="testExplorationOptions"/>, <paramref name="testExecutionOptions"/>,
            <paramref name="messageSink"/> or <paramref name="progressMonitor"/> is null.</exception>
        </member>
        <member name="M:Gallio.Model.BaseTestDriver.GetTestParts(Gallio.Common.Reflection.IReflectionPolicy,Gallio.Common.Reflection.ICodeElementInfo)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.BaseTestDriver.Describe(Gallio.Common.Reflection.IReflectionPolicy,System.Collections.Generic.IList{Gallio.Common.Reflection.ICodeElementInfo},Gallio.Model.TestExplorationOptions,Gallio.Common.Messaging.IMessageSink,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.BaseTestDriver.Explore(Gallio.Model.Isolation.ITestIsolationContext,Gallio.Model.TestPackage,Gallio.Model.TestExplorationOptions,Gallio.Common.Messaging.IMessageSink,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.BaseTestDriver.Run(Gallio.Model.Isolation.ITestIsolationContext,Gallio.Model.TestPackage,Gallio.Model.TestExplorationOptions,Gallio.Model.TestExecutionOptions,Gallio.Common.Messaging.IMessageSink,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.BaseTestDriver.GetTestPartsImpl(Gallio.Common.Reflection.IReflectionPolicy,Gallio.Common.Reflection.ICodeElementInfo)">
            <summary>
            Gets the test parts represented by a code element.
            </summary>
            <remarks>
            <para>
            The default implementation always returns an empty array.  Subclasses may override
            this method to provide information about code elements that represent tests.
            </para>
            </remarks>
            <param name="reflectionPolicy">The reflection policy, not null.</param>
            <param name="codeElement">The code element, not null.</param>
            <returns>The test parts, or an empty array if none.</returns>
        </member>
        <member name="M:Gallio.Model.BaseTestDriver.DescribeImpl(Gallio.Common.Reflection.IReflectionPolicy,System.Collections.Generic.IList{Gallio.Common.Reflection.ICodeElementInfo},Gallio.Model.TestExplorationOptions,Gallio.Common.Messaging.IMessageSink,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
            <summary>
            Describes tests via reflection over code elements.
            </summary>
            <remarks>
            <para>
            The default implementation does nothing.  Subclasses may override to enable tests
            to be described via reflection only.  This is required for ReSharper integration.
            </para>
            </remarks>
            <param name="reflectionPolicy">The reflection policy, not null.</param>
            <param name="codeElements">The enumeration of code elements, usually <see cref="T:Gallio.Common.Reflection.ITypeInfo"/>
            and <see cref="T:Gallio.Common.Reflection.IAssemblyInfo"/> objects, that might contain tests to be described, not null.</param>
            <param name="testExplorationOptions">The test exploration options, not null.</param>
            <param name="messageSink">The message sink to receive test exploration messages, not null.</param>
            <param name="progressMonitor">The progress monitor, not null.</param>
        </member>
        <member name="M:Gallio.Model.BaseTestDriver.ExploreImpl(Gallio.Model.Isolation.ITestIsolationContext,Gallio.Model.TestPackage,Gallio.Model.TestExplorationOptions,Gallio.Common.Messaging.IMessageSink,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
            <summary>
            Explores tests from a test package.
            </summary>
            <remarks>
            <para>
            The default implementation does nothing.  Subclasses may override to enable tests
            to be explored.  This is required for presenting lists of tests in test runners like Icarus.
            </para>
            </remarks>
            <param name="testIsolationContext">The test isolation context, not null.</param>
            <param name="testPackage">The test package, not null.</param>
            <param name="testExplorationOptions">The test exploration options, not null.</param>
            <param name="messageSink">The message sink to receive test exploration messages, not null.</param>
            <param name="progressMonitor">The progress monitor, not null.</param>
            <returns>The test report.</returns>
        </member>
        <member name="M:Gallio.Model.BaseTestDriver.RunImpl(Gallio.Model.Isolation.ITestIsolationContext,Gallio.Model.TestPackage,Gallio.Model.TestExplorationOptions,Gallio.Model.TestExecutionOptions,Gallio.Common.Messaging.IMessageSink,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
            <summary>
            Runs tests from a test package.
            </summary>
            <remarks>
            <para>
            The default implementation does nothing.  Subclasses may override to enable tests
            to be run.  This is required for actually running tests.
            </para>
            </remarks>
            <param name="testIsolationContext">The test isolation context, not null.</param>
            <param name="testPackage">The test package, not null.</param>
            <param name="testExplorationOptions">The test exploration options, not null.</param>
            <param name="testExecutionOptions">The test execution options, not null.</param>
            <param name="messageSink">The message sink to receive test exploration and execution messages, not null.</param>
            <param name="progressMonitor">The progress monitor, not null.</param>
            <returns>The test report.</returns>
        </member>
        <member name="M:Gallio.Model.FallbackTestDriver.#ctor(Gallio.Model.TestFrameworkOptions)">
            <summary>
            Creates the fallback test driver.
            </summary>
            <param name="testFrameworkOptions">The test framework options.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="testFrameworkOptions"/> is null.</exception>
        </member>
        <member name="M:Gallio.Model.FallbackTestDriver.DescribeImpl(Gallio.Common.Reflection.IReflectionPolicy,System.Collections.Generic.IList{Gallio.Common.Reflection.ICodeElementInfo},Gallio.Model.TestExplorationOptions,Gallio.Common.Messaging.IMessageSink,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.FallbackTestDriver.ExploreImpl(Gallio.Model.Isolation.ITestIsolationContext,Gallio.Model.TestPackage,Gallio.Model.TestExplorationOptions,Gallio.Common.Messaging.IMessageSink,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.FallbackTestDriver.RunImpl(Gallio.Model.Isolation.ITestIsolationContext,Gallio.Model.TestPackage,Gallio.Model.TestExplorationOptions,Gallio.Model.TestExecutionOptions,Gallio.Common.Messaging.IMessageSink,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Model.FallbackTestDriver.FallbackExplanation">
            <summary>
            Gets the fallback explanation.
            </summary>
        </member>
        <member name="T:Gallio.Model.TestPart">
            <summary>
            Describes the function of a code element in a test.
            </summary>
        </member>
        <member name="P:Gallio.Model.TestPart.IsTest">
            <summary>
            Gets whether the part represents a test case or test container.
            </summary>
        </member>
        <member name="P:Gallio.Model.TestPart.IsTestCase">
            <summary>
            Gets or sets whether the part represents a test case such as a test method.
            </summary>
        </member>
        <member name="P:Gallio.Model.TestPart.IsTestContainer">
            <summary>
            Gets or sets whether the part represents a test container such as a test class.
            </summary>
        </member>
        <member name="P:Gallio.Model.TestPart.IsTestContribution">
            <summary>
            Gets or sets whether the part represents some contribution to a test
            such as a setup or teardown method, a test parameter, or a factory.
            </summary>
        </member>
        <member name="T:Gallio.Model.TestFrameworkSelection">
            <summary>
            Specifies a test frameworks that has been selected by a <see cref="T:Gallio.Model.TestFrameworkSelector"/>.
            </summary>
        </member>
        <member name="M:Gallio.Model.TestFrameworkSelection.#ctor(Gallio.Runtime.Extensibility.ComponentHandle{Gallio.Model.ITestFramework,Gallio.Model.TestFrameworkTraits},Gallio.Model.TestFrameworkOptions,System.Boolean)">
            <summary>
            Creates a test framework selection.
            </summary>
            <param name="testFrameworkHandle">The selected test framework handle.</param>
            <param name="testFrameworkOptions">The test framework options.</param>
            <param name="isFallback">True if the selection includes the fallback test
            framework because a test file is not supported by any other registered
            test framework.  <seealso cref="P:Gallio.Model.TestFrameworkSelector.FallbackMode"/></param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="testFrameworkHandle"/>
            or <paramref name="testFrameworkOptions"/> is null.</exception>
        </member>
        <member name="P:Gallio.Model.TestFrameworkSelection.TestFrameworkHandle">
            <summary>
            Gets the selected test framework handle.
            </summary>
        </member>
        <member name="P:Gallio.Model.TestFrameworkSelection.TestFrameworkOptions">
            <summary>
            Gets the test framework options.
            </summary>
        </member>
        <member name="P:Gallio.Model.TestFrameworkSelection.IsFallback">
            <summary>
            Returns true if the selected test framework is a fallback because no other
            registered test framework supports the requested test resources.
            </summary>
            <seealso cref="P:Gallio.Model.TestFrameworkSelector.FallbackMode"/>
        </member>
        <member name="T:Gallio.Model.TestFrameworkOptions">
            <summary>
            Provides options that configure a test framework.
            </summary>
        </member>
        <member name="M:Gallio.Model.TestFrameworkOptions.#ctor">
            <summary>
            Creates a default set of test framework options.
            </summary>
        </member>
        <member name="M:Gallio.Model.TestFrameworkOptions.ClearProperties">
            <summary>
            Clears the collection of properties.
            </summary>
        </member>
        <member name="M:Gallio.Model.TestFrameworkOptions.AddProperty(System.String,System.String)">
            <summary>
            Adds a property key/value pair.
            </summary>
            <param name="key">The property key.</param>
            <param name="value">The property value.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="key"/> or <paramref name="value"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Thrown if <paramref name="key"/> is already in the property set.</exception>
        </member>
        <member name="M:Gallio.Model.TestFrameworkOptions.RemoveProperty(System.String)">
            <summary>
            Removes a property key/value pair.
            </summary>
            <param name="key">The property key.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="key"/> is null.</exception>
        </member>
        <member name="M:Gallio.Model.TestFrameworkOptions.Copy">
            <summary>
            Creates a copy of the options.
            </summary>
            <returns>The copy.</returns>
        </member>
        <member name="P:Gallio.Model.TestFrameworkOptions.Properties">
            <summary>
            Gets a read-only collection of configuration properties for the test framework.
            </summary>
        </member>
        <member name="T:Gallio.Model.FallbackTestFramework">
            <summary>
            A test framework implementation used when no test framework supports a given test file.
            </summary>
        </member>
        <member name="T:Gallio.Model.BaseTestFramework">
            <summary>
            Abstract base class for test framework implementations.
            </summary>
        </member>
        <member name="T:Gallio.Model.ITestFramework">
            <summary>
            The test framework service provides support for enumerating and executing
            tests that belong to some test framework.
            </summary>
            <remarks>
            <para>
            A new third party test framework may be supported by defining and registering 
            a suitable implementation of this interface.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Model.ITestFramework.GetTestDriverFactory">
            <summary>
            Gets the test driver factory for the framework.
            </summary>
            <remarks>
            <para>
            When multiple test frameworks result the same test driver factory
            then only one instance of the test driver will be created and it will
            be shared by those frameworks.  Factory identity is based on delegate
            equality.
            </para>
            </remarks>
            <returns>The test driver factory.</returns>
        </member>
        <member name="M:Gallio.Model.BaseTestFramework.GetTestDriverFactory">
            <inheritdoc />
        </member>
        <member name="F:Gallio.Model.FallbackTestFramework.FallbackExplanationKey">
            <summary>
            The test framework option key used to explain why the fallback test framework is being used.
            </summary>
            <remarks>
            The associated value should be a plain test message describing the problem with
            the test file.
            </remarks>
        </member>
        <member name="M:Gallio.Model.FallbackTestFramework.GetTestDriverFactory">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Model.TestFrameworkFallbackMode">
            <summary>
            Specifies how Gallio responds to test files that do not match any frameworks.
            </summary>
            <seealso cref="T:Gallio.Model.TestFrameworkSelector"/>
        </member>
        <member name="F:Gallio.Model.TestFrameworkFallbackMode.Default">
            <summary>
            Default match: always fallback to the fallback test framework when 
            a file does not satisfy the constraits of any other
            test framework exactly.
            </summary>
        </member>
        <member name="F:Gallio.Model.TestFrameworkFallbackMode.Approximate">
            <summary>
            Approximate match: fallback to the fallback test framework when
            a file does not satisfy the constraints of any other
            test framework exactly but appears to be an approximate match
            for one of them (perhaps differing in version only).  Otherwise
            the file is not considered a test file.
            </summary>
        </member>
        <member name="F:Gallio.Model.TestFrameworkFallbackMode.Strict">
            <summary>
            Strict match: no fallback.  If a file does not satisfy the
            constraints of any framework exactly then it is not considered a test file.
            </summary>
        </member>
        <member name="T:Gallio.Model.Environments.ConsoleTestEnvironment">
            <summary>
            Sets up console I/O streams.
            </summary>
        </member>
        <member name="M:Gallio.Model.Environments.ConsoleTestEnvironment.SetUpAppDomain">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Model.Environments.ContextualLogTextWriter">
            <summary>
            A contextual log text writer messages to a named log stream in the log associated
            with the test execution context that is active at the time each message is written.
            </summary>
        </member>
        <member name="M:Gallio.Model.Environments.ContextualLogTextWriter.#ctor(System.String)">
            <summary>
            Creates a text writer that writes to the specified execution log stream.
            </summary>
            <param name="streamName">The execution log stream name.</param>
        </member>
        <member name="M:Gallio.Model.Environments.ContextualLogTextWriter.Write(System.String)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.Environments.ContextualLogTextWriter.Write(System.Char)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.Environments.ContextualLogTextWriter.Write(System.Char[],System.Int32,System.Int32)">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Model.Environments.ContextualLogTextWriter.NewLine">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Model.Environments.ContextualLogTextWriter.Encoding">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Model.Environments.ContextualLogTraceListener">
            <summary>
            A contextual log trace listener messages to a named log stream in the log associated
            with the test execution context that is active at the time each message is written.
            </summary>
        </member>
        <member name="M:Gallio.Model.Environments.ContextualLogTraceListener.#ctor(System.String)">
            <summary>
            Creates a trace listener that writes to the specified execution log stream.
            </summary>
            <param name="streamName">The execution log stream name.</param>
        </member>
        <member name="M:Gallio.Model.Environments.ContextualLogTraceListener.Write(System.String)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.Environments.ContextualLogTraceListener.WriteLine(System.String)">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Model.Environments.ContextualLogTraceListener.IsThreadSafe">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Model.Environments.DefaultTestEnvironmentManager">
            <summary>
            Default implementation of a test environment manager.
            </summary>
        </member>
        <member name="T:Gallio.Model.Environments.ITestEnvironmentManager">
            <summary>
            The test environment manager configures test AppDomains and threads.
            </summary>
        </member>
        <member name="M:Gallio.Model.Environments.ITestEnvironmentManager.SetUpAppDomain">
            <summary>
            Sets up the current test AppDomain.
            </summary>
            <returns>Returns an object that when disposed causes the test environment to be torn down, or null if none.</returns>
        </member>
        <member name="M:Gallio.Model.Environments.ITestEnvironmentManager.SetUpThread">
            <summary>
            Sets up the current test Thread.
            </summary>
            <returns>Returns an object that when disposed causes the test environment to be torn down, or null if none.</returns>
        </member>
        <member name="M:Gallio.Model.Environments.DefaultTestEnvironmentManager.#ctor(Gallio.Model.Environments.ITestEnvironment[])">
            <summary>
            Creates a test environment manager.
            </summary>
            <param name="environments">The environments, not null.</param>
        </member>
        <member name="M:Gallio.Model.Environments.DefaultTestEnvironmentManager.SetUpAppDomain">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.Environments.DefaultTestEnvironmentManager.SetUpThread">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Model.Environments.NamespaceDoc">
            <summary>
            The Gallio.Model.Environments namespace provides an optional abstraction for
            configuring the local test environment during test exploration and execution.
            </summary>
            <remarks>
            <para>
            The types in this namespace are provided as an optional convenience for implementing
            a <see cref="T:Gallio.Model.ITestDriver"/>.
            </para>
            </remarks>
        </member>
        <member name="T:Gallio.Model.Environments.TestEnvironmentTraits">
            <summary>
            Specifies traits for <see cref="T:Gallio.Model.Environments.ITestEnvironment"/>.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.Extensibility.Traits">
            <summary>
            The base class for plugin, service or component traits.
            </summary>
            <remarks>
            <para>
            Subclasses should include properties with getters and setters for binding
            configuration values associated with services (aka. traits).  They may also
            include methods and other service-specific functionality based on the traits.
            </para>
            <para>
            Traits objects are instantiated in the same way as other components.  The container
            injects required dependencies (on services or configuration values) in the constructor
            and injects optional dependencies into settable properties.
            </para>
            </remarks>
        </member>
        <member name="T:Gallio.Model.Environments.TestEnvironmentAwareThreadTask">
            <summary>
            A thread task that uses the <see cref="T:Gallio.Model.Environments.ITestEnvironmentManager"/> to configure
            the test environment for the thread.
            </summary>
        </member>
        <member name="M:Gallio.Model.Environments.TestEnvironmentAwareThreadTask.#ctor(System.String,Gallio.Common.Func{System.Object},Gallio.Model.Environments.ITestEnvironmentManager)">
            <summary>
            Creates a task that will execute code within a new locally running thread
            test thread and a configured test environemnt.
            When the task terminates successfully, its result will contain the value
            returned by <paramref name="func"/>.
            </summary>
            <param name="name">The name of the task.</param>
            <param name="func">The function to perform within the thread.</param>
            <param name="environmentManager">The test environment manager, or null to use the default environment manager.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="name"/> 
            or <paramref name="func"/> is null.</exception>
        </member>
        <member name="M:Gallio.Model.Environments.TestEnvironmentAwareThreadTask.#ctor(System.String,Gallio.Common.Action,Gallio.Model.Environments.ITestEnvironmentManager)">
            <summary>
            Creates a task that will execute code within a new locally running thread
            test thread and a configured test environemnt.
            When the task terminates successfully, its result will contain the value <c>null</c>.
            </summary>
            <param name="name">The name of the task.</param>
            <param name="action">The action to perform within the thread.</param>
            <param name="environmentManager">The test environment manager, or null to use the default environment manager.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="name"/> 
            or <paramref name="action"/> is null.</exception>
        </member>
        <member name="M:Gallio.Model.Environments.TestEnvironmentAwareThreadTask.BeforeTask">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.Environments.TestEnvironmentAwareThreadTask.AfterTask">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Model.Environments.TraceTestEnvironment">
            <summary>
            Sets up trace listeners.
            </summary>
        </member>
        <member name="M:Gallio.Model.Environments.TraceTestEnvironment.SetUpAppDomain">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Model.Environments.UnhandledExceptionTestEnvironment">
            <summary>
            Logs unhandled exceptions instead of killing the AppDomain.
            </summary>
        </member>
        <member name="M:Gallio.Model.Environments.UnhandledExceptionTestEnvironment.SetUpAppDomain">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Model.Environments.WindowsFormsTestEnvironment">
            <summary>
            Ensures Windows Forms applications can be tested safely.
            </summary>
            <remarks>
            <para>
            This environment disables <see cref="P:System.Windows.Forms.WindowsFormsSynchronizationContext.AutoInstall"/>
            because it can cause problems with tests that use Windows Forms and that require COM
            message pumping.  Just because a thread happens to instantiate a Control does
            not imply that it should always be enlisted into the Windows Forms synchronization context.
            </para>
            <para>
            Specifically this setting change resolves an obscure hangs that can occur.  Creating
            a <see cref="T:System.Windows.Forms.Form"/> will auto-register the WindowsFormsSynchronizationContext.  This
            is fine as long as a message pump is running in the thread.  However as is typical with
            tests, such message pumps are short-lived so soon enough there is no pump.
            Now when a system event like UserPreferenceChanged occurs, the <see cref="T:Microsoft.Win32.SystemEvents"/>
            class will try to synchronize with the registered handler using a WindowsFormsSynchronizationContext
            but there is no pump running.  The call hangs indefinitely.  What's more, the test
            runner will not be able to unload the AppDomain because it will remain stuck in
            native code!
            </para>
            <para>
            As a work-around, we disable auto-installation of the Windows Forms synchronization context.
            </para>
            <para>
            For more information, see the following:
            http://ikriv.com/en/prog/info/dotnet/MysteriousHang.html
            http://www.aaronlerch.com/blog/2008/12/15/debugging-ui/
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Model.Environments.WindowsFormsTestEnvironment.SetUpThread">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Model.Helpers.TestControllerProvider">
            <summary>
            Gets a test controller for a subtree of tests.
            </summary>
            <param name="test">The test.</param>
            <returns>The test controller or null if there is no specific controller
            available for the test so the test should be executed using a default rule.</returns>
        </member>
        <member name="T:Gallio.Model.Helpers.DelegatingTestController">
            <summary>
            A test controller that recursively traverses a hierarchy of test commands and
            delegates to another test controller based on a <see cref="T:Gallio.Model.Helpers.TestControllerProvider"/>.
            </summary>
        </member>
        <member name="T:Gallio.Model.Helpers.TestController">
            <summary>
            A test controller executes tests defined by a tree of <see cref="T:Gallio.Model.Commands.ITestCommand"/>s.
            </summary>
            <remarks>
            <para>
            A test controller may be stateful because it is used for only one test run then disposed.
            </para>
            <para>
            Subclasses of this class provide the algorithm used to execute the commands.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Model.Helpers.TestController.Dispose">
            <summary>
            Disposes the test controller.
            </summary>
        </member>
        <member name="M:Gallio.Model.Helpers.TestController.Dispose(System.Boolean)">
            <summary>
            Disposes the test controller.
            </summary>
            <param name="disposing">True if <see cref="M:Gallio.Model.Helpers.TestController.Dispose"/> was called directly.</param>
        </member>
        <member name="M:Gallio.Model.Helpers.TestController.Run(Gallio.Model.Commands.ITestCommand,Gallio.Model.Tree.TestStep,Gallio.Model.TestExecutionOptions,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
            <summary>
            Runs the tests.
            </summary>
            <remarks>
            <para>
            This method can be called at most once during the lifetime of a test controller.
            </para>
            </remarks>
            <param name="rootTestCommand">The root test monitor.</param>
            <param name="parentTestStep">The parent test step, or null if starting a root step.</param>
            <param name="options">The test execution options.</param>
            <param name="progressMonitor">The progress monitor.</param>
            <returns>The combined result of the root test command.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="rootTestCommand"/>
            <paramref name="progressMonitor"/>, or <paramref name="options"/> is null.</exception>
        </member>
        <member name="M:Gallio.Model.Helpers.TestController.RunImpl(Gallio.Model.Commands.ITestCommand,Gallio.Model.Tree.TestStep,Gallio.Model.TestExecutionOptions,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
            <summary>
            Implementation of <see cref="M:Gallio.Model.Helpers.TestController.Run(Gallio.Model.Commands.ITestCommand,Gallio.Model.Tree.TestStep,Gallio.Model.TestExecutionOptions,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)"/> called after argument validation has taken place.
            </summary>
            <param name="rootTestCommand">The root test command, not null.</param>
            <param name="parentTestStep">The parent test step, or null if none.</param>
            <param name="options">The test execution options, not null.</param>
            <param name="progressMonitor">The progress monitor, not null.</param>
            <returns>The combined result of the root test command.</returns>
        </member>
        <member name="M:Gallio.Model.Helpers.TestController.SkipAll(Gallio.Model.Commands.ITestCommand,Gallio.Model.Tree.TestStep)">
            <summary>
            Recursively generates single test steps for each <see cref="T:Gallio.Model.Commands.ITestCommand"/> and
            sets the final outcome to <see cref="P:Gallio.Model.TestOutcome.Skipped"/>.
            </summary>
            <remarks>
            <para>
            This is useful for implementing fallback behavior when 
            <see cref="P:Gallio.Model.TestExecutionOptions.SkipTestExecution"/> is true.
            </para>
            </remarks>
            <param name="rootTestCommand">The root test command.</param>
            <param name="parentTestStep">The parent test step.</param>
            <returns>The combined result of the test commands.</returns>
        </member>
        <member name="M:Gallio.Model.Helpers.DelegatingTestController.#ctor(Gallio.Model.Helpers.TestControllerProvider)">
            <summary>
            Creates a recursive test controller.
            </summary>
            <param name="testControllerProvider">The test controller provider which provides
            the test controller to which the execution of a subtree of tests should be delegated.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="testControllerProvider"/>
            is null.</exception>
        </member>
        <member name="M:Gallio.Model.Helpers.DelegatingTestController.RunImpl(Gallio.Model.Commands.ITestCommand,Gallio.Model.Tree.TestStep,Gallio.Model.TestExecutionOptions,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Model.Helpers.TestEnvironmentAwareTestHarness">
            <summary>
            A test harness implementation based on <see cref="T:Gallio.Model.Environments.ITestEnvironment"/>.
            </summary>
        </member>
        <member name="T:Gallio.Model.Helpers.TestHarness">
            <summary>
            A test harness configures the test environment during test exploration and execution.
            </summary>
            <remarks>
            <para>
            A test harness may be stateful because it is used for only one test run then disposed.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Model.Helpers.TestHarness.#ctor">
            <summary>
            Creates the test harness.
            </summary>
        </member>
        <member name="M:Gallio.Model.Helpers.TestHarness.SetUpAppDomain">
            <summary>
            Sets up the test AppDomain.
            </summary>
            <remarks>
            <para>
            The default implementation returns null.  Subclasses should override this method
            to prepare the AppDomain for testing such as by redirecting the console streams
            to a logging apparatus.
            </para>
            </remarks>
            <returns>Returns an object that when disposed causes the changes to be torn down, or null if none.</returns>
        </member>
        <member name="M:Gallio.Model.Helpers.TestHarness.SetUpThread">
            <summary>
            Sets up the test Thread.
            </summary>
            <remarks>
            <para>
            The default implementation returns null.  Subclasses should override this method
            to configure the Thread properties around the action such as setting the thread
            synchronization context.
            </para>
            </remarks>
            <returns>Returns an object that when disposed causes the changes to be torn down, or null if none.</returns>
        </member>
        <member name="M:Gallio.Model.Helpers.TestHarness.Dispose">
            <summary>
            Disposes the test harness.
            </summary>
        </member>
        <member name="M:Gallio.Model.Helpers.TestHarness.Dispose(System.Boolean)">
            <summary>
            Disposes the test harness.
            </summary>
            <param name="disposing">True if <see cref="M:Gallio.Model.Helpers.TestHarness.Dispose"/> was called directly.</param>
        </member>
        <member name="M:Gallio.Model.Helpers.TestEnvironmentAwareTestHarness.#ctor(Gallio.Model.Environments.ITestEnvironmentManager)">
            <summary>
            Creates the test harness.
            </summary>
            <param name="testEnvironmentManager">The test environment manager.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="testEnvironmentManager"/> is null.</exception>
        </member>
        <member name="M:Gallio.Model.Helpers.TestEnvironmentAwareTestHarness.SetUpAppDomain">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.Helpers.TestEnvironmentAwareTestHarness.SetUpThread">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Model.Helpers.SimpleTestDriver">
            <summary>
            A simple test driver explores tests using a <see cref="T:Gallio.Model.Helpers.TestExplorer"/>
            and runs them using a <see cref="T:Gallio.Model.Helpers.TestController"/>.
            </summary>
            <remarks>
            <para>
            The simple test driver class provides a good foundation for implementing
            test drivers for most .Net frameworks.  All you need to do is override the
            required methods to provide a <see cref="T:Gallio.Model.Helpers.TestExplorer"/> to populate a
            <see cref="T:Gallio.Model.Tree.TestModel"/> and a <see cref="T:Gallio.Model.Helpers.TestController"/> to run the
            <see cref="T:Gallio.Model.Tree.TestModel"/>.  The tests run within an environment configured
            by the <see cref="T:Gallio.Model.Environments.ITestEnvironmentManager"/>.
            </para>
            </remarks>
        </member>
        <member name="T:Gallio.Model.DotNetTestDriver">
            <summary>
            A base test driver that is intended to support exploring and executing tests
            inside .Net assemblies.
            </summary>
            <remarks>
            <para>
            This test driver is a simple component for building a test driver for .Net based
            test frameworks that do not require specialized hosting apparatus.  It explores and
            runs each test assembly within a separate isolated task that is configured based on the assembly
            config file, runtime version and processor requirements.  Depending on the isolation context,
            the test may run in a different AppDomain or a different Process with a code coverage
            tool, profiler or debugger attached.  Regardless, subclasses do not need to concern themselves
            with these details.
            </para>
            <para>
            Both the <see cref="M:Gallio.Model.DotNetTestDriver.ExploreAssembly(System.Reflection.Assembly,Gallio.Model.TestExplorationOptions,Gallio.Common.Messaging.IMessageSink,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)"/> and <see cref="M:Gallio.Model.DotNetTestDriver.RunAssembly(System.Reflection.Assembly,Gallio.Model.TestExplorationOptions,Gallio.Model.TestExecutionOptions,Gallio.Common.Messaging.IMessageSink,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)"/> methods execute on
            a remote created instance of the test driver within the test host.
            If the test driver does not have a default constructor then it must implement the
            <see cref="M:Gallio.Model.DotNetTestDriver.GetRemoteTestDriverArguments"/> method to provide the required constructor
            arguments for the remote instance.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Model.DotNetTestDriver.ExploreAssembly(System.Reflection.Assembly,Gallio.Model.TestExplorationOptions,Gallio.Common.Messaging.IMessageSink,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
            <summary>
            Explores tests in an assembly.
            </summary>
            <remarks>
            <para>
            The default implementation does nothing.  Subclasses may override to enable tests
            to be explored.  This is required for presenting lists of tests in test runners like Icarus.
            </para>
            <para>
            This method executes within the test host which is most likely a different AppDomain
            or Process from the test runner itself.
            </para>
            </remarks>
            <param name="assembly">The test assembly, not null.</param>
            <param name="testExplorationOptions">The test exploration options, not null.</param>
            <param name="messageSink">The message sink, not null.</param>
            <param name="progressMonitor">The progress monitor, not null.</param>
        </member>
        <member name="M:Gallio.Model.DotNetTestDriver.RunAssembly(System.Reflection.Assembly,Gallio.Model.TestExplorationOptions,Gallio.Model.TestExecutionOptions,Gallio.Common.Messaging.IMessageSink,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
            <summary>
            Runs tests in an assembly.
            </summary>
            <remarks>
            <para>
            The default implementation does nothing.  Subclasses may override to enable tests
            to be run.  This is required for actually running tests.
            </para>
            <para>
            This method executes within the test host which is most likely a different AppDomain
            or Process from the test runner itself.
            </para>
            </remarks>
            <param name="assembly">The test assembly, not null.</param>
            <param name="testExplorationOptions">The test exploration options, not null.</param>
            <param name="testExecutionOptions">The test execution options, not null.</param>
            <param name="messageSink">The message sink, not null.</param>
            <param name="progressMonitor">The progress monitor, not null.</param>
        </member>
        <member name="M:Gallio.Model.DotNetTestDriver.ConfigureHostSetupForAssembly(Gallio.Runtime.Hosting.HostSetup,System.String)">
            <summary>
            Configures the host for a particular assembly.
            </summary>
            <remarks>
            The default implementation does nothing.  Subclasses may override to customize
            host the test host is configured for a particular assembly.
            </remarks>
            <param name="hostSetup">The host setup, not null.</param>
            <param name="assemblyPath">The test assembly path, not null.</param>
        </member>
        <member name="M:Gallio.Model.DotNetTestDriver.GetRemoteTestDriverArguments">
            <summary>
            Gets arguments used to construct the a remote instance of the test driver.
            </summary>
            <remarks>
            <para>
            If the test driver does not have a default constructor then it must implement the
            <see cref="M:Gallio.Model.DotNetTestDriver.GetRemoteTestDriverArguments"/> method to provide the required constructor arguments.
            </para>
            <para>
            All arguments must be serializable.
            </para>
            <para>
            The default implementation returns an empty array.
            </para>
            </remarks>
            <returns></returns>
        </member>
        <member name="M:Gallio.Model.DotNetTestDriver.ExploreImpl(Gallio.Model.Isolation.ITestIsolationContext,Gallio.Model.TestPackage,Gallio.Model.TestExplorationOptions,Gallio.Common.Messaging.IMessageSink,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.DotNetTestDriver.RunImpl(Gallio.Model.Isolation.ITestIsolationContext,Gallio.Model.TestPackage,Gallio.Model.TestExplorationOptions,Gallio.Model.TestExecutionOptions,Gallio.Common.Messaging.IMessageSink,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.DotNetTestDriver.CreateHostSetup(Gallio.Model.TestPackage,System.String,Gallio.Common.Reflection.AssemblyMetadata)">
            <summary>
            Creates a host setup for a particular assembly within a test package.
            </summary>
            <param name="testPackage">The test package, not null.</param>
            <param name="assemblyPath">The assembly path, not null.</param>
            <param name="assemblyMetadata">The assembly metadata, not null.</param>
            <returns>The host setup setup.</returns>
        </member>
        <member name="M:Gallio.Model.DotNetTestDriver.ConfigureHostSetup(Gallio.Runtime.Hosting.HostSetup,Gallio.Model.TestPackage,System.String,Gallio.Common.Reflection.AssemblyMetadata)">
            <summary>
            Configures the host setup prior to the initialization of the script runtime.
            </summary>
            <remarks>
            <para>
            The default implementation does nothing.  Subclasses may override this method
            to customize the host setup.
            </para>
            </remarks>
            <param name="hostSetup">The host setup, not null.</param>
            <param name="testPackage">The test package, not null.</param>
            <param name="assemblyPath">The assembly path, not null.</param>
            <param name="assemblyMetadata">The assembly metadata, not null.</param>
        </member>
        <member name="T:Gallio.Model.Isolation.IsolatedTask">
            <summary>
            An isolated task runs in a <see cref="T:Gallio.Model.Isolation.ITestIsolationContext"/>.
            </summary>
            <remarks>
            <para>
            Subclasses must be implemented carefully since they may run in a remote environment
            separate from the test runner.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Model.Isolation.IsolatedTask.Run(System.Object[])">
            <summary>
            Runs the task.
            </summary>
            <remarks>
            <para>
            Wraps any exception thrown within a <see cref="T:Gallio.Model.ModelException"/>.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Model.Isolation.IsolatedTask.RunImpl(System.Object[])">
            <summary>
            Runs the task.
            </summary>
        </member>
        <member name="M:Gallio.Model.Helpers.SimpleTestDriver.DescribeImpl(Gallio.Common.Reflection.IReflectionPolicy,System.Collections.Generic.IList{Gallio.Common.Reflection.ICodeElementInfo},Gallio.Model.TestExplorationOptions,Gallio.Common.Messaging.IMessageSink,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.Helpers.SimpleTestDriver.ExploreAssembly(System.Reflection.Assembly,Gallio.Model.TestExplorationOptions,Gallio.Common.Messaging.IMessageSink,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.Helpers.SimpleTestDriver.RunAssembly(System.Reflection.Assembly,Gallio.Model.TestExplorationOptions,Gallio.Model.TestExecutionOptions,Gallio.Common.Messaging.IMessageSink,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.Helpers.SimpleTestDriver.CreateTestExplorer">
            <summary>
            Creates a test explorer to describe and explore tests.
            </summary>
            <returns>The test explorer.</returns>
        </member>
        <member name="M:Gallio.Model.Helpers.SimpleTestDriver.CreateTestController">
            <summary>
            Creates a test controller to run tests.
            </summary>
            <returns>The test controller.</returns>
        </member>
        <member name="M:Gallio.Model.Helpers.SimpleTestDriver.CreateTestHarness">
            <summary>
            Creates a test harness to configure the test environment.
            </summary>
            <remarks>
            <para>
            The default implementation returns a new <see cref="T:Gallio.Model.Helpers.TestEnvironmentAwareTestHarness"/>
            configured with the <see cref="T:Gallio.Model.Environments.ITestEnvironmentManager"/> registered
            with the runtime.
            </para>
            </remarks>
            <returns>The test harness.</returns>
        </member>
        <member name="M:Gallio.Model.Helpers.SimpleTestDriver.CreateTestCommandFactory">
            <summary>
            Creates a test command factory for generating <see cref="T:Gallio.Model.Commands.ITestCommand"/>s from
            a <see cref="T:Gallio.Model.Tree.TestModel"/>.
            </summary>
            <remarks>
            <para>
            The default implementation returns a new <see cref="T:Gallio.Model.Commands.DefaultTestCommandFactory"/>
            with a default implementation.
            </para>
            </remarks>
            <returns>The test command factory.</returns>
        </member>
        <member name="M:Gallio.Model.Helpers.SimpleTestDriver.CreateTestContextManager(Gallio.Common.Messaging.IMessageSink)">
            <summary>
            Creates a test context manager for tracking test context and publishing
            test messages to a message sink.
            </summary>
            <remarks>
            <para>
            The default implementation returns a new <see cref="T:Gallio.Model.Contexts.ObservableTestContextManager"/>
            attached to the current <see cref="P:Gallio.Model.Contexts.TestContextTrackerAccessor.Instance"/>
            and the <see cref="T:Gallio.Common.Messaging.IMessageSink"/>.
            </para>
            </remarks>
            <param name="messageSink">The message sink to which test messages are published.</param>
            <returns>The test command factory.</returns>
        </member>
        <member name="P:Gallio.Model.Helpers.SimpleTestDriver.FrameworkName">
            <summary>
            Gets the name of the framework as it should appear in progress messages.
            </summary>
        </member>
        <member name="T:Gallio.Model.Helpers.NamespaceDoc">
            <summary>
            The Gallio.Model.Helpers namespace provides a suite of optional abstractions
            to help implement test drivers.
            </summary>
            <remarks>
            <para>
            The types in this namespace are provided as an optional convenience for implementing
            a <see cref="T:Gallio.Model.ITestDriver"/>.
            </para>
            </remarks>
        </member>
        <member name="T:Gallio.Model.Isolation.BaseTestIsolationContext">
            <summary>
            An abstract base implementation of a test isolation context.
            </summary>
        </member>
        <member name="T:Gallio.Model.Isolation.ITestIsolationContext">
            <summary>
            A test isolation context is responsible for running test code in an isolated
            (possibly remote) environment.
            </summary>
        </member>
        <member name="M:Gallio.Model.Isolation.ITestIsolationContext.BeginBatch(Gallio.Model.Isolation.StatusReporter)">
            <summary>
            Begins a batch of isolated tasks.
            </summary>
            <remarks>
            <para>
            The isolation context may optimize the execution of subsequent isolated tasks
            given that they are all part of the same batch.
            </para>
            </remarks>
            <param name="statusReporter">The status reporter.</param>
            <returns>Returns an object that when disposed causes the batch to be terminated, or null if none.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="statusReporter"/> is null.</exception>
        </member>
        <member name="M:Gallio.Model.Isolation.ITestIsolationContext.RunIsolatedTask``1(Gallio.Runtime.Hosting.HostSetup,Gallio.Model.Isolation.StatusReporter,System.Object[])">
            <summary>
            Runs an isolated task within the test isolation context.
            </summary>
            <remarks>
            <para>
            Since the task may be executed remotely, make sure that all
            arguments and results are serializable.
            </para>
            </remarks>
            <typeparam name="TIsolatedTask">The isolated task subclass.</typeparam>
            <param name="hostSetup">The host setup parameters for the isolated task.</param>
            <param name="statusReporter">The status reporter.</param>
            <param name="args">The task arguments, or null if none.  Must be serializable.</param>
            <returns>The task result, or null if none.  Must be serializable.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="hostSetup"/>
            or <paramref name="statusReporter"/> is null.</exception>
        </member>
        <member name="P:Gallio.Model.Isolation.ITestIsolationContext.RequiresSingleThreadedExecution">
            <summary>
            Gets or sets whether the test isolation context requires test drivers to try to run test
            code within the same thread on which the isolated task is executed.
            </summary>
            <remarks>
            <para>
            A test isolation context may require single-threaded execution because it needs to
            ensure that tests run within the UI loop of an application or due to other
            synchornization concerns.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Model.Isolation.BaseTestIsolationContext.Dispose">
            <summary>
            Disposes the test isolation context.
            </summary>
        </member>
        <member name="M:Gallio.Model.Isolation.BaseTestIsolationContext.BeginBatch(Gallio.Model.Isolation.StatusReporter)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.Isolation.BaseTestIsolationContext.RunIsolatedTask``1(Gallio.Runtime.Hosting.HostSetup,Gallio.Model.Isolation.StatusReporter,System.Object[])">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.Isolation.BaseTestIsolationContext.RunIsolatedTaskImpl``1(Gallio.Runtime.Hosting.HostSetup,Gallio.Model.Isolation.StatusReporter,System.Object[])">
            <summary>
            Runs an isolated task within the test isolation context.
            </summary>
            <typeparam name="TIsolatedTask">The isolated task subclass.</typeparam>
            <param name="hostSetup">The host setup parameters for the isolated task, not null.</param>
            <param name="statusReporter">The status reporter, not null.</param>
            <param name="args">The task arguments, or null if none.  Must be serializable.</param>
            <returns>The task result, or null if none.  Must be serializable.</returns>
        </member>
        <member name="M:Gallio.Model.Isolation.BaseTestIsolationContext.BeginBatchImpl(Gallio.Model.Isolation.StatusReporter)">
            <summary>
            Begins a batch of isolated tasks.
            </summary>
            <remarks>
            <para>
            The default implementation does nothing and returns null.
            </para>
            </remarks>
            <param name="statusReporter">The status reporter, not null.</param>
            <returns>Returns an object that when disposed causes the batch to be terminated, or null if none.</returns>
        </member>
        <member name="M:Gallio.Model.Isolation.BaseTestIsolationContext.Dispose(System.Boolean)">
            <summary>
            Disposes the test isolation context.
            </summary>
            <param name="disposing">True if <see cref="M:Gallio.Model.Isolation.BaseTestIsolationContext.Dispose"/> was called directly.</param>
        </member>
        <member name="P:Gallio.Model.Isolation.BaseTestIsolationContext.RequiresSingleThreadedExecution">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Model.Isolation.BaseTestIsolationProvider">
            <summary>
            An abstract base implementation of a test isolation provider.
            </summary>
        </member>
        <member name="T:Gallio.Model.Isolation.ITestIsolationProvider">
            <summary>
            A test isolation provider creates <see cref="T:Gallio.Model.Isolation.ITestIsolationContext"/> instances.
            </summary>
        </member>
        <member name="M:Gallio.Model.Isolation.ITestIsolationProvider.CreateContext(Gallio.Model.Isolation.TestIsolationOptions,Gallio.Runtime.Logging.ILogger)">
            <summary>
            Creates a test isolation context.
            </summary>
            <param name="testIsolationOptions">The test isolation options.</param>
            <param name="logger">The logger.</param>
            <returns>The test isolation context.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="testIsolationOptions"/>
            or <paramref name="logger"/> is null.</exception>
        </member>
        <member name="M:Gallio.Model.Isolation.BaseTestIsolationProvider.CreateContext(Gallio.Model.Isolation.TestIsolationOptions,Gallio.Runtime.Logging.ILogger)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.Isolation.BaseTestIsolationProvider.CreateContextImpl(Gallio.Model.Isolation.TestIsolationOptions,Gallio.Runtime.Logging.ILogger)">
            <summary>
            Creates a test isolation context.
            </summary>
            <param name="testIsolationOptions">The test isolation options, not null.</param>
            <param name="logger">The logger, not null.</param>
            <returns>The test isolation context.</returns>
        </member>
        <member name="T:Gallio.Model.Isolation.Messages.IsolatedTaskFinishedMessage">
            <summary>
            Tells the server that the client has finished processing an isolated task.
            </summary>
        </member>
        <member name="T:Gallio.Common.Messaging.Message">
            <summary>
            Base class for all message objects.
            </summary>
            <remarks>
            <para>
            Subclasses of this type should be declared to be both XML-serializable
            (using <see cref="T:System.Xml.Serialization.XmlRootAttribute"/> and <see cref="T:System.Xml.Serialization.XmlTypeAttribute"/>)
            and binary serializable (using <see cref="T:System.SerializableAttribute"/>).
            They should also override <see cref="M:Gallio.Common.Messaging.Message.Validate"/> to validate all message
            properties.  Validation is performed before sending and after receiving messages
            to enforce basic message integrity constraints that are not checked by the serialization
            protocol itself.
            </para>
            <para>
            Message types do not need to be declared in advanced.  Consequently plugins
            may defined their own custom message types as long as they have a distinct name.
            </para>
            </remarks>
            <example>
            <para>
            This is an example of a message type.
            </para>
            <code><![CDATA[
            [Serializable]
            [XmlRoot("submitOrderMessage", Namespace = "http://www.fabrikam.org/messages")]
            [XmlType(Namespace = "http://www.fabrikam.org/messages")]
            public sealed class SubmitOrderMessage : Message
            {
                [XmlAttribute("item")]
                public string Item { get; set; }
                
                [XmlAttribute("quantity")]
                public int Quantity { get; set; }
                
                public override void Validate()
                {
                    ValidationUtils.ValidateNotNull(Item);
                    
                    if (Quantity < 1 || Quantity > 10000)
                        throw new ValidationException("Quantity should be between 1 and 10000.");
                }
            }
            ]]></code>
            </example>
            <seealso cref="T:Gallio.Common.Validation.IValidatable"/>
            <seealso cref="T:Gallio.Common.Validation.ValidationUtils"/>
        </member>
        <member name="T:Gallio.Common.Validation.IValidatable">
            <summary>
            Provides a method that may be called by client code to validate that the content
            of an object is well-formed.
            </summary>
        </member>
        <member name="M:Gallio.Common.Validation.IValidatable.Validate">
            <summary>
            Validates the object.
            </summary>
            <exception cref="T:Gallio.Common.Validation.ValidationException">Thrown if the data is not well-formed.</exception>
        </member>
        <member name="M:Gallio.Common.Messaging.Message.Validate">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Messaging.Message.Normalize">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.Isolation.Messages.IsolatedTaskFinishedMessage.Validate">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Model.Isolation.Messages.IsolatedTaskFinishedMessage.Id">
            <summary>
            Gets or sets the unique id of the isolated task.
            </summary>
        </member>
        <member name="P:Gallio.Model.Isolation.Messages.IsolatedTaskFinishedMessage.Result">
            <summary>
            Gets or sets the isolated task result.
            </summary>
        </member>
        <member name="P:Gallio.Model.Isolation.Messages.IsolatedTaskFinishedMessage.Exception">
            <summary>
            Gets or sets the exception data.
            </summary>
        </member>
        <member name="T:Gallio.Model.Isolation.Messages.RunIsolatedTaskMessage">
            <summary>
            Tells the client to run an isolated task.
            </summary>
        </member>
        <member name="M:Gallio.Model.Isolation.Messages.RunIsolatedTaskMessage.Validate">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Model.Isolation.Messages.RunIsolatedTaskMessage.Id">
            <summary>
            Gets or sets the unique id of the isolated task.
            </summary>
        </member>
        <member name="P:Gallio.Model.Isolation.Messages.RunIsolatedTaskMessage.IsolatedTaskType">
            <summary>
            Gets or sets the type of isolated task.
            </summary>
        </member>
        <member name="P:Gallio.Model.Isolation.Messages.RunIsolatedTaskMessage.Arguments">
            <summary>
            Gets or sets the isolated task arguments.
            </summary>
        </member>
        <member name="T:Gallio.Model.Isolation.Messages.ShutdownMessage">
            <summary>
            Tells the client to shut down.
            </summary>
        </member>
        <member name="T:Gallio.Model.Isolation.TestIsolationException">
            <summary>
            The type of exception thrown when test isolation operations fail.
            </summary>
        </member>
        <member name="M:Gallio.Model.Isolation.TestIsolationException.#ctor">
            <summary>
            Creates an exception.
            </summary>
        </member>
        <member name="M:Gallio.Model.Isolation.TestIsolationException.#ctor(System.String)">
            <summary>
            Creates an exception.
            </summary>
            <param name="message">The message.</param>
        </member>
        <member name="M:Gallio.Model.Isolation.TestIsolationException.#ctor(System.String,System.Exception)">
            <summary>
            Creates an exception.
            </summary>
            <param name="message">The message.</param>
            <param name="innerException">The inner exception.</param>
        </member>
        <member name="M:Gallio.Model.Isolation.TestIsolationException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Creates an exception from serialization info.
            </summary>
            <param name="info">The serialization info.</param>
            <param name="context">The streaming context.</param>
        </member>
        <member name="T:Gallio.Model.Isolation.StatusReporter">
            <summary>
            Reports a status update.
            </summary>
        </member>
        <member name="T:Gallio.Model.Isolation.HostedTestIsolationProvider">
            <summary>
            A test isolation provider based on <see cref="T:Gallio.Runtime.Hosting.IHostFactory"/>.
            </summary>
        </member>
        <member name="M:Gallio.Model.Isolation.HostedTestIsolationProvider.#ctor(Gallio.Runtime.Hosting.IHostFactory)">
            <summary>
            Creates a hosted test isolation provider.
            </summary>
            <param name="hostFactory">The host factory.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="hostFactory"/>
            is null.</exception>
        </member>
        <member name="M:Gallio.Model.Isolation.HostedTestIsolationProvider.CreateContextImpl(Gallio.Model.Isolation.TestIsolationOptions,Gallio.Runtime.Logging.ILogger)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Model.Isolation.HostedTestIsolationContext">
            <summary>
            A hosted test isolation context created by <see cref="T:Gallio.Model.Isolation.HostedTestIsolationProvider"/>.
            </summary>
        </member>
        <member name="M:Gallio.Model.Isolation.HostedTestIsolationContext.#ctor(Gallio.Runtime.Hosting.IHostFactory,Gallio.Model.Isolation.TestIsolationOptions,Gallio.Runtime.Logging.ILogger)">
            <summary>
            Creates a hosted test isolation context.
            </summary>
            <param name="hostFactory">The host factory.</param>
            <param name="testIsolationOptions">The test isolation options.</param>
            <param name="logger">The logger.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="hostFactory"/>,
            <paramref name="testIsolationOptions"/> or <paramref name="logger"/> is null.</exception>
        </member>
        <member name="M:Gallio.Model.Isolation.HostedTestIsolationContext.RunIsolatedTaskImpl``1(Gallio.Runtime.Hosting.HostSetup,Gallio.Model.Isolation.StatusReporter,System.Object[])">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.Isolation.HostedTestIsolationContext.RunIsolatedTaskInHost``1(Gallio.Runtime.Hosting.HostSetup,Gallio.Model.Isolation.StatusReporter,System.Object[])">
            <summary>
            Runs an isolated task in a host.
            </summary>
            <typeparam name="TIsolatedTask">The isolated task type.</typeparam>
            <param name="hostSetup">The host setup which includes the test isolation option properties copied down, not null.</param>
            <param name="statusReporter">The status reporter, not null.</param>
            <param name="args">The task arguments.</param>
            <returns>The task result.</returns>
        </member>
        <member name="M:Gallio.Model.Isolation.HostedTestIsolationContext.InvokeTask``1(Gallio.Runtime.Hosting.IHost,``0,System.Object[])">
            <summary>
            Invokes the isolated task
            </summary>
            <typeparam name="TIsolatedTask">The isolated task type</typeparam>
            <param name="host">The host</param>
            <param name="isolatedTask">The isolated task</param>
            <param name="args">The task arguments</param>
            <returns></returns>
        </member>
        <member name="P:Gallio.Model.Isolation.HostedTestIsolationContext.HostFactory">
            <summary>
            Gets the host factory.
            </summary>
        </member>
        <member name="P:Gallio.Model.Isolation.HostedTestIsolationContext.TestIsolationOptions">
            <summary>
            Gets the test isolation options.
            </summary>
        </member>
        <member name="P:Gallio.Model.Isolation.HostedTestIsolationContext.Logger">
            <summary>
            Gets the logger.
            </summary>
        </member>
        <member name="T:Gallio.Model.Isolation.TestIsolationClient">
            <summary>
            Manages the client end of a remote connection that runs isolated tasks provided by the server.
            </summary>
        </member>
        <member name="M:Gallio.Model.Isolation.TestIsolationClient.#ctor(System.String,System.Guid)">
            <summary>
            Creates a test isolation client.
            </summary>
            <param name="ipcPortName">The IPC port name.</param>
            <param name="linkId">The unique id of the client/server pair.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="ipcPortName"/> is null.</exception>
        </member>
        <member name="M:Gallio.Model.Isolation.TestIsolationClient.Dispose">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.Isolation.TestIsolationClient.Dispose(System.Boolean)">
            <summary>
            Disposes the client.
            </summary>
            <param name="disposing">True if <see cref="M:Gallio.Model.Isolation.TestIsolationClient.Dispose"/> was called directly.</param>
        </member>
        <member name="M:Gallio.Model.Isolation.TestIsolationClient.Run">
            <summary>
            Runs isolated tasks until the server shuts down.
            </summary>
        </member>
        <member name="T:Gallio.Model.Isolation.TestIsolationOptions">
            <summary>
            Provides options that control test isolation.
            </summary>
        </member>
        <member name="M:Gallio.Model.Isolation.TestIsolationOptions.#ctor">
            <summary>
            Creates a default set of options.
            </summary>
        </member>
        <member name="M:Gallio.Model.Isolation.TestIsolationOptions.ClearProperties">
            <summary>
            Clears the collection of properties.
            </summary>
        </member>
        <member name="M:Gallio.Model.Isolation.TestIsolationOptions.AddProperty(System.String,System.String)">
            <summary>
            Adds a property key/value pair.
            </summary>
            <param name="key">The property key.</param>
            <param name="value">The property value.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="key"/> or <paramref name="value"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Thrown if <paramref name="key"/> is already in the property set.</exception>
        </member>
        <member name="M:Gallio.Model.Isolation.TestIsolationOptions.RemoveProperty(System.String)">
            <summary>
            Removes a property key/value pair.
            </summary>
            <param name="key">The property key.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="key"/> is null.</exception>
        </member>
        <member name="M:Gallio.Model.Isolation.TestIsolationOptions.Copy">
            <summary>
            Creates a copy of the options.
            </summary>
            <returns>The copy.</returns>
        </member>
        <member name="P:Gallio.Model.Isolation.TestIsolationOptions.Properties">
            <summary>
            Gets a read-only collection of configuration properties for the test isolation context.
            </summary>
        </member>
        <member name="T:Gallio.Model.Isolation.TestIsolationServer">
            <summary>
            Manages the server end of a remote connection that dispatches isolated tasks to a client.
            </summary>
        </member>
        <member name="M:Gallio.Model.Isolation.TestIsolationServer.#ctor(System.String,System.Guid)">
            <summary>
            Creates a test isolation server.
            </summary>
            <param name="ipcPortName">The IPC port name.</param>
            <param name="linkId">The unique id of the client/server pair.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="ipcPortName"/> is null.</exception>
        </member>
        <member name="M:Gallio.Model.Isolation.TestIsolationServer.Dispose">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.Isolation.TestIsolationServer.Dispose(System.Boolean)">
            <summary>
            Disposes the server.
            </summary>
            <param name="disposing">True if <see cref="M:Gallio.Model.Isolation.TestIsolationServer.Dispose"/> was called directly.</param>
        </member>
        <member name="M:Gallio.Model.Isolation.TestIsolationServer.RunIsolatedTaskOnClient(System.Type,System.Object[])">
            <summary>
            Runs an isolated task on the client.
            </summary>
            <param name="isolatedTaskType">The type of isolated task to run.</param>
            <param name="args">The isolated task arguments.</param>
            <returns>The isolated task result.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="isolatedTaskType"/> is null.</exception>
        </member>
        <member name="M:Gallio.Model.Isolation.TestIsolationServer.Shutdown(System.TimeSpan)">
            <summary>
            Instructs a client to shutdown nicely.
            </summary>
            <remarks>
            <para>
            If this method is not called, the client will still eventually shut down when the
            server is disposed but it may take longer and may result in an error being
            logged on the client.
            </para>
            </remarks>
            <param name="timeout">The maximum amount of time to wait for the client to receive the shutdown message.</param>
        </member>
        <member name="T:Gallio.Model.ModelNormalizationUtils">
            <summary>
            Utilities for normalizing test model contents.
            </summary>
        </member>
        <member name="M:Gallio.Model.ModelNormalizationUtils.NormalizeTestComponentId(System.String)">
            <summary>
            Normalizes a test, step or parameter id.
            </summary>
            <param name="id">The id, or null if none.</param>
            <returns>The normalized id, or null if none.  May be the same instance if <paramref name="id"/>
            was already normalized.</returns>
        </member>
        <member name="M:Gallio.Model.ModelNormalizationUtils.NormalizeTestComponentName(System.String)">
            <summary>
            Normalizes a test, step or parameter name.
            </summary>
            <param name="name">The name, or null if none.</param>
            <returns>The normalized name, or null if none.  May be the same instance if <paramref name="name"/>
            was already normalized.</returns>
        </member>
        <member name="M:Gallio.Model.ModelNormalizationUtils.NormalizeLifecyclePhase(System.String)">
            <summary>
            Normalizes a lifecycle phase.
            </summary>
            <param name="lifecyclePhase">The lifecycle phase, or null if none.</param>
            <returns>The normalized lifecycle phase, or null if none.  May be the same instance if <paramref name="lifecyclePhase"/>
            was already normalized.</returns>
        </member>
        <member name="M:Gallio.Model.ModelNormalizationUtils.NormalizeMetadataKey(System.String)">
            <summary>
            Normalizes a metadata key.
            </summary>
            <param name="metadataKey">The metadata key, or null if none.</param>
            <returns>The normalized metadata key, or null if none.  May be the same instance if <paramref name="metadataKey"/>
            was already normalized.</returns>
        </member>
        <member name="M:Gallio.Model.ModelNormalizationUtils.NormalizeMetadataValue(System.String)">
            <summary>
            Normalizes a metadata value.
            </summary>
            <param name="metadataValue">The metadata value, or null if none.</param>
            <returns>The normalized metadata value, or null if none.  May be the same instance if <paramref name="metadataValue"/>
            was already normalized.</returns>
        </member>
        <member name="M:Gallio.Model.ModelNormalizationUtils.NormalizeAnnotationText(System.String)">
            <summary>
            Normalizes the message or details of an annotation.
            </summary>
            <param name="text">The text, or null if none.</param>
            <returns>The normalized text, or null if none.  May be the same instance if <paramref name="text"/>
            was already normalized.</returns>
        </member>
        <member name="M:Gallio.Model.ModelNormalizationUtils.NormalizeLogMessage(System.String)">
            <summary>
            Normalizes a log message.
            </summary>
            <param name="text">The text, or null if none.</param>
            <returns>The normalized text, or null if none.  May be the same instance if <paramref name="text"/>
            was already normalized.</returns>
        </member>
        <member name="M:Gallio.Model.ModelNormalizationUtils.NormalizeMetadata(Gallio.Common.Collections.PropertyBag)">
            <summary>
            Normalizes a metadata collection.
            </summary>
            <param name="metadata">The metadata collection, or null if none.</param>
            <returns>The normalized metadata collection, or null if none.  May be the same instance if <paramref name="metadata"/>
            was already normalized.</returns>
        </member>
        <member name="T:Gallio.Model.Messages.TestModelSerializer">
            <summary>
            Provides functions for converting a <see cref="T:Gallio.Model.Tree.TestModel"/> into a sequence of
            messages and back.
            </summary>
        </member>
        <member name="M:Gallio.Model.Messages.TestModelSerializer.PublishTestModel(Gallio.Model.Tree.TestModel,Gallio.Common.Messaging.IMessageSink)">
            <summary>
            Publishes the contents of the test model to a message sink as test
            and annotation discovered messages.
            </summary>
            <param name="testModel">The test model to publish.</param>
            <param name="messageSink">The message sink.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="testModel"/>
            or <paramref name="messageSink"/> is null.</exception>
        </member>
        <member name="M:Gallio.Model.Messages.TestModelSerializer.CreateMessageSinkToPopulateTestModel(Gallio.Model.Tree.TestModel)">
            <summary>
            Creates a message sink that populates the test model as test and annotation
            discovered messages are published.
            </summary>
            <param name="testModel">The test model to populate.</param>
            <returns>The message sink.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="testModel"/> is null.</exception>
        </member>
        <member name="T:Gallio.Model.TestDriverFactory">
            <summary>
            A factory for test drivers.
            </summary>
            <param name="testFrameworkHandles">The component handles of frameworks which share this test driver factory, not null.</param>
            <param name="testFrameworkOptions">The test framework options, not null.</param>
            <param name="logger">The logger for the test driver, not null.</param>
        </member>
        <member name="T:Gallio.Model.Filters.ITestDescriptor">
            <summary>
            Describes characteristics of a test.
            </summary>
        </member>
        <member name="P:Gallio.Model.Filters.ITestDescriptor.Id">
            <summary>
            Gets the test id.
            </summary>
        </member>
        <member name="P:Gallio.Model.Filters.ITestDescriptor.Name">
            <summary>
            Gets the test name.
            </summary>
        </member>
        <member name="P:Gallio.Model.Filters.ITestDescriptor.CodeElement">
            <summary>
            Gets the code element associated with the test, or null if none.
            </summary>
        </member>
        <member name="P:Gallio.Model.Filters.ITestDescriptor.Metadata">
            <summary>
            Gets the test metadata.
            </summary>
            <seealso cref="T:Gallio.Model.MetadataKeys"/>
        </member>
        <member name="T:Gallio.Model.DefaultTestKind">
            <summary>
            Default implementation of <see cref="T:Gallio.Model.ITestKind"/>.
            </summary>
        </member>
        <member name="T:Gallio.Model.ITestKind">
            <summary>
            Describes a test kind.
            </summary>
            <remarks>
            <para>
            The test kind is ignored by the test runner but it allows tests to be classified
            so that a user interface can provide appropriate decorations and other affordances
            for any test kinds that it recognizes.
            </para>
            <para>
            The test kind is associated with a test by setting the test's <see cref="F:Gallio.Model.MetadataKeys.TestKind"/>
            metadata to the id of the test kind component.
            </para>
            </remarks>
        </member>
        <member name="T:Gallio.Model.DefaultTestKindManager">
            <summary>
            Default implementation of a <see cref="T:Gallio.Model.ITestKindManager"/>.
            </summary>
        </member>
        <member name="T:Gallio.Model.ITestKindManager">
            <summary>
            Manages the list of test kinds.
            </summary>
        </member>
        <member name="P:Gallio.Model.ITestKindManager.TestKindHandles">
            <summary>
            Gets handles for all registered test kinds.
            </summary>
        </member>
        <member name="M:Gallio.Model.DefaultTestKindManager.#ctor(Gallio.Runtime.Extensibility.ComponentHandle{Gallio.Model.ITestKind,Gallio.Model.TestKindTraits}[])">
            <summary>
            Creates a test kind manager.
            </summary>
            <param name="testKindHandles">The test kind handles.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="testKindHandles"/> is null.</exception>
        </member>
        <member name="P:Gallio.Model.DefaultTestKindManager.TestKindHandles">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Model.Filters.NamespaceDoc">
            <summary>
            The Gallio.Model.Filters namespace provides a syntax for filtering tests based
            on their properties.
            </summary>
        </member>
        <member name="T:Gallio.Model.Messages.Exploration.AnnotationDiscoveredMessage">
            <summary>
            Notifies that an annotation has been discovered by the test exploration process.
            </summary>
        </member>
        <member name="M:Gallio.Model.Messages.Exploration.AnnotationDiscoveredMessage.Validate">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.Messages.Exploration.AnnotationDiscoveredMessage.Normalize">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Model.Messages.Exploration.AnnotationDiscoveredMessage.Annotation">
            <summary>
            Gets or sets the annotation, not null.
            </summary>
        </member>
        <member name="T:Gallio.Model.Messages.Exploration.TestDiscoveredMessage">
            <summary>
            Notifies that a test has been discovered by the test exploration process.
            </summary>
        </member>
        <member name="M:Gallio.Model.Messages.Exploration.TestDiscoveredMessage.Validate">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.Messages.Exploration.TestDiscoveredMessage.Normalize">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Model.Messages.Exploration.TestDiscoveredMessage.ParentTestId">
            <summary>
            Gets or sets the id of the parent test, or null if the test is the root.
            </summary>
        </member>
        <member name="P:Gallio.Model.Messages.Exploration.TestDiscoveredMessage.Test">
            <summary>
            Gets or sets information about the test that was discovered, not null.
            </summary>
        </member>
        <member name="T:Gallio.Model.Messages.Execution.TestStepLogStreamEndBlockMessage">
            <summary>
            Notifies that a block started with Begin* has finished within a test step log stream.
            </summary>
        </member>
        <member name="M:Gallio.Model.Messages.Execution.TestStepLogStreamEndBlockMessage.Validate">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.Messages.Execution.TestStepLogStreamEndBlockMessage.Normalize">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Model.Messages.Execution.TestStepLogStreamEndBlockMessage.StepId">
            <summary>
            Gets or sets the id of the test step, not null.
            </summary>
        </member>
        <member name="P:Gallio.Model.Messages.Execution.TestStepLogStreamEndBlockMessage.StreamName">
            <summary>
            Gets or sets the stream name, not null.
            </summary>
        </member>
        <member name="T:Gallio.Model.Messages.Execution.TestStepLogStreamBeginMarkerBlockMessage">
            <summary>
            Notifies that a marker block has been started within a test step log stream.
            </summary>
        </member>
        <member name="M:Gallio.Model.Messages.Execution.TestStepLogStreamBeginMarkerBlockMessage.Validate">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.Messages.Execution.TestStepLogStreamBeginMarkerBlockMessage.Normalize">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Model.Messages.Execution.TestStepLogStreamBeginMarkerBlockMessage.StepId">
            <summary>
            Gets or sets the id of the test step, not null.
            </summary>
        </member>
        <member name="P:Gallio.Model.Messages.Execution.TestStepLogStreamBeginMarkerBlockMessage.StreamName">
            <summary>
            Gets or sets the stream name, not null.
            </summary>
        </member>
        <member name="P:Gallio.Model.Messages.Execution.TestStepLogStreamBeginMarkerBlockMessage.Marker">
            <summary>
            Gets or sets the marker.
            </summary>
        </member>
        <member name="T:Gallio.Model.Messages.Execution.TestStepLogStreamBeginSectionBlockMessage">
            <summary>
            Notifies that a section block has been started within a test step log stream.
            </summary>
        </member>
        <member name="M:Gallio.Model.Messages.Execution.TestStepLogStreamBeginSectionBlockMessage.Validate">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.Messages.Execution.TestStepLogStreamBeginSectionBlockMessage.Normalize">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Model.Messages.Execution.TestStepLogStreamBeginSectionBlockMessage.StepId">
            <summary>
            Gets or sets the id of the test step, not null.
            </summary>
        </member>
        <member name="P:Gallio.Model.Messages.Execution.TestStepLogStreamBeginSectionBlockMessage.StreamName">
            <summary>
            Gets or sets the stream name, not null.
            </summary>
        </member>
        <member name="P:Gallio.Model.Messages.Execution.TestStepLogStreamBeginSectionBlockMessage.SectionName">
            <summary>
            Gets or sets the section name, not null.
            </summary>
        </member>
        <member name="T:Gallio.Model.Messages.Execution.TestStepLogStreamEmbedMessage">
            <summary>
            Notifies that an attachment has been embedded into a test step log stream.
            </summary>
        </member>
        <member name="M:Gallio.Model.Messages.Execution.TestStepLogStreamEmbedMessage.Validate">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.Messages.Execution.TestStepLogStreamEmbedMessage.Normalize">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Model.Messages.Execution.TestStepLogStreamEmbedMessage.StepId">
            <summary>
            Gets or sets the id of the test step, not null.
            </summary>
        </member>
        <member name="P:Gallio.Model.Messages.Execution.TestStepLogStreamEmbedMessage.StreamName">
            <summary>
            Gets or sets the stream name, not null.
            </summary>
        </member>
        <member name="P:Gallio.Model.Messages.Execution.TestStepLogStreamEmbedMessage.AttachmentName">
            <summary>
            Gets or sets the attachment name, not null.
            </summary>
        </member>
        <member name="T:Gallio.Model.Messages.Execution.TestStepLogStreamWriteMessage">
            <summary>
            Notifies that text has been written to a test step log stream.
            </summary>
        </member>
        <member name="M:Gallio.Model.Messages.Execution.TestStepLogStreamWriteMessage.Validate">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.Messages.Execution.TestStepLogStreamWriteMessage.Normalize">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Model.Messages.Execution.TestStepLogStreamWriteMessage.StepId">
            <summary>
            Gets or sets the id of the test step, not null.
            </summary>
        </member>
        <member name="P:Gallio.Model.Messages.Execution.TestStepLogStreamWriteMessage.StreamName">
            <summary>
            Gets or sets the stream name, not null.
            </summary>
        </member>
        <member name="P:Gallio.Model.Messages.Execution.TestStepLogStreamWriteMessage.Text">
            <summary>
            Gets or sets the text, not null.
            </summary>
        </member>
        <member name="T:Gallio.Model.Messages.Execution.TestStepLogAttachMessage">
            <summary>
            Notifies that an attachment has been added to a test step log.
            </summary>
        </member>
        <member name="M:Gallio.Model.Messages.Execution.TestStepLogAttachMessage.Validate">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.Messages.Execution.TestStepLogAttachMessage.Normalize">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Model.Messages.Execution.TestStepLogAttachMessage.StepId">
            <summary>
            Gets or sets the id of the test step, not null.
            </summary>
        </member>
        <member name="P:Gallio.Model.Messages.Execution.TestStepLogAttachMessage.Attachment">
            <summary>
            Gets or sets the attachment, not null.
            </summary>
        </member>
        <member name="T:Gallio.Model.Messages.Execution.TestStepFinishedMessage">
            <summary>
            Notifies that a test step has finished execution.
            </summary>
        </member>
        <member name="M:Gallio.Model.Messages.Execution.TestStepFinishedMessage.Validate">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.Messages.Execution.TestStepFinishedMessage.Normalize">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Model.Messages.Execution.TestStepFinishedMessage.StepId">
            <summary>
            Gets or sets the id of the test step, not null.
            </summary>
        </member>
        <member name="P:Gallio.Model.Messages.Execution.TestStepFinishedMessage.Result">
            <summary>
            Gets or sets the test result, not null.
            </summary>
        </member>
        <member name="T:Gallio.Model.Messages.Execution.TestStepMetadataAddedMessage">
            <summary>
            Notifies that a test step has dynamically added metadata to itself.
            </summary>
        </member>
        <member name="M:Gallio.Model.Messages.Execution.TestStepMetadataAddedMessage.Validate">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.Messages.Execution.TestStepMetadataAddedMessage.Normalize">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Model.Messages.Execution.TestStepMetadataAddedMessage.StepId">
            <summary>
            Gets or sets the id of the test step, not null.
            </summary>
        </member>
        <member name="P:Gallio.Model.Messages.Execution.TestStepMetadataAddedMessage.MetadataKey">
            <summary>
            Gets or sets the metadata key, not null.
            </summary>
            <seealso cref="T:Gallio.Model.MetadataKeys"/>
        </member>
        <member name="P:Gallio.Model.Messages.Execution.TestStepMetadataAddedMessage.MetadataValue">
            <summary>
            Gets or sets the metadata value, not null.
            </summary>
        </member>
        <member name="T:Gallio.Model.Messages.Execution.TestStepLifecyclePhaseChangedMessage">
            <summary>
            Notifies that a test step has changed lifecycle phase.
            </summary>
        </member>
        <member name="M:Gallio.Model.Messages.Execution.TestStepLifecyclePhaseChangedMessage.Validate">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.Messages.Execution.TestStepLifecyclePhaseChangedMessage.Normalize">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Model.Messages.Execution.TestStepLifecyclePhaseChangedMessage.StepId">
            <summary>
            Gets or sets the id of the test step, not null.
            </summary>
        </member>
        <member name="P:Gallio.Model.Messages.Execution.TestStepLifecyclePhaseChangedMessage.LifecyclePhase">
            <summary>
            Gets or sets the lifecycle phase name, not null.
            </summary>
            <seealso cref="T:Gallio.Model.LifecyclePhases"/>
        </member>
        <member name="T:Gallio.Model.Messages.Execution.TestStepStartedMessage">
            <summary>
            Notifies that a test step has started execution and provides its definition.
            </summary>
        </member>
        <member name="M:Gallio.Model.Messages.Execution.TestStepStartedMessage.Validate">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.Messages.Execution.TestStepStartedMessage.Normalize">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Model.Messages.Execution.TestStepStartedMessage.Step">
            <summary>
            Gets or sets information about the test step that is about to start, not null.
            </summary>
        </member>
        <member name="P:Gallio.Model.Messages.Execution.TestStepStartedMessage.CodeElement">
            <summary>
            Gets or sets the code element associated with the test step, or null if none.
            </summary>
        </member>
        <member name="T:Gallio.Model.Messages.NamespaceDoc">
            <summary>
            The Gallio.Model.Messages namespace contains the messaging infrastructure for
            test exploration and execution.
            </summary>
        </member>
        <member name="T:Gallio.Model.NamespaceDoc">
            <summary>
            The Gallio.Model namespace contains types that describe the test object model.
            </summary>
        </member>
        <member name="T:Gallio.Model.Schema.NamespaceDoc">
            <summary>
            The Gallio.Model.Schema namespace contains serializable types that
            are used to describe tests for communication and persistence.
            </summary>
        </member>
        <member name="T:Gallio.Model.TestFrameworkSelector">
            <summary>
            Provides options for selecting test frameworks.
            </summary>
        </member>
        <member name="M:Gallio.Model.TestFrameworkSelector.#ctor">
            <summary>
            Creates a test framework filter initialized to defaults.
            </summary>
        </member>
        <member name="P:Gallio.Model.TestFrameworkSelector.Filter">
            <summary>
            Gets or sets a filter predicate for selecting test frameworks to include, or null if all
            frameworks should be considered. 
            </summary>
            <value>
            The predicate.  Default is <c>null</c>.
            </value>
        </member>
        <member name="P:Gallio.Model.TestFrameworkSelector.FallbackMode">
            <summary>
            Gets or sets the fallback mode used to specify when the <see cref="T:Gallio.Model.FallbackTestFramework"/>
            should be used if a test file is not supported by any other test framework.
            </summary>
            <value>
            The fallback mode.  Default is <see cref="F:Gallio.Model.TestFrameworkFallbackMode.Default"/>.
            </value>
        </member>
        <member name="P:Gallio.Model.TestFrameworkSelector.Options">
            <summary>
            Gets or sets the test framework options.
            </summary>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="T:Gallio.Model.TestKindTraits">
            <summary>
            Specifies traits for <see cref="T:Gallio.Model.ITestKind"/>.
            </summary>
        </member>
        <member name="M:Gallio.Model.TestKindTraits.#ctor(System.String,System.String)">
            <summary>
            Creates test kind traits.
            </summary>
            <param name="name">The test kind name.</param>
            <param name="description">The test kind description.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="name"/>
            or <paramref name="description"/> is null.</exception>
        </member>
        <member name="P:Gallio.Model.TestKindTraits.Name">
            <summary>
            Gets the name of the test kind.
            </summary>
        </member>
        <member name="P:Gallio.Model.TestKindTraits.Description">
            <summary>
            Gets the description of the test kind.
            </summary>
        </member>
        <member name="P:Gallio.Model.TestKindTraits.Icon">
            <summary>
            Gets or sets the icon for the test kind, or null if none.
            </summary>
            <remarks>
            <para>
            The icon should be available in a 16x16 size.
            </para>
            </remarks>
        </member>
        <member name="T:Gallio.Model.Schema.TestPackageData">
            <summary>
            Describes a test package in a portable manner for serialization.
            </summary>
            <seealso cref="T:Gallio.Model.TestPackage"/>
        </member>
        <member name="M:Gallio.Model.Schema.TestPackageData.#ctor">
            <summary>
            Creates an empty test package.
            </summary>
        </member>
        <member name="M:Gallio.Model.Schema.TestPackageData.#ctor(Gallio.Model.TestPackage)">
            <summary>
            Copies the contents of a test package.
            </summary>
            <param name="source">The source test package.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="source"/> is null.</exception>
        </member>
        <member name="M:Gallio.Model.Schema.TestPackageData.InitializeTestPackage(Gallio.Model.TestPackage)">
            <summary>
            Initializes a test package with the contents of this structure.
            </summary>
            <param name="testPackage">The test package to populate.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="testPackage"/> is null.</exception>
        </member>
        <member name="M:Gallio.Model.Schema.TestPackageData.ToTestPackage">
            <summary>
            Creates a test package with the contents of this structure.
            </summary>
            <returns>The test package.</returns>
        </member>
        <member name="M:Gallio.Model.Schema.TestPackageData.MakeRelativePaths(System.String)">
            <summary>
            Makes the test package paths relative to the specified base path.
            </summary>
            <param name="basePath">The base path.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="basePath"/> is null.</exception>
        </member>
        <member name="M:Gallio.Model.Schema.TestPackageData.MakeAbsolutePaths(System.String)">
            <summary>
            Makes the test package paths absolute given the specified base path.
            </summary>
            <param name="basePath">The base path.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="basePath"/> is null.</exception>
        </member>
        <member name="M:Gallio.Model.Schema.TestPackageData.Validate">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Model.Schema.TestPackageData.Files">
            <summary>
            Gets the list of relative or absolute paths of test files.
            </summary>
            <seealso cref="P:Gallio.Model.TestPackage.Files"/>
        </member>
        <member name="P:Gallio.Model.Schema.TestPackageData.HintDirectories">
            <summary>
            Gets the list of hint directories used to resolve test assemblies and other files.
            </summary>
            <seealso cref="P:Gallio.Model.TestPackage.HintDirectories"/>
        </member>
        <member name="P:Gallio.Model.Schema.TestPackageData.ExcludedFrameworkIds">
            <summary>
            Gets the list of test framework IDs that are to be excluded from the test
            exploration process.
            </summary>
            <seealso cref="P:Gallio.Model.TestPackage.ExcludedTestFrameworkIds"/>
        </member>
        <member name="P:Gallio.Model.Schema.TestPackageData.ShadowCopy">
            <summary>
            Gets or sets whether assembly shadow copying is enabled.
            </summary>
            <seealso cref="P:Gallio.Model.TestPackage.ShadowCopy"/>
        </member>
        <member name="P:Gallio.Model.Schema.TestPackageData.Debug">
            <summary>
            Gets or sets whether to attach the debugger to the host.
            </summary>
            <seealso cref="P:Gallio.Model.TestPackage.DebuggerSetup"/>
        </member>
        <member name="P:Gallio.Model.Schema.TestPackageData.ApplicationBaseDirectory">
            <summary>
            Gets or sets the application base directory, or null to use the directory
            containing each group of test files or some other suitable default chosen by the test framework.
            </summary>
            <seealso cref="P:Gallio.Model.TestPackage.ApplicationBaseDirectory"/>
        </member>
        <member name="P:Gallio.Model.Schema.TestPackageData.WorkingDirectory">
            <summary>
            Gets or sets the working directory, or null to use the directory containing
            each group of test files or some other suitable default chosen by the test framework.
            </summary>
            <seealso cref="P:Gallio.Model.TestPackage.WorkingDirectory"/>
        </member>
        <member name="P:Gallio.Model.Schema.TestPackageData.RuntimeVersion">
            <summary>
            Gets or sets the .Net runtime version, or null to auto-detect.
            </summary>
            <seealso cref="P:Gallio.Model.TestPackage.RuntimeVersion"/>
        </member>
        <member name="P:Gallio.Model.Schema.TestPackageData.Properties">
            <summary>
            Gets or sets the properties for the test runner. (non-null)
            </summary>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
            <seealso cref="P:Gallio.Model.TestPackage.Properties"/>
        </member>
        <member name="T:Gallio.Model.Isolation.NamespaceDoc">
            <summary>
            The Gallio.Model.Isolation namespace provides a means for running test
            code within an isolated environment.
            </summary>
        </member>
        <member name="T:Gallio.Runner.Events.RunStartedEventArgs">
            <summary>
            Arguments for an event raised to indicate that test execution has started.
            </summary>
        </member>
        <member name="T:Gallio.Runner.OperationStartedEventArgs">
            <summary>
            Base arguments for events raised to indicate the beginning of an operation.
            </summary>
        </member>
        <member name="M:Gallio.Runner.OperationStartedEventArgs.#ctor">
            <summary>
            Initializes the event arguments.
            </summary>
        </member>
        <member name="M:Gallio.Runner.Events.RunStartedEventArgs.#ctor(Gallio.Model.TestPackage,Gallio.Model.TestExplorationOptions,Gallio.Model.TestExecutionOptions,Gallio.Common.Concurrency.LockBox{Gallio.Runner.Reports.Schema.Report})">
            <summary>
            Initializes the event arguments.
            </summary>
            <param name="testPackage">The test package.</param>
            <param name="testExplorationOptions">The test exploration options.</param>
            <param name="testExecutionOptions">The test execution options.</param>
            <param name="reportLockBox">The report lock-box which may be used to access the report asynchronously during execution.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="testPackage"/>,
            <paramref name="testExplorationOptions"/> or <paramref name="testExecutionOptions"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runner.Events.RunStartedEventArgs.TestPackage">
            <summary>
            Gets the test package.
            </summary>
        </member>
        <member name="P:Gallio.Runner.Events.RunStartedEventArgs.TestExplorationOptions">
            <summary>
            Gets the test exploration options.
            </summary>
        </member>
        <member name="P:Gallio.Runner.Events.RunStartedEventArgs.TestExecutionOptions">
            <summary>
            Gets the test execution options.
            </summary>
        </member>
        <member name="P:Gallio.Runner.Events.RunStartedEventArgs.ReportLockBox">
            <summary>
            Gets the report lock-box which may be used to access the report asynchronously during execution.
            </summary>
        </member>
        <member name="T:Gallio.Runner.Events.NamespaceDoc">
            <summary>
            The Gallio.Runner.Events namespace contains event types that are used by the test runner.
            </summary>
        </member>
        <member name="T:Gallio.Runner.Reports.AbstractReportContainer">
            <summary>
            Abstract base class for report containers that are used to load or save the contents of a report. 
            </summary>
        </member>
        <member name="T:Gallio.Runner.Reports.IReportContainer">
            <summary>
            A report container that is used to load or save the contents of a report.  
            </summary>
            <remarks>
            <para>
            A report container consists of zero or more logical report files distinguished by extension and
            a content folder. The content folder holds attachment contents and format-specific resources.
            </para>
            <para>
            The definition of a report container is necessarily somewhat abstract.  It is intended
            to allow the files associated with report rendered in multiple formats to coexist
            side by side unambiguously and without duplication of common attachment contents.
            </para>
            <para>
            Paths within reports are always specified relative to the root of the container
            with each path segment delimited by backslashes.  The first path segment must be
            <see cref="P:Gallio.Runner.Reports.IReportContainer.ReportName"/>, optionally with an extra period-delimited extension.
            For example, if <see cref="P:Gallio.Runner.Reports.IReportContainer.ReportName"/> is <c>"Report"</c> then <c>"Report.xml"</c> and
            <c>"Report/Contents.txt"</c> are valid paths but <c>"Bar"</c> and
            <c>"Report-NotAnExtension"</c> are not.
            </para>
            <para>
            By convention report content such as attachments and images are 
            stored in a folder with the same name as <see cref="P:Gallio.Runner.Reports.IReportContainer.ReportName"/>.
            </para>
            </remarks>
            <example>
            <para>
            This example demonstrates the structure of report files with the report name of
            <c>"MyReport"</c>.
            <list type="bullet">
            <item><c>"MyReport.html"</c>: A report file.</item>
            <item><c>"MyReport.txt"</c>: Another report file in a different format.</item>
            <item><c>"MyReport\"</c>: The standard report content directory by convention.</item>
            <item><c>"MyReport\Step123\AttachedLog.txt"</c>: An execution log attachment.</item>
            <item><c>"MyReport\img\TestIcon.png"</c>: An image used in the report.</item>
            <item><c>"MyReport\img\FixtureIcon.png"</c>: Another image used in the report.</item>
            <item><c>"MyReport\img\Screenshot.jpg"</c>: An execution log attachment.</item>
            </list>
            </para>
            </example>
        </member>
        <member name="M:Gallio.Runner.Reports.IReportContainer.DeleteReport">
            <summary>
            Deletes the entire contents of the report in all of its formats.
            </summary>
            <exception cref="T:System.IO.IOException">Thrown if an I/O error occurs.</exception>
        </member>
        <member name="M:Gallio.Runner.Reports.IReportContainer.OpenRead(System.String)">
            <summary>
            Opens a report file for reading.
            </summary>
            <param name="path">The relative path of the report file within the container.</param>
            <returns>The stream.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="path"/> is null.</exception>
            <exception cref="T:System.IO.IOException">Thrown if an I/O error occurs.</exception>
        </member>
        <member name="M:Gallio.Runner.Reports.IReportContainer.OpenWrite(System.String,System.String,System.Text.Encoding)">
            <summary>
            Opens a report file for writing, overwriting any previous file with the same name.
            </summary>
            <remarks>
            <para>
            It is not necessary to create "directories" within the container.  They are
            automatically created when new files are opened for writing within them.
            </para>
            </remarks>
            <param name="path">The path of the report file.</param>
            <param name="contentType">The content type of the file, or null if not specified.</param>
            <param name="encoding">The text encoding of the file, or null if not specified or if the file is binary.</param>
            <returns>The stream.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="path"/> is null.</exception>
            <exception cref="T:System.IO.IOException">Thrown if an I/O error occurs.</exception>
        </member>
        <member name="M:Gallio.Runner.Reports.IReportContainer.EncodeFileName(System.String)">
            <summary>
            Replaces invalid characters in a file or directory name with underscores
            and trims it if it is too long.
            </summary>
            <param name="fileName">The file or directory name.</param>
            <returns>The encoded file or directory name.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="fileName"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runner.Reports.IReportContainer.ReportName">
            <summary>
            Gets the base name of the report.
            </summary>
            <remarks>
            <para>
            Logical files and folders associated with the report all begin with this
            name and are disambiguated by extension.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Runner.Reports.AbstractReportContainer.#ctor(System.String,System.String)">
            <summary>
            Protected constructor.
            </summary>
            <param name="reportDirectory">The report directory path.</param>
            <param name="reportName">The report name.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="reportDirectory"/> or
            <paramref name="reportName"/> is null.</exception>
            <exception cref="T:System.ArgumentException">Thrown if <paramref name="reportName"/> is an empty string.</exception>
        </member>
        <member name="M:Gallio.Runner.Reports.AbstractReportContainer.DeleteReport">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runner.Reports.AbstractReportContainer.OpenRead(System.String)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runner.Reports.AbstractReportContainer.OpenWrite(System.String,System.String,System.Text.Encoding)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runner.Reports.AbstractReportContainer.Dispose">
            <summary>
            Disposes the report container.
            </summary>
        </member>
        <member name="M:Gallio.Runner.Reports.AbstractReportContainer.EncodeFileName(System.String)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runner.Reports.AbstractReportContainer.ValidateFilePath(System.String)">
            <summary>
            Lightly validates the path to catch common programming errors. 
            This isn't really strong enough for enforcing any real security constraints.        
            </summary>
            <param name="path">The path to validate.</param>
            <returns>The resulting validated path.</returns>
        </member>
        <member name="P:Gallio.Runner.Reports.AbstractReportContainer.ReportName">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Runner.Reports.AbstractReportContainer.ReportDirectory">
            <summary>
            Gets the full-path of the report directory.
            </summary>
        </member>
        <member name="T:Gallio.Runner.Reports.ArchiveReportContainer">
            <summary>
            An archive based representation of a report container that uses
            a compressed file to store report contents.
            </summary>
        </member>
        <member name="M:Gallio.Runner.Reports.ArchiveReportContainer.#ctor(System.String,System.String)">
            <summary>
            Creates a filed archive based representation of a report container.
            </summary>
            <param name="reportDirectory">The report directory path.</param>
            <param name="reportName">The report name.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="reportDirectory"/> or
            <paramref name="reportName"/> is null.</exception>
            <exception cref="T:System.ArgumentException">Thrown if <paramref name="reportName"/> is an empty string.</exception>
        </member>
        <member name="M:Gallio.Runner.Reports.ArchiveReportContainer.DeleteReport">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runner.Reports.ArchiveReportContainer.OpenRead(System.String)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runner.Reports.ArchiveReportContainer.OpenWrite(System.String,System.String,System.Text.Encoding)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runner.Reports.ArchiveReportContainer.Dispose">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runner.Reports.DefaultReportMerger">
            <summary>
            Default implementation of a report merger.
            </summary>
        </member>
        <member name="T:Gallio.Runner.Reports.IReportMerger">
            <summary>
            A report merger provides services for merging several reports together.
            </summary>
        </member>
        <member name="M:Gallio.Runner.Reports.IReportMerger.Merge(Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
            <summary>
            Merges the reports and returns the output merged report.
            </summary>
            <param name="progressMonitor">The progress monitor.</param>
            <returns>The merged report.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="progressMonitor "/> is null.</exception>
        </member>
        <member name="M:Gallio.Runner.Reports.DefaultReportMerger.#ctor(System.Collections.Generic.IEnumerable{Gallio.Runner.Reports.Schema.Report})">
            <summary>
            Creates a report merger.
            </summary>
            <param name="reports">The reports to be merged.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="reports"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runner.Reports.DefaultReportMerger.Merge(Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runner.Reports.Preferences.HtmlReportSplitSettings">
            <summary>
            Settings for the HTML report automatic splitting.
            </summary>
        </member>
        <member name="M:Gallio.Runner.Reports.Preferences.HtmlReportSplitSettings.#ctor">
            <summary>
            Constructs default settings.
            </summary>
        </member>
        <member name="M:Gallio.Runner.Reports.Preferences.HtmlReportSplitSettings.Defaults">
            <summary>
            Sets the default values.
            </summary>
        </member>
        <member name="M:Gallio.Runner.Reports.Preferences.HtmlReportSplitSettings.ReadFrom(Gallio.Runtime.Preferences.IPreferenceSet)">
            <summary>
            Reads the settings from the specified preference set.
            </summary>
            <param name="preferenceSet">The preference set which contains the data to read.</param>
            <returns>The resulting report settings.</returns>
        </member>
        <member name="M:Gallio.Runner.Reports.Preferences.HtmlReportSplitSettings.WriteTo(Gallio.Runtime.Preferences.IPreferenceSet)">
            <summary>
            Writes the contents of the settings to the specified preference set.
            </summary>
            <param name="preferenceSet">The preference set to write data in.</param>
        </member>
        <member name="P:Gallio.Runner.Reports.Preferences.HtmlReportSplitSettings.Enabled">
            <summary>
            Indicates whether the splitting option is enabled.
            </summary>
        </member>
        <member name="P:Gallio.Runner.Reports.Preferences.HtmlReportSplitSettings.PageSize">
            <summary>
            Gets or sets the number of test steps per report page.
            </summary>
        </member>
        <member name="T:Gallio.Runner.Reports.Preferences.ReportPreferenceManager">
            <summary>
            Manager for user preferences about test reporting.
            </summary>
        </member>
        <member name="M:Gallio.Runner.Reports.Preferences.ReportPreferenceManager.#ctor(Gallio.Runtime.Preferences.IPreferenceManager)">
            <summary>
            Constructor.
            </summary>
            <param name="preferenceManager">General-purpose preference manager.</param>
        </member>
        <member name="P:Gallio.Runner.Reports.Preferences.ReportPreferenceManager.HtmlReportSplitSettings">
            <summary>
            Reads or writes the HTML report split settings.
            </summary>
        </member>
        <member name="T:Gallio.Runner.Reports.ReportArchive">
            <summary>
            The type of file archive used to enclose a test report.
            </summary>
        </member>
        <member name="M:Gallio.Runner.Reports.ReportArchive.TryParse(System.String,Gallio.Runner.Reports.ReportArchive@)">
            <summary>
            Parses the specified value and returns the corresponding <see cref="T:Gallio.Runner.Reports.ReportArchive"/> value,
            or the default value if null or an empty string was specified.
            </summary>
            <param name="value">The value of the searched archive.</param>
            <param name="reportArchive">The resulting report archive item.</param>
            <returns>True if the parsing was successful; otherwise false.</returns>
        </member>
        <member name="M:Gallio.Runner.Reports.ReportArchive.Parse(System.String)">
            <summary>
            Parses the specified value and returns the corresponding <see cref="T:Gallio.Runner.Reports.ReportArchive"/> value,
            or the default value if null or an empty string was specified.
            </summary>
            <param name="value">The value of the searched archive.</param>
            <returns>The resulting report archive item.</returns>
            <exception cref="T:System.ArgumentException">Thrown if the specified value does not correspond
            to an known report archive value,</exception>
        </member>
        <member name="F:Gallio.Runner.Reports.ReportArchive.Normal">
            <summary>
            Non-compressed file structure.
            </summary>
        </member>
        <member name="F:Gallio.Runner.Reports.ReportArchive.Zip">
            <summary>
            Compressed zip archive.
            </summary>
        </member>
        <member name="P:Gallio.Runner.Reports.ReportArchive.ReportContainerForSavingType">
            <summary>
            Gets the report container type.
            </summary>
        </member>
        <member name="T:Gallio.Runner.Reports.ReportContainerFactory">
            <summary>
            Abstract factory that provides a <see cref="T:Gallio.Runner.Reports.IReportContainer"/> for reading or saving
            a report, according to the specified settings.
            </summary>
        </member>
        <member name="M:Gallio.Runner.Reports.ReportContainerFactory.#ctor(Gallio.Common.IO.IFileSystem,System.String,System.String)">
            <summary>
            Constructs a factory.
            </summary>
            <param name="fileSystem">A file system wrapper.</param>
            <param name="reportDirectory">The report directory path.</param>
            <param name="reportName">The report name.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if any argument is null.</exception>
        </member>
        <member name="M:Gallio.Runner.Reports.ReportContainerFactory.MakeForSaving(Gallio.Runner.Reports.ReportArchive)">
            <summary>
            Makes a report container for a saving operation.
            </summary>
            <param name="reportArchive">Indicates if the report must be packed in a compressed archive.</param>
            <returns>A new instance of report container.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if any argument is null.</exception>
        </member>
        <member name="M:Gallio.Runner.Reports.ReportContainerFactory.MakeForReading">
            <summary>
            Makes a report container for a reading operation.
            </summary>
            <returns>A new instance of report container.</returns>
        </member>
        <member name="T:Gallio.Runtime.Conversions.Conversion">
            <summary>
            Represents a method that converts an object into an object of another type.
            </summary>
            <param name="source">The object to convert.</param>
            <returns>The result of the conversion.</returns>
        </member>
        <member name="T:Gallio.Runtime.Conversions.Conversion`2">
            <summary>
            Represents a strongly-typed method that converts an object into an object of another type.
            </summary>
            <typeparam name="TSource">The type of the object to convert.</typeparam>
            <typeparam name="TTarget">The type of the result of the conversion,</typeparam>
            <param name="source">The object to convert.</param>
            <returns>The result of the conversion.</returns>
        </member>
        <member name="T:Gallio.Runtime.Conversions.StringToEnumConversionRule">
            <summary>
            Converts a text representation of a <see cref="T:System.Enum"/> to its corresponding value.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.Conversions.IConversionRule">
            <summary>
            A conversion rule encapsulates an algorithm for converting a value from a source
            type to a target type.
            </summary>
            <remarks>
            <para>
            This type is not intended to be used directly by clients.  Instead refer to
            <see cref="T:Gallio.Runtime.Conversions.IConverter"/> for a simpler abstraction that wraps <see cref="T:Gallio.Runtime.Conversions.IConversionRule"/>.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Runtime.Conversions.IConversionRule.GetConversionCost(System.Type,System.Type,Gallio.Runtime.Conversions.IConverter)">
            <summary>
            Gets the cost of converting a value of type <paramref name="sourceType"/>
            to type <paramref name="targetType"/>.
            </summary>
            <param name="sourceType">The source type, never null.</param>
            <param name="targetType">The target type, never null.</param>
            <param name="elementConverter">A converter that may be used to recursively
            convert the contents of a composite object from one type to another, never null.</param>
            <returns>The conversion cost.</returns>
        </member>
        <member name="M:Gallio.Runtime.Conversions.IConversionRule.Convert(System.Object,System.Type,Gallio.Runtime.Conversions.IConverter,System.Boolean)">
            <summary>
            Converts the value <paramref name="sourceValue"/> to type <paramref name="targetType"/>.
            </summary>
            <remarks>
            <para>
            This method must not be called if <see cref="M:Gallio.Runtime.Conversions.IConversionRule.GetConversionCost(System.Type,System.Type,Gallio.Runtime.Conversions.IConverter)"/> returned <see cref="F:Gallio.Runtime.Conversions.ConversionCost.Invalid"/>
            when asked about the <paramref name="sourceValue"/> type and <paramref name="targetType"/>.
            It must also not be called if <paramref name="sourceValue"/> is <c>null</c> or
            if it is already an instance of <paramref name="targetType"/>.
            </para>
            </remarks>
            <param name="sourceValue">The value to convert, never null.</param>
            <param name="targetType">The target type, never null.</param>
            <param name="elementConverter">A converter that may be used to recursively
            convert the contents of a composite object from one type to another, never null.</param>
            <param name="nullable"></param>
            <returns>The converted value.</returns>
        </member>
        <member name="M:Gallio.Runtime.Conversions.StringToEnumConversionRule.GetConversionCost(System.Type,System.Type,Gallio.Runtime.Conversions.IConverter)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Conversions.StringToEnumConversionRule.Convert(System.Object,System.Type,Gallio.Runtime.Conversions.IConverter,System.Boolean)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runtime.Conversions.CustomConversionRule">
            <summary>
            Conversion rule for custom user conversions.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Conversions.CustomConversionRule.#ctor(Gallio.Runtime.Conversions.Conversion)">
            <summary>
            Constructs a custom conversion rule.
            </summary>
            <param name="conversion">The conversion operation.</param>
        </member>
        <member name="M:Gallio.Runtime.Conversions.CustomConversionRule.GetConversionCost(System.Type,System.Type,Gallio.Runtime.Conversions.IConverter)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Conversions.CustomConversionRule.Convert(System.Object,System.Type,Gallio.Runtime.Conversions.IConverter,System.Boolean)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runtime.Conversions.CustomConverters">
            <summary>
            Extensibility point for object conversion managed by <see cref="T:Gallio.Runtime.Conversions.RuleBasedConverter"/>.
            </summary>
            <remarks>
            <para>
            Use the methods <see cref="M:Gallio.Runtime.Conversions.CustomConverters.Register(System.Type,System.Type,Gallio.Runtime.Conversions.Conversion)"/> and <see cref="M:Gallio.Runtime.Conversions.CustomConverters.Unregister(System.Type,System.Type)"/> to add and remove 
            custom type converters.
            </para>
            </remarks>
            <example>
            The following example registers a custom converter that converts an <see cref="T:System.Int32"/> value to a <c>Foo</c> object.
            <code><![CDATA[
            public class Foo
            {
                public Foo(int value)
                {
                    // Construction logic here...
                }
            }
            
            var customConverters = new CustomConverters();
            customConverters.Register<int, Foo>(x => new Foo(x));
            ]]></code>
            </example>
        </member>
        <member name="M:Gallio.Runtime.Conversions.CustomConverters.Register(System.Type,System.Type,Gallio.Runtime.Conversions.Conversion)">
            <summary>
            Registers a custom converter that transforms an object of the source type into an object of the target type.
            </summary>
            <param name="sourceType">The type of the object to convert.</param>
            <param name="targetType">The type of the result of the conversion.</param>
            <param name="converter">A delegate that performs the conversion.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="sourceType"/>, <paramref name="targetType"/> or <paramref name="converter"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Thrown if a custom converter for the specified types was already registered.</exception>
        </member>
        <member name="M:Gallio.Runtime.Conversions.CustomConverters.Register``2(Gallio.Runtime.Conversions.Conversion{``0,``1})">
            <summary>
            Registers a strongly-tped custom converter for the specified types.
            </summary>
            <typeparam name="TSource">The type of the object to convert.</typeparam>
            <typeparam name="TTarget">The type of the result of the conversion.</typeparam>
            <param name="converter">A delegate that performs the conversion.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="converter"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Thrown if a custom converter for the specified types was already registered.</exception>
        </member>
        <member name="M:Gallio.Runtime.Conversions.CustomConverters.Unregister(System.Type,System.Type)">
            <summary>
            Unregisters the custom converter for the specified types.
            </summary>
            <remarks>
            <para>
            If no custom converter exists for the specified types,
            the method has no effect and no exception is thrown.
            </para>
            </remarks>
            <param name="sourceType">The searched source type.</param>
            <param name="targetType">The searched target type.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="sourceType"/> or <paramref name="targetType"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Conversions.CustomConverters.Unregister``2">
            <summary>
            Unregisters the custom converter for the specified types.
            </summary>
            <remarks>
            <para>
            If no custom converter exists for the specified types,
            the method has no effect and no exception is thrown.
            </para>
            </remarks>
            <typeparam name="TSource">The searched source type.</typeparam>
            <typeparam name="TTarget">The searched target type.</typeparam>
        </member>
        <member name="T:Gallio.Runtime.Extensibility.IExtensionPoints">
            <summary>
            Entry point for the registration of custom actions that extends the framework.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.IExtensionPoints.CustomConverters">
            <summary>
            Extensibility point for object conversion managed by <see cref="T:Gallio.Runtime.Conversions.RuleBasedConverter"/>.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.IExtensionPoints.CustomFormatters">
            <summary>
            Extensibility point for object formatting managed by <see cref="T:Gallio.Runtime.Formatting.RuleBasedFormatter"/>.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.IExtensionPoints.CustomEqualityComparers">
            <summary>
            Extensibility point for object equality managed by <see cref="T:Gallio.Framework.IComparisonSemantics"/>.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.IExtensionPoints.CustomComparers">
            <summary>
            Extensibility point for object comparison managed by <see cref="T:Gallio.Framework.IComparisonSemantics"/>.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.Extensibility.DefaultExtensionPoints">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Runtime.Extensibility.DefaultExtensionPoints.CustomConverters">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Runtime.Extensibility.DefaultExtensionPoints.CustomFormatters">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Runtime.Extensibility.DefaultExtensionPoints.CustomEqualityComparers">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Runtime.Extensibility.DefaultExtensionPoints.CustomComparers">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runtime.Formatting.MemberInfoFormattingRule">
            <summary>
            A formatting rule for <see cref="T:System.Reflection.MemberInfo"/> and all the derived types but <see cref="T:System.Type"/>.
            </summary>
            <remarks>
            <para>
            Formats values like: "{Type}, {MemberType}: {Name}" with 
            <list type="bullet">{Type} is the declarative type formatted by <see cref="T:Gallio.Runtime.Formatting.TypeFormattingRule"/>.</list>
            <list type="bullet">{MemberType} is type of member (See <see cref="T:System.Reflection.MemberTypes"/>).</list>
            <list type="bullet">{Name} is the name of the member.</list>
            <example>E.g. "The.Namespace.TheType, Property: MyProperty"</example>
            </para>
            </remarks>
        </member>
        <member name="T:Gallio.Runtime.Formatting.TypeFormattingRule">
            <summary>
            A formatting rule for <see cref="T:System.Type"/>.
            </summary>
            <remarks>
            <para>
            Formats values like: string, MyType.Nested, int[], byte*, similar to C#.
            </para>
            </remarks>
        </member>
        <member name="T:Gallio.Runtime.Formatting.IFormattingRule">
            <summary>
            A formatting rule encapsulates an algorithm for formatting values of particular
            types to strings for presentation.
            </summary>
            <remarks>
            <para>
            This type is not intended to be used directly by clients.  Instead refer to
            <see cref="T:Gallio.Runtime.Formatting.IFormatter"/> for a simpler abstraction that wraps <see cref="T:Gallio.Runtime.Formatting.IFormattingRule"/>.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Runtime.Formatting.IFormattingRule.GetPriority(System.Type)">
            <summary>
            Gets the formatting rule's priority for object of the specified type.
            </summary>
            <remarks>
            <para>
            Rules with higher priority values take precedence over rules with lower priority values.
            </para>
            </remarks>
            <param name="type">The type of object, never null.</param>
            <returns>The priority of this rule, or null if the rule does not support formatting the specified object type.</returns>
            <seealso cref="T:Gallio.Runtime.Formatting.FormattingRulePriority"/> for priority suggestions.
        </member>
        <member name="M:Gallio.Runtime.Formatting.IFormattingRule.Format(System.Object,Gallio.Runtime.Formatting.IFormatter)">
            <summary>
            Formats the specified object.
            </summary>
            <remarks>
            <para>
            Exceptions thrown by this method will not be reported to clients.
            Instead the formatter will substitute an appropriate placeholder string instead.
            </para>
            </remarks>
            <param name="obj">The object to format, never null.</param>
            <param name="formatter">The formatter to use for recursive formatting, never null.</param>
            <returns>The formatted string representation of the object or null if the object
            could not be formatted to produce a non-empty string.</returns>
        </member>
        <member name="M:Gallio.Runtime.Formatting.TypeFormattingRule.GetPriority(System.Type)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Formatting.TypeFormattingRule.Format(System.Object,Gallio.Runtime.Formatting.IFormatter)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Formatting.MemberInfoFormattingRule.GetPriority(System.Type)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Formatting.MemberInfoFormattingRule.Format(System.Object,Gallio.Runtime.Formatting.IFormatter)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runtime.Conversions.FormattingFunc">
            <summary>
            Represents a method that displays an object in a readable textual form.
            </summary>
            <param name="source">The object to format.</param>
            <returns>The readable textual representation.</returns>
        </member>
        <member name="T:Gallio.Runtime.Conversions.FormattingFunc`1">
            <summary>
            Represents a strongly-typed method that displays an object in a readable textual form.
            </summary>
            <typeparam name="T">The type of the object to format.</typeparam>
            <param name="source">The object to format.</param>
            <returns>The readable textual representation.</returns>
        </member>
        <member name="T:Gallio.Runtime.Formatting.CustomFormattingRule">
            <summary>
            Formatting rule for custom user formatters.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Formatting.CustomFormattingRule.#ctor(Gallio.Runtime.Conversions.FormattingFunc)">
            <summary>
            Constructs a custom conversion rule.
            </summary>
            <param name="formatterFunc">The formatting operation.</param>
        </member>
        <member name="M:Gallio.Runtime.Formatting.CustomFormattingRule.GetPriority(System.Type)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Formatting.CustomFormattingRule.Format(System.Object,Gallio.Runtime.Formatting.IFormatter)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runtime.Formatting.CustomFormatters">
            <summary>
            Extensibility point for object formatting managed by <see cref="T:Gallio.Runtime.Formatting.RuleBasedFormatter"/>.
            </summary>
            <remarks>
            <para>
            Use the methods <see cref="M:Gallio.Runtime.Formatting.CustomFormatters.Register(System.Type,Gallio.Runtime.Conversions.FormattingFunc)"/> and <see cref="M:Gallio.Runtime.Formatting.CustomFormatters.Unregister(System.Type)"/> to add and remove 
            custom type formatters.
            </para>
            </remarks>
            <example>
            The following example registers a custom formatter for a <c>Foo</c> object.
            <code><![CDATA[
            public interface IFoo
            {
                int Value
                {
                    get;
                }
            }
            
            var customFormatters = new CustomFormatters();
            customFormatters.Register<Foo>(x => String.Format("Foo = {0}", x.Value));
            ]]></code>
            </example>
        </member>
        <member name="M:Gallio.Runtime.Formatting.CustomFormatters.Register(System.Type,Gallio.Runtime.Conversions.FormattingFunc)">
            <summary>
            Registers a custom formatter that represents an object in a readable text format.
            </summary>
            <param name="type">The type of the object to format.</param>
            <param name="formatter">A delegate that performs the formatting operation.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="type"/> or <paramref name="formatter"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Thrown if a custom formatter for the specified type was already registered.</exception>
        </member>
        <member name="M:Gallio.Runtime.Formatting.CustomFormatters.Register``1(Gallio.Runtime.Conversions.FormattingFunc{``0})">
            <summary>
            Registers a strongly-tped custom formatter for the specified types.
            </summary>
            <typeparam name="T">The type of the object to format.</typeparam>
            <param name="formatter">A delegate that performs the formatting operation.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="formatter"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Thrown if a custom formatter for the specified type was already registered.</exception>
        </member>
        <member name="M:Gallio.Runtime.Formatting.CustomFormatters.Unregister(System.Type)">
            <summary>
            Unregisters the custom formatter for the specified type.
            </summary>
            <remarks>
            <para>
            If no custom formatter exists for the specified type,
            the method has no effect and no exception is thrown.
            </para>
            </remarks>
            <param name="type">The searched type.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="type"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Formatting.CustomFormatters.Unregister``1">
            <summary>
            Unregisters the custom formatter for the specified type.
            </summary>
            <remarks>
            <para>
            If no custom converter exists for the specified types,
            the method has no effect and no exception is thrown.
            </para>
            </remarks>
            <typeparam name="T">The searched type.</typeparam>
        </member>
        <member name="T:Gallio.Runtime.RuntimeConditionContext">
            <summary>
            A condition context that is used to enable or disable plugins,
            components and services based on characteristics of the runtime environment.
            </summary>
            <remarks>
            This condition context recognizes the following property tokens:
            <list type="bullet">
            <item>"${env:ENVIRONMENTVARIABLE}": Satisfied when the environment contains
            a variable called "ENVIRONMENTVARIABLE".</item>
            <item>"${minFramework:NET20}", "${minFramework:NET30}", "${minFramework:NET35}", "${minFramework:NET40}":
            Satisfied when the currently running .Net runtime version is at least the specified version.</item>
            <item>"${process:PROC.EXE}", "${process:PROC.EXE_V1}", "${process:PROC.EXE_V1.2}",
            "${process:PROC.EXE_V1.2.3}", "${process:PROC.EXE_V1.2.3.4}": Satisfied when the currently
            running process main module is "PROC.EXE" and exactly matches the specified file version
            components (if any).</item>
            </list>
            </remarks>
        </member>
        <member name="M:Gallio.Runtime.RuntimeConditionContext.HasPropertyImpl(System.String,System.String)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runner.Extensions.ITestRunnerExtensionFactory">
            <summary>
            Creates instances of <see cref="T:Gallio.Runner.Extensions.ITestRunnerExtension"/>.
            </summary>
        </member>
        <member name="M:Gallio.Runner.Extensions.ITestRunnerExtensionFactory.CreateExtension">
            <summary>
            Creates the extension.
            </summary>
            <returns>The extension to create.</returns>
        </member>
        <member name="T:Gallio.Runner.Extensions.ITestRunnerExtensionManager">
            <summary>
            Manages the set of available test runner extensions.
            </summary>
        </member>
        <member name="M:Gallio.Runner.Extensions.ITestRunnerExtensionManager.RegisterAutoActivatedExtensions(Gallio.Runner.ITestRunner)">
            <summary>
            Registers auto-activated extensions with the test runner.
            </summary>
            <param name="testRunner">The test runner.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="testRunner"/> is null.</exception>
        </member>
        <member name="T:Gallio.Runner.Extensions.NamespaceDoc">
            <summary>
            The Gallio.Runner.Extensions namespace provides a lightweight test runner
            extension mechanism whereby custom extension types can be registered with
            the test runner to intercept events and generate diagnostic output.
            </summary>
        </member>
        <member name="T:Gallio.Runner.Extensions.TestRunnerExtensionFactoryTraits">
            <summary>
            Provides traits for <see cref="T:Gallio.Runner.Extensions.ITestRunnerExtensionFactory"/>.
            </summary>
        </member>
        <member name="P:Gallio.Runner.Extensions.TestRunnerExtensionFactoryTraits.AutoActivationCondition">
            <summary>
            Gets or sets a condition (using the syntax of <see cref="T:Gallio.Common.Condition"/> that
            governs whether the extension provided by the factory should be automatically
            installed on every run.
            </summary>
            <remarks>
            <para>
            The condition may contain references to properties of the form ${env:VariableName}
            which test whether a given environment variable has been defined.
            </para>
            </remarks>
        </member>
        <member name="T:Gallio.Runner.Extensions.DefaultTestRunnerExtensionManager">
            <summary>
            Default implementation of <see cref="T:Gallio.Runner.Extensions.ITestRunnerExtensionManager"/>
            </summary>
        </member>
        <member name="M:Gallio.Runner.Extensions.DefaultTestRunnerExtensionManager.#ctor(Gallio.Runtime.Extensibility.ComponentHandle{Gallio.Runner.Extensions.ITestRunnerExtensionFactory,Gallio.Runner.Extensions.TestRunnerExtensionFactoryTraits}[],Gallio.Runtime.IRuntime)">
            <summary>
            Creates a test runner extension manager.
            </summary>
            <param name="factoryHandles">The factory handles, not null.</param>
            <param name="runtime">The runtime, not null.</param>
        </member>
        <member name="M:Gallio.Runner.Extensions.DefaultTestRunnerExtensionManager.RegisterAutoActivatedExtensions(Gallio.Runner.ITestRunner)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runner.NamespaceDoc">
            <summary>
            The Gallio.Runner namespace provides the test runner infrastructure.
            </summary>
        </member>
        <member name="T:Gallio.Runner.Projects.DefaultTestProjectManager">
            <summary>
            Default implementation of a test project manager.
            </summary>
        </member>
        <member name="T:Gallio.Runner.Projects.ITestProjectManager">
            <summary>
            Provides services for loading and saving test projects.
            </summary>
        </member>
        <member name="M:Gallio.Runner.Projects.ITestProjectManager.NewProject(System.String)">
            <summary>
            Creates a new project.
            </summary>
            <param name="projectName">The location of the project to be created.</param>
            <returns>The loaded test project.</returns>
            <exception cref="T:System.ArgumentException">Thrown if the project name is null or empty.</exception>
        </member>
        <member name="M:Gallio.Runner.Projects.ITestProjectManager.LoadProject(System.IO.FileInfo)">
            <summary>
            Loads a saved test project.
            </summary>
            <param name="testProjectFile">The test project file to load.</param>
            <returns>The loaded test project.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="testProjectFile"/> is null.</exception>
            <exception cref="T:System.IO.IOException">Thrown if the test project cannot be loaded.</exception>
            <exception cref="T:Gallio.Common.Validation.ValidationException">Thrown if the test project is malformed.</exception>
        </member>
        <member name="M:Gallio.Runner.Projects.ITestProjectManager.SaveProject(Gallio.Runner.Projects.TestProject,System.IO.FileInfo)">
            <summary>
            Saves a test project.
            </summary>
            <param name="testProject">The test project.</param>
            <param name="testProjectFile">The test project file to save.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="testProject"/> or
            <paramref name="testProjectFile"/> is null.</exception>
            <exception cref="T:System.IO.IOException">Thrown if the test project cannot be saved.</exception>
            <exception cref="T:Gallio.Common.Validation.ValidationException">Thrown if the test project is malformed.</exception>
        </member>
        <member name="M:Gallio.Runner.Projects.DefaultTestProjectManager.#ctor(Gallio.Common.IO.IFileSystem,Gallio.Common.Xml.IXmlSerializer)">
            <summary>
            Constructor.
            </summary>
            <param name="fileSystem">The file system.</param>
            <param name="xmlSerializer">The Xml serializer.</param>
        </member>
        <member name="M:Gallio.Runner.Projects.DefaultTestProjectManager.LoadProject(System.IO.FileInfo)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runner.Projects.DefaultTestProjectManager.NewProject(System.String)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runner.Projects.DefaultTestProjectManager.SaveProject(Gallio.Runner.Projects.TestProject,System.IO.FileInfo)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runner.Projects.Schema.NamespaceDoc">
            <summary>
            The Gallio.Runner.Projects.Schema namespace contains the project Xml schema.
            </summary>
        </member>
        <member name="T:Gallio.Runner.Projects.NamespaceDoc">
            <summary>
            The Gallio.Runner.Projects namespace contains types for managing Gallio project files.
            </summary>
        </member>
        <member name="T:Gallio.Runner.Projects.TestProject">
            <summary>
            A test project consists of a test package with a list of test files, a list
            of test extensions, and report options.
            </summary>
        </member>
        <member name="F:Gallio.Runner.Projects.TestProject.DefaultReportNameFormat">
            <summary>
            The default report name format.
            </summary>
            <value>"test-report-{0}-{1}"</value>
        </member>
        <member name="F:Gallio.Runner.Projects.TestProject.DefaultReportDirectoryRelativePath">
            <summary>
            The default report directory relative path.
            </summary>
            <value>"Reports"</value>
        </member>
        <member name="F:Gallio.Runner.Projects.TestProject.DefaultTestRunnerFactoryName">
            <summary>
            The default test runner factory name.
            </summary>
            <value><see cref="F:Gallio.Runner.StandardTestRunnerFactoryNames.IsolatedProcess"/></value>
        </member>
        <member name="F:Gallio.Runner.Projects.TestProject.Extension">
            <summary>
            The file extension for Gallio project files.
            </summary>
            <value>".gallio"</value>
        </member>
        <member name="M:Gallio.Runner.Projects.TestProject.#ctor">
            <summary>
            Creates an empty test project.
            </summary>
        </member>
        <member name="M:Gallio.Runner.Projects.TestProject.ResetTestRunnerFactoryName">
            <summary>
            Resets <see cref="P:Gallio.Runner.Projects.TestProject.TestRunnerFactoryName"/> to its default value and sets <see cref="P:Gallio.Runner.Projects.TestProject.IsTestRunnerFactoryNameSpecified"/> to false.
            </summary>
        </member>
        <member name="M:Gallio.Runner.Projects.TestProject.ResetReportDirectory">
            <summary>
            Resets <see cref="P:Gallio.Runner.Projects.TestProject.ReportDirectory"/> to its default value and sets <see cref="P:Gallio.Runner.Projects.TestProject.IsReportDirectorySpecified"/> to false.
            </summary>
        </member>
        <member name="M:Gallio.Runner.Projects.TestProject.ResetReportNameFormat">
            <summary>
            Resets <see cref="P:Gallio.Runner.Projects.TestProject.ReportNameFormat"/> to its default value and sets <see cref="P:Gallio.Runner.Projects.TestProject.IsReportNameFormatSpecified"/> to false.
            </summary>
        </member>
        <member name="M:Gallio.Runner.Projects.TestProject.ClearTestFilters">
            <summary>
            Clears the list of test filters.
            </summary>
        </member>
        <member name="M:Gallio.Runner.Projects.TestProject.AddTestFilter(Gallio.Runner.Projects.Schema.FilterInfo)">
            <summary>
            Adds a test filter if not already added.
            </summary>
            <param name="filter">The filter to add.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="filter"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runner.Projects.TestProject.RemoveTestFilter(Gallio.Runner.Projects.Schema.FilterInfo)">
            <summary>
            Removes a test filter.
            </summary>
            <param name="filter">The filter to remove.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="filter"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runner.Projects.TestProject.ClearTestRunnerExtensions">
            <summary>
            Clears the list of test runner extensions.
            </summary>
        </member>
        <member name="M:Gallio.Runner.Projects.TestProject.AddTestRunnerExtension(Gallio.Runner.Extensions.ITestRunnerExtension)">
            <summary>
            Adds a test runner extension if not already added.
            </summary>
            <param name="extension">The test runner extension to add.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="extension"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runner.Projects.TestProject.RemoveTestRunnerExtension(Gallio.Runner.Extensions.ITestRunnerExtension)">
            <summary>
            Removes a test runner extension.
            </summary>
            <param name="extension">The test runner extension to remove.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="extension"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runner.Projects.TestProject.ClearTestRunnerExtensionSpecifications">
            <summary>
            Clears the list of test runner extension specifications.
            </summary>
        </member>
        <member name="M:Gallio.Runner.Projects.TestProject.AddTestRunnerExtensionSpecification(System.String)">
            <summary>
            Adds a test runner extension specification if not already added.
            </summary>
            <param name="extensionSpecification">The test runner extension specification to add.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="extensionSpecification"/> is null.</exception>
            <seealso cref="M:Gallio.Runner.Extensions.TestRunnerExtensionUtils.CreateExtensionFromSpecification(System.String)"/>
            for an explanation of the specification syntax.
        </member>
        <member name="M:Gallio.Runner.Projects.TestProject.RemoveTestRunnerExtensionSpecification(System.String)">
            <summary>
            Removes a test runner extension specification.
            </summary>
            <param name="extensionSpecification">The test runner extension specification to remove.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="extensionSpecification"/> is null.</exception>
            <seealso cref="M:Gallio.Runner.Extensions.TestRunnerExtensionUtils.CreateExtensionFromSpecification(System.String)"/>
            for an explanation of the specification syntax.
        </member>
        <member name="M:Gallio.Runner.Projects.TestProject.Copy">
            <summary>
            Creates a copy of the test project.
            </summary>
            <returns>The new copy.</returns>
        </member>
        <member name="M:Gallio.Runner.Projects.TestProject.ApplyOverlay(Gallio.Runner.Projects.TestProject)">
            <summary>
            Applies the settings of another test project as an overlay on top of this one.
            </summary>
            <remarks>
            <para>
            Overrides scalar settings (such as <see cref="P:Gallio.Runner.Projects.TestProject.ReportNameFormat"/>) with those of
            the overlay when they are specified (such as when <see cref="P:Gallio.Runner.Projects.TestProject.IsReportNameFormatSpecified"/> is true).
            Merges aggregate settings (such as lists of files).
            </para>
            </remarks>
            <param name="overlay">The test project to overlay on top of this one.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="overlay"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runner.Projects.TestProject.TestPackage">
            <summary>
            Gets or sets the test package.
            </summary>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runner.Projects.TestProject.TestFilters">
            <summary>
            Gets a read-only list of test filters.
            </summary>
        </member>
        <member name="P:Gallio.Runner.Projects.TestProject.TestRunnerExtensions">
            <summary>
            Gets a read-only list of test runner extensions.
            </summary>
        </member>
        <member name="P:Gallio.Runner.Projects.TestProject.TestRunnerExtensionSpecifications">
            <summary>
            Gets a read-only list of test runner extension specifications.
            </summary>
            <seealso cref="M:Gallio.Runner.Extensions.TestRunnerExtensionUtils.CreateExtensionFromSpecification(System.String)"/>
            for an explanation of the specification syntax.
        </member>
        <member name="P:Gallio.Runner.Projects.TestProject.TestRunnerFactoryName">
            <summary>
            Gets or sets the name of a <see cref="T:Gallio.Runner.ITestRunnerFactory"/> to use for constructing
            the <see cref="T:Gallio.Runner.ITestRunner"/> at test execution time.
            </summary>
            <remarks>
            <para>
            The default value is <see cref="F:Gallio.Runner.StandardTestRunnerFactoryNames.IsolatedProcess"/>.
            </para>
            </remarks>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runner.Projects.TestProject.IsTestRunnerFactoryNameSpecified">
            <summary>
            Returns true if <see cref="P:Gallio.Runner.Projects.TestProject.TestRunnerFactoryName"/> has been set explicitly.
            </summary>
        </member>
        <member name="P:Gallio.Runner.Projects.TestProject.ReportDirectory">
            <summary>
            Gets or sets the folder to save generated reports to. 
            </summary>
            <remarks>
            <para>
            Relative to project location, if not absolute.
            </para>
            </remarks>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runner.Projects.TestProject.IsReportDirectorySpecified">
            <summary>
            Returns true if <see cref="P:Gallio.Runner.Projects.TestProject.ReportDirectory"/> has been set explicitly.
            </summary>
        </member>
        <member name="P:Gallio.Runner.Projects.TestProject.ReportNameFormat">
            <summary>
            The format for the filename of generated reports.
            </summary>
            <remarks>
            <para>
            Within the format string, <c>{0}</c> is replaced by the date and <c>{1}</c> by the time.
            </para>
            <para>
            The default value is <c>"test-report-{0}-{1}"</c>.
            </para>
            </remarks>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runner.Projects.TestProject.ReportArchive">
            <summary>
            Gets or sets a value indicating whether the resulting reports must be enclosed
            in a compressed archive file (zip).
            </summary>
        </member>
        <member name="P:Gallio.Runner.Projects.TestProject.IsReportNameFormatSpecified">
            <summary>
            Returns true if <see cref="P:Gallio.Runner.Projects.TestProject.ReportNameFormat"/> has been set explicitly.
            </summary>
        </member>
        <member name="T:Gallio.Runner.Reports.NamespaceDoc">
            <summary>
            The Gallio.Runner.Reports namespace contains types for reading, writing and
            formatting test reports.
            </summary>
        </member>
        <member name="T:Gallio.Runner.Reports.Schema.NamespaceDoc">
            <summary>
            The Gallio.Runner.Reports.Schema namespace contains the report Xml schema.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.ConsoleSupport.NamespaceDoc">
            <summary>
            The Gallio.Runtime.ConsoleSupport namespace contains a command-line argument
            parsing Api and a rich console abstraction.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.Conversions.NamespaceDoc">
            <summary>
            The Gallio.Runtime.Conversions namespace contains types for converting
            values from one type to another based on extensible conversion rules.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.Debugging.NamespaceDoc">
            <summary>
            The Gallio.Runtime.Debugging namespace contains types for interacting with the debugger.
            </summary>
        </member>
        <member name="T:Gallio.Common.Reflection.AssemblySignature">
            <summary>
            Describes characteristics used to match an assembly such as an assembly name and version range.
            </summary>
        </member>
        <member name="M:Gallio.Common.Reflection.AssemblySignature.#ctor(System.String)">
            <summary>
            Creates an assembly signature.
            </summary>
            <param name="name">The simple name of the assembly.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref cref="F:Gallio.Common.Reflection.AssemblySignature.name"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Reflection.AssemblySignature.SetVersion(System.Version)">
            <summary>
            Sets the assembly version to match.
            </summary>
            <param name="version">The version to match, or null if none.</param>
        </member>
        <member name="M:Gallio.Common.Reflection.AssemblySignature.SetVersionRange(System.Version,System.Version)">
            <summary>
            Sets the assembly version range to match.
            </summary>
            <remarks>
            <para>
            <paramref name="minVersion"/> and <paramref name="maxVersion"/> must
            either both be non-null or both be null.
            </para>
            </remarks>
            <param name="minVersion">The minimum assembly version to match inclusively, or null if there is no lower bound.</param>
            <param name="maxVersion">The maximum assembly version to match inclusively, or null if there is no upper bound.</param>
            <exception cref="T:System.ArgumentException">Thrown if <paramref name="minVersion"/> is null but
            not <paramref name="maxVersion"/> or vice-versa.  Also thrown if <paramref name="minVersion"/>
            is greater than <paramref name="maxVersion"/>.</exception>
        </member>
        <member name="M:Gallio.Common.Reflection.AssemblySignature.IsMatch(System.Reflection.AssemblyName)">
            <summary>
            Returns true if the signature matches the specified assembly name.
            </summary>
            <remarks>
            <para>
            When the assembly name is a partial name that omits version information, the version
            criteria of the signature are ignored.
            </para>
            </remarks>
            <param name="assemblyName">The assembly name.</param>
            <returns>True if the signature matches the assembly name.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="assemblyName"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Reflection.AssemblySignature.Parse(System.String)">
            <summary>
            Parses the assembly signature from a string.
            </summary>
            <remarks>
            <para>
            The string takes the form of following forms:
            <list type="bullet">
            <item>"AssemblyName"</item>
            <item>"AssemblyName, Version=1.2.0.0"</item>
            <item>"AssemblyName, Version=1.2.0.0-1.3.65535.65535"</item>
            </list>
            </para>
            </remarks>
            <param name="str">The string to parse.</param>
            <returns>The parsed signature.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="str"/> is null.</exception>
            <exception cref="T:System.ArgumentException">Thrown if <paramref name="str"/> is malformed.</exception>
        </member>
        <member name="M:Gallio.Common.Reflection.AssemblySignature.ToString">
            <summary>
            Converts the signature to a string.
            </summary>
            <returns>The signature in a format that can be subsequently parsed by <see cref="M:Gallio.Common.Reflection.AssemblySignature.Parse(System.String)"/>.</returns>
            <seealso cref="M:Gallio.Common.Reflection.AssemblySignature.Parse(System.String)"/>
        </member>
        <member name="P:Gallio.Common.Reflection.AssemblySignature.Name">
            <summary>
            Gets the simple name of the assembly.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.AssemblySignature.MinVersion">
            <summary>
            Gets the minimum assembly version to match inclusively, or null if there is no lower bound.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.AssemblySignature.MaxVersion">
            <summary>
            Gets the maximum assembly version to match inclusively, or null if there is no upper bound.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.Debugging.DebuggerSetup">
            <summary>
            Provides options that configure the debugger.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Debugging.DebuggerSetup.#ctor">
            <summary>
            Creates a default set of debugger options.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Debugging.DebuggerSetup.ClearProperties">
            <summary>
            Clears the collection of properties.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Debugging.DebuggerSetup.AddProperty(System.String,System.String)">
            <summary>
            Adds a property key/value pair.
            </summary>
            <param name="key">The property key.</param>
            <param name="value">The property value.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="key"/> or <paramref name="value"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Thrown if <paramref name="key"/> is already in the property set.</exception>
        </member>
        <member name="M:Gallio.Runtime.Debugging.DebuggerSetup.RemoveProperty(System.String)">
            <summary>
            Removes a property key/value pair.
            </summary>
            <param name="key">The property key.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="key"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Debugging.DebuggerSetup.Copy">
            <summary>
            Creates a copy of the options.
            </summary>
            <returns>The copy.</returns>
        </member>
        <member name="P:Gallio.Runtime.Debugging.DebuggerSetup.Properties">
            <summary>
            Gets a read-only collection of configuration properties for the debugger.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.Extensibility.NamespaceDoc">
            <summary>
            The Gallio.Runtime.Extensibility namespace contains types for managing a registry
            of plugins, services and components.  The registry functions as a lightweight
            inversion of control container for Gallio extensions.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.Extensibility.PluginLoadedEventArgs">
            <summary>
            Details of a plugin that has just been loaded.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.PluginLoadedEventArgs.#ctor(Gallio.Runtime.Extensibility.Schema.Plugin,System.IO.DirectoryInfo,System.String)">
            <summary>
             Constructor.
            </summary>
            <param name="plugin">The loaded plugin.</param>
            <param name="baseDirectory">The base directory.</param>
            <param name="pluginFilePath">The plugin file path.</param>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.PluginLoadedEventArgs.Plugin">
            <summary>
            The loaded plugin.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.PluginLoadedEventArgs.BaseDirectory">
            <summary>
            The base directory for the plugin.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.PluginLoadedEventArgs.PluginFilePath">
            <summary>
            The file path of the plugin.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.FileTypes.NamespaceDoc">
            <summary>
            The Gallio.Runtime.FileTypes namespace contains types for automatically
            determining the types of files based on extensible file type recognizer rules.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.Formatting.NamespaceDoc">
            <summary>
            The Gallio.Runtime.Formatting namespace contains types for formatting
            values as human-readable strings based on extensible formatting rules.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.Hosting.NamespaceDoc">
            <summary>
            The Gallio.Runtime.Hosting namespace contains types for hosting application
            code in isolated AppDomains and out of process.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.Installer.BaseInstaller">
            <summary>
            Abstract base class for installers.
            </summary>
            <remarks>
            <para>
            The base implementation does nothing.
            </para>
            </remarks>
        </member>
        <member name="T:Gallio.Runtime.Installer.IInstaller">
            <summary>
            Installs or uninstalls components on the local machine.
            </summary>
            <remarks>
            <para>
            An installer enables plugins to register and unregister their components with
            the operating system as needed.  Typically the installers are invoked
            by the Gallio installation package (ie. the originally downloaded MSI file)
            but they can also be invoked by the user via the <see cref="T:Gallio.Runtime.Installer.SetupUtilityCommand"/>
            utility command.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Runtime.Installer.IInstaller.Install(Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
            <summary>
            Installs components.
            </summary>
            <param name="progressMonitor">The progress monitor, not null.</param>
        </member>
        <member name="M:Gallio.Runtime.Installer.IInstaller.Uninstall(Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
            <summary>
            Uninstalls components.
            </summary>
            <param name="progressMonitor">The progress monitor, not null.</param>
        </member>
        <member name="M:Gallio.Runtime.Installer.BaseInstaller.Install(Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Installer.BaseInstaller.Uninstall(Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runtime.Installer.DefaultInstallerManager">
            <summary>
            The default installer manager implementation.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.Installer.IInstallerManager">
            <summary>
            Performs installation tasks and manages the set of registered <see cref="T:Gallio.Runtime.Installer.IInstaller"/> components.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Installer.IInstallerManager.Install(System.Collections.Generic.IList{System.String},Gallio.Runtime.Security.IElevationContext,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
            <summary>
            Installs components.
            </summary>
            <param name="installerIds">The ids of the specific installers to include, or null to include all.</param>
            <param name="elevationContext">A privilege elevation context, or null if the installer manager should obtain its own when needed.</param>
            <param name="progressMonitor">The progress monitor.</param>
            <returns>True on success, false if the user canceled the operation.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="progressMonitor"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Installer.IInstallerManager.Uninstall(System.Collections.Generic.IList{System.String},Gallio.Runtime.Security.IElevationContext,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
            <summary>
            Uninstalls components.
            </summary>
            <param name="installerIds">The ids of the specific installers to include, or null to include all.</param>
            <param name="elevationContext">A privilege elevation context, or null if the installer manager should obtain its own when needed.</param>
            <param name="progressMonitor">The progress monitor.</param>
            <returns>True on success, false if the user canceled the operation.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="progressMonitor"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Installer.DefaultInstallerManager.#ctor(Gallio.Runtime.Extensibility.ComponentHandle{Gallio.Runtime.Installer.IInstaller,Gallio.Runtime.Installer.InstallerTraits}[],Gallio.Runtime.Security.IElevationManager)">
            <summary>
            Creates the installer manager.
            </summary>
            <param name="installerHandles">The installer handles, not null.</param>
            <param name="elevationManager">The elevation manager, not null.</param>
        </member>
        <member name="M:Gallio.Runtime.Installer.DefaultInstallerManager.Install(System.Collections.Generic.IList{System.String},Gallio.Runtime.Security.IElevationContext,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Installer.DefaultInstallerManager.Uninstall(System.Collections.Generic.IList{System.String},Gallio.Runtime.Security.IElevationContext,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runtime.Installer.InstallerElevatedCommand">
            <summary>
            An elevated command used for installation.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.Security.BaseElevatedCommand`2">
            <summary>
            Abstract base class for implementing elevated commands.
            </summary>
            <typeparam name="TArg">The argument type for the command, must be serializable.</typeparam>
            <typeparam name="TResult">The result type for the command, must be serializable.</typeparam>
        </member>
        <member name="T:Gallio.Runtime.Security.IElevatedCommand">
            <summary>
            Represents a command to be executed in an elevated context.
            </summary>
            <remarks>
            <para>
            The command parameters and results must be serializable because they may be
            transmitted across processes.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Runtime.Security.IElevatedCommand.Execute(System.Object,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
            <summary>
            Executes the command.
            </summary>
            <param name="arguments">The command arguments.</param>
            <param name="progressMonitor">The progress monitor, non-null.</param>
            <returns>The command result, must be null or serializable.</returns>
        </member>
        <member name="M:Gallio.Runtime.Security.BaseElevatedCommand`2.Execute(System.Object,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Security.BaseElevatedCommand`2.Execute(`0,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
            <summary>
            Executes the command.
            </summary>
            <param name="arguments">The command arguments.</param>
            <param name="progressMonitor">The progress monitor, non-null.</param>
            <returns>The command result, must be null or serializable.</returns>
        </member>
        <member name="F:Gallio.Runtime.Installer.InstallerElevatedCommand.ElevatedCommandId">
            <summary>
            The id of this elevated command.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Installer.InstallerElevatedCommand.#ctor(Gallio.Runtime.Installer.IInstallerManager)">
            <summary>
            Initializes the command.
            </summary>
            <param name="installerManager">The installer manager, not null.</param>
        </member>
        <member name="M:Gallio.Runtime.Installer.InstallerElevatedCommand.Execute(Gallio.Runtime.Installer.InstallerElevatedCommand.Arguments,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runtime.Installer.InstallerElevatedCommand.Arguments">
            <summary>
            Arguments for the command.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Installer.InstallerElevatedCommand.Arguments.#ctor(System.String,Gallio.Runtime.Installer.InstallerOperation)">
            <summary>
            Creates the arguments.
            </summary>
            <param name="installerId">The installer id.</param>
            <param name="installerOperation">The requested installer operation.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="installerId"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runtime.Installer.InstallerElevatedCommand.Arguments.InstallerId">
            <summary>
            Gets the installer id.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.Installer.InstallerElevatedCommand.Arguments.InstallerOperation">
            <summary>
            Gets the requested installer operation.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.Installer.InstallerOperation">
            <summary>
            Specifies the installer operation.
            </summary>
        </member>
        <member name="F:Gallio.Runtime.Installer.InstallerOperation.Install">
            <summary>
            Runs the install.
            </summary>
        </member>
        <member name="F:Gallio.Runtime.Installer.InstallerOperation.Uninstall">
            <summary>
            Runs the uninstall.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.Installer.InstallerTraits">
            <summary>
            Traits for <see cref="T:Gallio.Runtime.Installer.IInstaller"/> components.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.Installer.InstallerTraits.RequiresElevation">
            <summary>
            Gets or sets whether an installer requires privilege elevation (admin access)
            to run.
            </summary>
            <remarks>
            <para>
            On Windows Vista and more recent operating systems, this will result in the
            appearance of a UAC Shield icon.
            </para>
            </remarks>
        </member>
        <member name="T:Gallio.Runtime.Installer.NamespaceDoc">
            <summary>
            The Gallio.Runtime.Installer namespace contains types for installing Gallio components.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.Installer.SetupUtilityCommand">
            <summary>
            Installs or uninstalls components using the <see cref="T:Gallio.Runtime.Installer.IInstallerManager"/>.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.UtilityCommands.BaseUtilityCommand`1">
            <summary>
            Abstract base class for a utility command.
            </summary>
            <typeparam name="TArguments">The arguments type, may be <see cref="T:System.Object"/>
            for commands with no arguments.</typeparam>
        </member>
        <member name="T:Gallio.Runtime.UtilityCommands.IUtilityCommand">
            <summary>
            A utility command is a small command-line tool that can be invoked
            via the Gallio.Utility.exe program.
            </summary>
            <remarks>
            <para>
            An example utility command is the VerifyInstallation command which checks
            that the plugin configuration appears to be consistent.
            </para>
            <para>
            The utility program provides a minor safety net in case the command throws
            an exception.  Upon catching the exception the program will log it as a fatal
            error and terminate with a failure exit code.  Of course, when a command throws
            an exception the problem should be interpreted as a programming error.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Runtime.UtilityCommands.IUtilityCommand.Execute(Gallio.Runtime.UtilityCommands.UtilityCommandContext)">
            <summary>
            Executes the command.
            </summary>
            <param name="context">The command execution context, not null.</param>
            <returns>The command exit code, zero for success, non-zero for errors.</returns>
        </member>
        <member name="M:Gallio.Runtime.UtilityCommands.IUtilityCommand.GetArgumentClass">
            <summary>
            Gets the type of a class used to provide arguments to the command.
            </summary>
            <remarks>
            <para>
            The returns type should be decorated with attributes such as
            <see cref="T:Gallio.Runtime.ConsoleSupport.DefaultCommandLineArgumentAttribute"/> and
            <see cref="T:Gallio.Runtime.ConsoleSupport.CommandLineArgumentAttribute"/>.
            </para>
            </remarks>
            <returns>The argument class.</returns>
        </member>
        <member name="M:Gallio.Runtime.UtilityCommands.IUtilityCommand.ValidateArguments(System.Object,Gallio.Runtime.ConsoleSupport.CommandLineErrorReporter)">
            <summary>
            Validates the command arguments.
            </summary>
            <param name="arguments">The arguments object, not null.</param>
            <param name="errorReporter">The error reporter, not null.</param>
            <returns>True if the arguments are valid.</returns>
        </member>
        <member name="M:Gallio.Runtime.UtilityCommands.BaseUtilityCommand`1.Execute(Gallio.Runtime.UtilityCommands.UtilityCommandContext,`0)">
            <summary>
            Executes the command.
            </summary>
            <param name="context">The command execution context, not null.</param>
            <param name="arguments">The typed command arguments, not null.</param>
            <returns>The command exit code, zero for success, non-zero for errors.</returns>
        </member>
        <member name="M:Gallio.Runtime.UtilityCommands.BaseUtilityCommand`1.ValidateArguments(`0,Gallio.Runtime.ConsoleSupport.CommandLineErrorReporter)">
            <summary>
            Validates the command arguments.
            </summary>
            <param name="arguments">The arguments object, not null.</param>
            <param name="errorReporter">The error reporter, not null.</param>
            <returns>True if the arguments are valid.</returns>
        </member>
        <member name="M:Gallio.Runtime.Installer.SetupUtilityCommand.#ctor(Gallio.Runtime.Installer.IInstallerManager)">
            <summary>
            Creates the command.
            </summary>
            <param name="installerManager">The installer manager, not null.</param>
        </member>
        <member name="M:Gallio.Runtime.Installer.SetupUtilityCommand.Execute(Gallio.Runtime.UtilityCommands.UtilityCommandContext,Gallio.Runtime.Installer.SetupUtilityCommand.Arguments)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Installer.SetupUtilityCommand.ValidateArguments(Gallio.Runtime.Installer.SetupUtilityCommand.Arguments,Gallio.Runtime.ConsoleSupport.CommandLineErrorReporter)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runtime.Installer.SetupUtilityCommand.Arguments">
            <summary>
            The arguments for the command.
            </summary>
        </member>
        <member name="F:Gallio.Runtime.Installer.SetupUtilityCommand.Arguments.Install">
            <summary>
            When set to true, installs components.
            </summary>
        </member>
        <member name="F:Gallio.Runtime.Installer.SetupUtilityCommand.Arguments.Uninstall">
            <summary>
            When set to true, uninstalls components.
            </summary>
        </member>
        <member name="F:Gallio.Runtime.Installer.SetupUtilityCommand.Arguments.InstallerIds">
            <summary>
            The ids of installers to include.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.Loader.GallioLoaderLocator">
            <summary>
            Locates Gallio.Loader.dll.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Loader.GallioLoaderLocator.GetGallioLoaderAssemblyPath">
            <summary>
            Gets the path of the Gallio.Loader assembly (unless it is in the GAC) so that it
            can be loaded by external code using <see cref="M:System.Reflection.Assembly.LoadFrom(System.String)"/>.
            </summary>
            <returns>The path of Gallio.Loader.dll, or null if Gallio.Loader.dll is
            installed in the GAC.</returns>
            <exception cref="T:Gallio.Runtime.RuntimeException">Thrown if the Gallio.Loader assembly is not available.</exception>
        </member>
        <member name="T:Gallio.Runtime.Loader.NamespaceDoc">
            <summary>
            The Gallio.Runtime.Loader namespace contains types for loading the
            Gallio runtime into applications.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.Logging.BufferedLogWriter">
            <summary>
            A buffered log writer is an adapter for <see cref="T:System.IO.TextWriter"/> that writes
            long full lines to a <see cref="T:Gallio.Runtime.Logging.ILogger"/>.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Logging.BufferedLogWriter.#ctor(Gallio.Runtime.Logging.ILogger,Gallio.Runtime.Logging.LogSeverity)">
            <summary>
            Creates a buffered log writer that reports a <see cref="P:System.Text.Encoding.Unicode"/> encoding.
            </summary>
            <param name="logger">The logger to which messages are written.</param>
            <param name="logSeverity">The log severity for messages.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="logger"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Logging.BufferedLogWriter.#ctor(Gallio.Runtime.Logging.ILogger,Gallio.Runtime.Logging.LogSeverity,System.Text.Encoding)">
            <summary>
            Creates a buffered log writer that reports a particular encoding.
            </summary>
            <param name="logger">The logger to which messages are written.</param>
            <param name="logSeverity">The log severity for messages.</param>
            <param name="encoding">The encoding to report.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="logger"/> 
            or <paramref name="encoding"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Logging.BufferedLogWriter.Dispose(System.Boolean)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Logging.BufferedLogWriter.Flush">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Logging.BufferedLogWriter.Write(System.String)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Logging.BufferedLogWriter.Write(System.Char[],System.Int32,System.Int32)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Logging.BufferedLogWriter.WriteLine(System.Object)">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Runtime.Logging.BufferedLogWriter.Encoding">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Runtime.Logging.BufferedLogWriter.NewLine">
            <inheritdoc cref="P:System.IO.TextWriter.NewLine"/>
        </member>
        <member name="T:Gallio.Runtime.Logging.MarkupStreamLogger">
            <summary>
            A <see cref="T:Gallio.Runtime.Logging.ILogger"/> implementation that logs messages to the specified <see cref="T:Gallio.Common.Markup.MarkupStreamWriter"/>.
            </summary>
            <remarks>
            <para>
            This can be used to write log messages to a markup stream.
            </para>
            </remarks>
        </member>
        <member name="T:Gallio.Runtime.Logging.BaseLogger">
            <summary>
            Base implementation of <see cref="T:Gallio.Runtime.Logging.ILogger"/> that performs argument validation
            and supports convenience methods.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.Logging.ILogger">
            <summary>
            Provides support for logging messages from system components.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Logging.ILogger.Log(Gallio.Runtime.Logging.LogSeverity,System.String)">
            <summary>
            Logs a message.
            </summary>
            <param name="severity">The log message severity.</param>
            <param name="message">The log message.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="message"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Logging.ILogger.Log(Gallio.Runtime.Logging.LogSeverity,System.String,System.Exception)">
            <summary>
            Logs a message with an associated exception.
            </summary>
            <param name="severity">The log message severity.</param>
            <param name="message">The log message.</param>
            <param name="exception">The associated exception, or null if none.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="message"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Logging.ILogger.Log(Gallio.Runtime.Logging.LogSeverity,System.String,Gallio.Common.Diagnostics.ExceptionData)">
            <summary>
            Logs a message with an associated exception.
            </summary>
            <param name="severity">The log message severity.</param>
            <param name="message">The log message.</param>
            <param name="exceptionData">The associated exception data, or null if none.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="message"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Logging.BaseLogger.Log(Gallio.Runtime.Logging.LogSeverity,System.String)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Logging.BaseLogger.Log(Gallio.Runtime.Logging.LogSeverity,System.String,System.Exception)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Logging.BaseLogger.Log(Gallio.Runtime.Logging.LogSeverity,System.String,Gallio.Common.Diagnostics.ExceptionData)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Logging.BaseLogger.LogImpl(Gallio.Runtime.Logging.LogSeverity,System.String,Gallio.Common.Diagnostics.ExceptionData)">
            <summary>
            Logs a message with an associated exception.
            </summary>
            <param name="severity">The log message severity.</param>
            <param name="message">The log message, not null.</param>
            <param name="exceptionData">The associated exception data, or null if none.</param>
        </member>
        <member name="M:Gallio.Runtime.Logging.MarkupStreamLogger.#ctor(Gallio.Common.Markup.MarkupStreamWriter)">
            <summary>
            Creates a logger for the markup stream writer.
            </summary>
            <param name="writer">The markup stream writer.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="writer"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Logging.MarkupStreamLogger.LogImpl(Gallio.Runtime.Logging.LogSeverity,System.String,Gallio.Common.Diagnostics.ExceptionData)">
            <excludedoc />
        </member>
        <member name="T:Gallio.Common.Markup.MarkupStreamNames">
            <summary>
            Common markup stream names.
            </summary>
        </member>
        <member name="F:Gallio.Common.Markup.MarkupStreamNames.ConsoleInput">
            <summary>
            The name of the standard stream for captured <see cref="P:System.Console.In"/> messages.
            </summary>
        </member>
        <member name="F:Gallio.Common.Markup.MarkupStreamNames.ConsoleOutput">
            <summary>
            The name of the standard stream for captured <see cref="P:System.Console.Out"/> messages.
            </summary>
        </member>
        <member name="F:Gallio.Common.Markup.MarkupStreamNames.ConsoleError">
            <summary>
            The name of the standard stream for captured <see cref="P:System.Console.Error"/> messages.
            </summary>
        </member>
        <member name="F:Gallio.Common.Markup.MarkupStreamNames.DebugTrace">
            <summary>
            The name of the standard stream for diagnostic <see cref="T:System.Diagnostics.Debug"/> and <see cref="T:System.Diagnostics.Trace"/> messages.
            </summary>
        </member>
        <member name="F:Gallio.Common.Markup.MarkupStreamNames.Warnings">
            <summary>
            The name of the standard stream for reporting warning messages.
            </summary>
        </member>
        <member name="F:Gallio.Common.Markup.MarkupStreamNames.Failures">
            <summary>
            The name of the standard stream for reporting failure messages and exceptions.
            </summary>
        </member>
        <member name="F:Gallio.Common.Markup.MarkupStreamNames.Default">
            <summary>
            The name of the standard stream for generic log messages.
            </summary>
            <remarks>
            <para>
            It is preferable to write log messages to this stream in place of the console
            output and error streams.
            </para>
            </remarks>
        </member>
        <member name="T:Gallio.Common.Markup.TextAttachment">
            <summary>
            Represents a text-encoded attachment.
            </summary>
        </member>
        <member name="M:Gallio.Common.Markup.TextAttachment.#ctor(System.String,System.String,System.String)">
            <summary>
            Creates an attachment.
            </summary>
            <param name="name">The attachment name, or null to automatically assign one.</param>
            <param name="contentType">The content type, not null.</param>
            <param name="text">The text string, not null.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="contentType"/> or <paramref name="text"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Markup.TextAttachment.ToAttachmentData">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Markup.TextAttachment.Equals(Gallio.Common.Markup.TextAttachment)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Markup.TextAttachment.Equals(System.Object)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Markup.TextAttachment.GetHashCode">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Markup.TextAttachment.Normalize">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Markup.TextAttachment.Text">
            <summary>
            Gets the text of the attachment, not null.
            </summary>
        </member>
        <member name="T:Gallio.Common.Reflection.AssemblyUtils">
            <summary>
            Provides helpers for working with assemblies.
            </summary>
        </member>
        <member name="M:Gallio.Common.Reflection.AssemblyUtils.GetAssemblyLocation(System.Reflection.Assembly)">
            <summary>
            Gets the location of the assembly, or null if it is dynamic.
            </summary>
            <param name="assembly">The assembly.</param>
            <returns>The assembly location as returned by <see cref="P:System.Reflection.Assembly.Location"/> or
            null if the assembly is dynamic and does not have a location.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="assembly"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Reflection.AssemblyUtils.GetAssemblyLocalPath(System.Reflection.Assembly)">
            <summary>
            Gets the local path of the assembly prior to shadow copying.
            Returns null if the original location of the assembly is not local.
            </summary>
            <param name="assembly">The assembly.</param>
            <returns>The original non-shadow copied local path of the assembly, or null if none.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="assembly"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Reflection.AssemblyUtils.GetFriendlyAssemblyLocation(System.Reflection.Assembly)">
            <summary>
            Gets the original local path of the assembly prior to shadow
            copying, if it is local.  Otherwise, returns the shadow-copied
            assembly location.
            </summary>
            <param name="assembly">The assembly.</param>
            <returns>The local path of the assembly, preferably its original
            non-shadow copied location, or null if the assembly is dynamic and does not
            have a location.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="assembly"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Reflection.AssemblyUtils.GetFriendlyAssemblyCodeBase(System.Reflection.Assembly)">
            <summary>
            If the assembly codebase is a local file, returns it as a local
            path.  Otherwise, returns the assembly codebase Uri.
            </summary>
            <param name="assembly">The assembly.</param>
            <returns>The assembly's path.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="assembly"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Reflection.AssemblyUtils.GetAssemblyNameCulture(System.Reflection.AssemblyName)">
            <summary>
            Gets the culture component of an assembly name.
            </summary>
            <param name="assemblyName">The assembly name.</param>
            <returns>The culture name.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="assemblyName"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Reflection.AssemblyUtils.IsAssembly(System.IO.Stream)">
            <summary>
            Returns true if the stream represents a CLI Assembly in Microsoft PE format.
            </summary>
            <remarks>
            This function does not close the stream.
            </remarks>
            <param name="stream">The stream.</param>
            <returns>True if the stream represents an assembly.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="stream"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Reflection.AssemblyUtils.IsAssembly(System.String)">
            <summary>
            Returns true if the file represents a CLI Assembly in Microsoft PE format.
            </summary>
            <param name="filePath">The file path.</param>
            <returns>True if the file represents an assembly.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="filePath"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Reflection.AssemblyUtils.GetAssemblyMetadata(System.IO.Stream,Gallio.Common.Reflection.AssemblyMetadataFields)">
            <summary>
            Gets metadata about CLI Assembly in Microsoft PE format.
            </summary>
            <param name="stream">The stream.</param>
            <param name="fields">The optional fields of the <see cref="T:Gallio.Common.Reflection.AssemblyMetadata"/> structure to populate.</param>
            <returns>The metadata or null if the stream does not represent a CLI assembly.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="stream"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Reflection.AssemblyUtils.GetAssemblyMetadata(System.String,Gallio.Common.Reflection.AssemblyMetadataFields)">
            <summary>
            Gets the Major and Minor components of the CLI runtime version of a CLI Assembly in Microsoft PE format.
            </summary>
            <param name="filePath">The file path.</param>
            <param name="fields">The optional fields of the <see cref="T:Gallio.Common.Reflection.AssemblyMetadata"/> structure to populate.</param>
            <returns>The version, of which only the major and minor components are populated,
            or null if the stream does not represent a CLI assembly.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="filePath"/> is null.</exception>
        </member>
        <member name="T:Gallio.Common.Reflection.AttributeUtils">
            <summary>
            Manipulates attributes described by their metadata.
            </summary>
        </member>
        <member name="M:Gallio.Common.Reflection.AttributeUtils.GetAttribute``1(Gallio.Common.Reflection.ICodeElementInfo,System.Boolean)">
            <summary>
            Gets the attribute of the specified type, or null if none.
            </summary>
            <typeparam name="T">The attribute type.</typeparam>
            <param name="element">The code element.</param>
            <param name="inherit">If true, includes inherited attributes.</param>
            <returns>The attribute, or null if none.</returns>
            <exception cref="T:System.InvalidOperationException">Thrown if the code element
            has multiple attributes of the specified type.</exception>
        </member>
        <member name="M:Gallio.Common.Reflection.AttributeUtils.GetAttributes``1(Gallio.Common.Reflection.ICodeElementInfo,System.Boolean)">
            <summary>
            Gets the attributes of the specified type.
            </summary>
            <param name="element">The code element.</param>
            <param name="inherit">If true, includes inherited attributes.</param>
            <typeparam name="T">The attribute type.</typeparam>
            <returns>The attributes.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.AttributeUtils.HasAttribute``1(Gallio.Common.Reflection.ICodeElementInfo,System.Boolean)">
            <summary>
            Returns true if the code element has an attribute of the specified type.
            </summary>
            <param name="element">The code element.</param>
            <param name="inherit">If true, includes inherited attributes.</param>
            <typeparam name="T">The attribute type.</typeparam>
            <returns>True if the code element has at least one attribute of the specified type.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.AttributeUtils.GetAttribute(Gallio.Common.Reflection.ICodeElementInfo,System.Type,System.Boolean)">
            <summary>
            Gets the attribute of the specified type, or null if none.
            </summary>
            <param name="element">The code element.</param>
            <param name="attributeType">The attribute type.</param>
            <param name="inherit">If true, includes inherited attributes.</param>
            <returns>The attribute, or null if none.</returns>
            <exception cref="T:System.InvalidOperationException">Thrown if the code element
            has multiple attributes of the specified type.</exception>
        </member>
        <member name="M:Gallio.Common.Reflection.AttributeUtils.GetAttributes(Gallio.Common.Reflection.ICodeElementInfo,System.Type,System.Boolean)">
            <summary>
            Gets the attributes of the specified type.
            </summary>
            <param name="element">The code element.</param>
            <param name="attributeType">The attribute type.</param>
            <param name="inherit">If true, includes inherited attributes.</param>
            <returns>The attributes.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.AttributeUtils.HasAttribute(Gallio.Common.Reflection.ICodeElementInfo,System.Type,System.Boolean)">
            <summary>
            Returns true if the code element has an attribute of the specified type.
            </summary>
            <param name="element">The code element.</param>
            <param name="attributeType">The attribute type.</param>
            <param name="inherit">If true, includes inherited attributes.</param>
            <returns>True if the code element has at least one attribute of the specified type.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.AttributeUtils.ResolveAttributes(System.Collections.Generic.IEnumerable{Gallio.Common.Reflection.IAttributeInfo})">
            <summary>
            Resolves all the attributes.
            </summary>
            <remarks>
            <para>
            Omits attributes that cannot be resolved.
            </para>
            </remarks>
            <param name="attributes">The attribute descriptions.</param>
            <returns>The resolved attribute instances.</returns>
        </member>
        <member name="T:Gallio.Common.Reflection.CodeElementKind">
            <summary>
            Describes the kind of code element represented by a <see cref="T:Gallio.Common.Reflection.ICodeElementInfo"/>.
            </summary>
        </member>
        <member name="F:Gallio.Common.Reflection.CodeElementKind.Assembly">
            <summary>
            The element is an <see cref="T:Gallio.Common.Reflection.IAssemblyInfo"/>.
            </summary>
        </member>
        <member name="F:Gallio.Common.Reflection.CodeElementKind.Namespace">
            <summary>
            The element is an <see cref="T:Gallio.Common.Reflection.INamespaceInfo"/>.
            </summary>
        </member>
        <member name="F:Gallio.Common.Reflection.CodeElementKind.Type">
            <summary>
            The element is an <see cref="T:Gallio.Common.Reflection.ITypeInfo"/>.
            </summary>
        </member>
        <member name="F:Gallio.Common.Reflection.CodeElementKind.Field">
            <summary>
            The element is an <see cref="T:Gallio.Common.Reflection.IFieldInfo"/>.
            </summary>
        </member>
        <member name="F:Gallio.Common.Reflection.CodeElementKind.Property">
            <summary>
            The element is an <see cref="T:Gallio.Common.Reflection.IPropertyInfo"/>.
            </summary>
        </member>
        <member name="F:Gallio.Common.Reflection.CodeElementKind.Event">
            <summary>
            The element is an <see cref="T:Gallio.Common.Reflection.IEventInfo"/>.
            </summary>
        </member>
        <member name="F:Gallio.Common.Reflection.CodeElementKind.Constructor">
            <summary>
            The element is an <see cref="F:Gallio.Common.Reflection.CodeElementKind.Constructor"/>.
            </summary>
        </member>
        <member name="F:Gallio.Common.Reflection.CodeElementKind.Method">
            <summary>
            The element is an <see cref="T:Gallio.Common.Reflection.IMethodInfo"/>.
            </summary>
        </member>
        <member name="F:Gallio.Common.Reflection.CodeElementKind.Parameter">
            <summary>
            The element is an <see cref="T:Gallio.Common.Reflection.IParameterInfo"/>.
            </summary>
        </member>
        <member name="F:Gallio.Common.Reflection.CodeElementKind.GenericParameter">
            <summary>
            The element is an <see cref="T:Gallio.Common.Reflection.IGenericParameterInfo"/>.
            </summary>
        </member>
        <member name="T:Gallio.Common.Reflection.CodeElementSorter">
            <summary>
            Sorts code elements in various ways.
            </summary>
        </member>
        <member name="M:Gallio.Common.Reflection.CodeElementSorter.SortMembersByDeclaringType``1(System.Collections.Generic.IEnumerable{``0})">
            <summary>
            Sorts members such that those declared by supertypes appear before those
            declared by subtypes.
            </summary>
            <typeparam name="T">The type of member.</typeparam>
            <param name="members">The members to sort.</param>
            <returns>The sorted members.</returns>
            <seealso cref="T:Gallio.Common.Reflection.DeclaringTypeComparer`1"/>
        </member>
        <member name="T:Gallio.Common.Reflection.CodeLocation">
            <summary>
            Specifies the location of a code element as a position within a file.
            </summary>
            <remarks>
            <para>
            Lines and columns are numbered starting from 1.
            </para>
            </remarks>
        </member>
        <member name="F:Gallio.Common.Reflection.CodeLocation.Unknown">
            <summary>
            Gets an empty code location with a null path and no line or column number information.
            </summary>
        </member>
        <member name="M:Gallio.Common.Reflection.CodeLocation.#ctor(System.String,System.Int32,System.Int32)">
            <summary>
            Creates a code location.
            </summary>
            <param name="path">The path or Uri of a resource that contains the code element,
            such as a source file or assembly, or null if unknown.</param>
            <param name="line">The line number, or 0 if unknown.</param>
            <param name="column">The column number, or 0 if unknown.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="line"/> or <paramref name="column"/>
            is less than 0.</exception>
            <exception cref="T:System.ArgumentException">Thrown if <paramref name="path"/> is null and <paramref name="line"/>
            is non-zero, or if <paramref name="line"/> is 0 and <paramref name="column"/> is non-zero.</exception>
        </member>
        <member name="M:Gallio.Common.Reflection.CodeLocation.ToString">
            <summary>
            Converts the location to a string of the form "path(line,column)",
            "path(line)" or "path" depending on which components are available.
            </summary>
            <returns>The code location as a string or "(unknown)" if unknown.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.CodeLocation.Normalize">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.CodeLocation.op_Equality(Gallio.Common.Reflection.CodeLocation,Gallio.Common.Reflection.CodeLocation)">
            <summary>
            Compares two code locations for equality.
            </summary>
            <param name="a">The first code location.</param>
            <param name="b">The second code location.</param>
            <returns>True if the code locations are equal.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.CodeLocation.op_Inequality(Gallio.Common.Reflection.CodeLocation,Gallio.Common.Reflection.CodeLocation)">
            <summary>
            Compares two code locations for inequality.
            </summary>
            <param name="a">The first code location.</param>
            <param name="b">The second code location.</param>
            <returns>True if the code references are not equal.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.CodeLocation.Equals(System.Object)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.CodeLocation.Equals(Gallio.Common.Reflection.CodeLocation)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.CodeLocation.GetHashCode">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.CodeLocation.ProvideXmlSchema(System.Xml.Schema.XmlSchemaSet)">
            <summary>
            Provides the Xml schema for this element.
            </summary>
            <param name="schemas">The schema set.</param>
            <returns>The schema type of the element.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.CodeLocation.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Allows the code location structure to control 
            its own serialization and deserialization.
            </summary>
            <param name="info">The serialization info to populate with data.</param>
            <param name="context">The destination for this serialization.</param>
        </member>
        <member name="P:Gallio.Common.Reflection.CodeLocation.Path">
            <summary>
            Gets the path or Uri of a resource that contains the code element, such as
            a source file or assembly, or null if unknown.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.CodeLocation.Line">
            <summary>
            Gets the line number, or 0 if unknown.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.CodeLocation.Column">
            <summary>
            Gets the column number, or 0 if unknown.
            </summary>
        </member>
        <member name="T:Gallio.Common.Reflection.CodeReference">
            <summary>
            A code reference is a pointer into the structure of a .Net program for use in
            describing the location of a certain code construct to the user.  It is
            typically used to identify the point of definition of a test component.
            </summary>
        </member>
        <member name="F:Gallio.Common.Reflection.CodeReference.Unknown">
            <summary>
            Gets an empty code reference used to indicate that the actual
            reference is unknown.
            </summary>
        </member>
        <member name="M:Gallio.Common.Reflection.CodeReference.#ctor(System.String,System.String,System.String,System.String,System.String)">
            <summary>
            Creates a code reference from strings.
            </summary>
            <param name="assemblyName">The assembly name, or null if none.</param>
            <param name="namespaceName">The namespace name, or null if none.</param>
            <param name="typeName">The fully-qualified type name, or null if none.</param>
            <param name="memberName">The member name, or null if none.</param>
            <param name="parameterName">The parameter name, or null if none.</param>
        </member>
        <member name="M:Gallio.Common.Reflection.CodeReference.ToString">
            <summary>
            Produces a human-readable description of the code reference.
            </summary>
            <returns>A description of the code reference.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.CodeReference.CreateFromParameter(System.Reflection.ParameterInfo)">
            <summary>
            Creates a code reference from a method parameter.
            </summary>
            <param name="parameter">The parameter.</param>
            <returns>The code reference.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="parameter"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Reflection.CodeReference.CreateFromMember(System.Reflection.MemberInfo)">
            <summary>
            Creates a code reference from a member.
            </summary>
            <param name="member">The member.</param>
            <returns>The code reference.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="member"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Reflection.CodeReference.CreateFromType(System.Type)">
            <summary>
            Creates a code reference from a type.
            </summary>
            <param name="type">The type.</param>
            <returns>The code reference.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="type"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Reflection.CodeReference.CreateFromNamespace(System.String)">
            <summary>
            Creates a code reference from an namespace name.
            </summary>
            <param name="namespaceName">The namespace name.</param>
            <returns>The code reference.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="namespaceName"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Reflection.CodeReference.CreateFromAssembly(System.Reflection.Assembly)">
            <summary>
            Creates a code reference from an assembly.
            </summary>
            <param name="assembly">The assembly.</param>
            <returns>The code reference.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="assembly"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Reflection.CodeReference.Normalize">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.CodeReference.op_Equality(Gallio.Common.Reflection.CodeReference,Gallio.Common.Reflection.CodeReference)">
            <summary>
            Compares two code references for equality.
            </summary>
            <param name="a">The first code reference.</param>
            <param name="b">The second code reference.</param>
            <returns>True if the code references are equal.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.CodeReference.op_Inequality(Gallio.Common.Reflection.CodeReference,Gallio.Common.Reflection.CodeReference)">
            <summary>
            Compares two code references for inequality.
            </summary>
            <param name="a">The first code reference.</param>
            <param name="b">The second code reference.</param>
            <returns>True if the code references are not equal.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.CodeReference.Equals(System.Object)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.CodeReference.Equals(Gallio.Common.Reflection.CodeReference)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.CodeReference.GetHashCode">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.CodeReference.ProvideXmlSchema(System.Xml.Schema.XmlSchemaSet)">
            <summary>
            Provides the Xml schema for this element.
            </summary>
            <param name="schemas">The schema set.</param>
            <returns>The schema type of the element.</returns>
        </member>
        <member name="P:Gallio.Common.Reflection.CodeReference.Kind">
            <summary>
            Gets the kind of code element specified by the code reference.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.CodeReference.AssemblyName">
            <summary>
            Gets the assembly name, or null if none.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.CodeReference.NamespaceName">
            <summary>
            Gets the namespace name, or null if none.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.CodeReference.TypeName">
            <summary>
            Gets the fully-qualified type name, or null if none.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.CodeReference.MemberName">
            <summary>
            Gets the member name, or null if none.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.CodeReference.ParameterName">
            <summary>
            Gets the parameter name, or null if none.
            </summary>
        </member>
        <member name="T:Gallio.Common.Reflection.CodeReferenceKind">
            <summary>
            Describes the kind of code element specified by a <see cref="T:Gallio.Common.Reflection.CodeReference"/>.
            </summary>
        </member>
        <member name="F:Gallio.Common.Reflection.CodeReferenceKind.Unknown">
            <summary>
            The code reference is unknown.
            </summary>
        </member>
        <member name="F:Gallio.Common.Reflection.CodeReferenceKind.Assembly">
            <summary>
            The code reference specifies an assembly.
            </summary>
        </member>
        <member name="F:Gallio.Common.Reflection.CodeReferenceKind.Namespace">
            <summary>
            The code reference specifies a namespace.
            </summary>
        </member>
        <member name="F:Gallio.Common.Reflection.CodeReferenceKind.Type">
            <summary>
            The code reference specifies a type.
            </summary>
        </member>
        <member name="F:Gallio.Common.Reflection.CodeReferenceKind.Member">
            <summary>
            The code reference specifies a constructor, method, property, field or event.
            </summary>
        </member>
        <member name="F:Gallio.Common.Reflection.CodeReferenceKind.Parameter">
            <summary>
            The code reference specifies a parameter of a constructor or method.
            </summary>
        </member>
        <member name="T:Gallio.Common.Reflection.ConstantValue">
            <summary>
            Specifies a typed constant value.
            </summary>
        </member>
        <member name="M:Gallio.Common.Reflection.ConstantValue.#ctor(Gallio.Common.Reflection.ITypeInfo,System.Object)">
            <summary>
            Creates a constant value.
            </summary>
            <param name="type">The constant value type.</param>
            <param name="value">The constant value.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="type"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Reflection.ConstantValue.FromNative(System.Object)">
            <summary>
            Creates a constant value that wraps an existing native value.
            </summary>
            <param name="value">The native value.</param>
            <returns>The constant.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.ConstantValue.Resolve(System.Boolean)">
            <summary>
            Resolves the constant to a native value by replacing type references with actual <see cref="T:System.Type"/>
            values, arrays of constants with <see cref="T:System.Array"/> values of the appropriate type,
            and enums with <see cref="T:System.Enum"/> values.
            </summary>
            <param name="throwOnError">If true, throws an exception if the target could
            not be resolved, otherwise the result may include unresolved types, enums or arrays.</param>
            <returns>The native constant value.</returns>
            <exception cref="T:Gallio.Common.Reflection.ReflectionResolveException">Thrown if the target cannot be resolved.</exception>
        </member>
        <member name="P:Gallio.Common.Reflection.ConstantValue.Type">
            <summary>
            Gets the type of the constant.
            </summary>
            <remarks>
            <para>
            The type may be an array type, an enum type, a primitive type, or the <see cref="T:System.Type"/> type.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Common.Reflection.ConstantValue.Value">
            <summary>
            Gets the value of the constant.
            </summary>
            <remarks>
            <para>
            If <see cref="P:Gallio.Common.Reflection.ConstantValue.IsNative"/> is true, then this property contains the native value.
            Otherwise it is represented differently depending upon its type.
            <list type="bullet">
            <item>If the constant is a primitive value, then the value will be a primitive value such as an
            integer, string, float or null.</item>
            <item>If the constant is an enum, then the value will be a primitive value of the underlying type of the enum.</item>
            <item>If the constant is an array, then the value will be an array of <see cref="T:Gallio.Common.Reflection.ConstantValue"/>
            objects representing the elements of the array.</item>
            <item>If the constant is a type, then the value will be a <see cref="T:Gallio.Common.Reflection.ITypeInfo"/>.</item>
            </list>
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Common.Reflection.ConstantValue.IsNative">
            <summary>
            Returns true if the contents of <see cref="P:Gallio.Common.Reflection.ConstantValue.Value"/> can be interpreted as a native value
            or false if <see cref="M:Gallio.Common.Reflection.ConstantValue.Resolve(System.Boolean)"/> must be used to resolve the constant to a native value.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.ConstantValue.IsArray">
            <summary>
            Returns true if the value is an array.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.ConstantValue.IsEnum">
            <summary>
            Returns true if the value is an enum.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.ConstantValue.IsType">
            <summary>
            Returns true if the value is a type.
            </summary>
        </member>
        <member name="T:Gallio.Common.Reflection.ConstantValue.UnresolvedEnum">
            <summary>
            A placeholder enum type used to express enum values that cannot be resolved because
            their actual enum type cannot be resolved.
            </summary>
        </member>
        <member name="T:Gallio.Common.Reflection.DeclaringTypeComparer`1">
            <summary>
            Sorts an members that all belong to the same type
            such that the members declared by supertypes appear before those
            declared by subtypes.
            </summary>
            <example>
            If type A derives from types B and if type C derives from B then given methods
            A.Foo, A.Bar, B.Foo, C.Quux one possible sorted order will be:
            B.Foo, C.Quux, A.Bar, A.Foo.  The members are not sorted by name or
            by any other criterion except by relative specificity of the
            declaring types.
            </example>
        </member>
        <member name="F:Gallio.Common.Reflection.DeclaringTypeComparer`1.Instance">
            <summary>
            Gets the singleton instance of the comparer.
            </summary>
        </member>
        <member name="M:Gallio.Common.Reflection.DeclaringTypeComparer`1.Compare(`0,`0)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Common.Reflection.IAssemblyInfo">
            <summary>
            A <see cref="T:System.Reflection.Assembly"/> reflection wrapper.
            </summary>
            <remarks>
            <para>
            This wrapper enables reflection-based algorithms to be used against
            code that may or may not be loaded into the current AppDomain.
            For example, the target of the wrapper could be an in-memory
            code model representation.
            </para>
            </remarks>
        </member>
        <member name="T:Gallio.Common.Reflection.ICodeElementInfo">
            <summary>
            Represents a structural element of some code base. 
            </summary>
            <remarks>
            <para>
            This interface is the base of a hierarchy of abstract reflection objects.
            Different implementations of these objects may be used to perform
            reflection over different sources.
            </para>
            </remarks>
            <seealso cref="T:Gallio.Common.Reflection.Reflector"/>
        </member>
        <member name="M:Gallio.Common.Reflection.ICodeElementInfo.GetAttributeInfos(Gallio.Common.Reflection.ITypeInfo,System.Boolean)">
            <summary>
            Gets information about the code element's custom attributes of the specified type.
            </summary>
            <param name="attributeType">The attribute type, or null to return attributes of all types.</param>
            <param name="inherit">If true, includes inherited attributes
            from base types (but not from interfaces, just like <see cref="T:System.Reflection.ICustomAttributeProvider"/> does).</param>
            <returns>The code element's attributes.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.ICodeElementInfo.HasAttribute(Gallio.Common.Reflection.ITypeInfo,System.Boolean)">
            <summary>
            Returns true if the code element has a custom attribute of the specified type.
            </summary>
            <param name="attributeType">The attribute type, or null to search for attributes of all types.</param>
            <param name="inherit">If true, includes inherited attributes
            from base types (but not from interfaces, just like <see cref="T:System.Reflection.ICustomAttributeProvider"/> does).</param>
            <returns>True if the code element has at least one attribute of the specified type.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.ICodeElementInfo.GetAttributes(Gallio.Common.Reflection.ITypeInfo,System.Boolean)">
            <summary>
            Gets the code element's custom attributes of the specified type.
            </summary>
            <param name="attributeType">The attribute type.</param>
            <param name="inherit">If true, includes inherited attributes
            from base types (but not from interfaces, just like <see cref="T:System.Reflection.ICustomAttributeProvider"/> does).</param>
            <returns>The attributes.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.ICodeElementInfo.GetXmlDocumentation">
            <summary>
            Gets the XML documentation associated with the code element.
            </summary>
            <returns>The XML documentation or null if none available.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.ICodeElementInfo.GetCodeLocation">
            <summary>
            Gets the location of a resource that contains the declaration of this code element, or
            <see cref="F:Gallio.Common.Reflection.CodeLocation.Unknown"/> if not available.  The location may refer to the code
            element's source code or to the location of its compiled assembly.
            </summary>
            <returns>The code location.</returns>
        </member>
        <member name="P:Gallio.Common.Reflection.ICodeElementInfo.Name">
            <summary>
            Gets the name of the code element.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.ICodeElementInfo.Kind">
            <summary>
            Gets the kind of code element represented by this instance.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.ICodeElementInfo.CodeReference">
            <summary>
            Gets a <see cref="P:Gallio.Common.Reflection.ICodeElementInfo.CodeReference"/> for this code element.
            </summary>
            <returns>The code reference.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.IAssemblyInfo.GetName">
            <summary>
            Gets the <see cref="T:System.Reflection.AssemblyName"/> of the assembly.
            </summary>
            <returns>The assembly name.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.IAssemblyInfo.GetReferencedAssemblies">
            <summary>
            Gets the names of the assemblies referenced by this assembly.
            </summary>
            <returns>The names of the references assemblies.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.IAssemblyInfo.GetExportedTypes">
            <summary>
            Gets the public types exported by the assembly.
            </summary>
            <returns>The exported types.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.IAssemblyInfo.GetTypes">
            <summary>
            Gets all of the types in an assembly.
            </summary>
            <returns>The types.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.IAssemblyInfo.GetType(System.String)">
            <summary>
            Gets a public type by name, or null if not found.
            </summary>
            <param name="typeName">The type name.</param>
            <returns>The type.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.IAssemblyInfo.Resolve(System.Boolean)">
            <summary>
            Resolves the wrapper to its native reflection target.
            </summary>
            <param name="throwOnError">If true, throws an exception if the target could
            not be resolved, otherwise returns a reflection object that represents an
            unresolved member which may only support a subset of the usual operations.</param>
            <returns>The native reflection target.</returns>
            <exception cref="T:Gallio.Common.Reflection.ReflectionResolveException">Thrown if the target cannot be resolved.</exception>
            <seealso cref="M:Gallio.Common.Reflection.Reflector.IsUnresolved(System.Reflection.Assembly)"/>
        </member>
        <member name="P:Gallio.Common.Reflection.IAssemblyInfo.Path">
            <summary>
            Gets the codebase of the assembly as a local path if possible or as a Uri otherwise.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.IAssemblyInfo.FullName">
            <summary>
            Gets the full name of the assembly.
            </summary>
        </member>
        <member name="T:Gallio.Common.Reflection.IAttributeInfo">
            <summary>
            Provides information about the contents of a custom attribute.
            </summary>
        </member>
        <member name="M:Gallio.Common.Reflection.IAttributeInfo.GetFieldValue(System.String)">
            <summary>
            Gets an attribute field value.
            </summary>
            <param name="name">The field name.</param>
            <returns>The value, or a default value of the field's type if the field with the specified name
            was not initialized by the attribute declaration.</returns>
            <exception cref="T:System.ArgumentException">Thrown if there is no writable instance field with the specified name.</exception>
        </member>
        <member name="M:Gallio.Common.Reflection.IAttributeInfo.GetPropertyValue(System.String)">
            <summary>
            Gets an attribute property value.
            </summary>
            <param name="name">The property name.</param>
            <returns>The value, or a default value of the propery's type if the property with the specified name was not
            initialized by the attribute declaration.</returns>
            <exception cref="T:System.ArgumentException">Thrown if there is no writable instance property with the specified name.</exception>
        </member>
        <member name="M:Gallio.Common.Reflection.IAttributeInfo.Resolve(System.Boolean)">
            <summary>
            Gets the attribute as an object.
            </summary>
            <param name="throwOnError">If true, throws an exception if the target could
            not be resolved, otherwise the result may include unresolved types, enums or arrays
            though it still may throw an exception if the attribute class cannot be instantiated.</param>
            <returns>The attribute.</returns>
            <exception cref="T:Gallio.Common.Reflection.ReflectionResolveException">Thrown if the attribute could not be resolved.</exception>
        </member>
        <member name="P:Gallio.Common.Reflection.IAttributeInfo.Type">
            <summary>
            Gets the attribute type.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.IAttributeInfo.Constructor">
            <summary>
            Gets the constructor used to create the attribute.
            </summary>
            <exception cref="T:System.NotSupportedException">Thrown if not supported.</exception>
        </member>
        <member name="P:Gallio.Common.Reflection.IAttributeInfo.InitializedArgumentValues">
            <summary>
            Gets the initialized attribute constructor argument values.
            </summary>
            <exception cref="T:System.NotSupportedException">Thrown if not supported.</exception>
        </member>
        <member name="P:Gallio.Common.Reflection.IAttributeInfo.InitializedFieldValues">
            <summary>
            Gets the initialized attribute field values.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.IAttributeInfo.InitializedPropertyValues">
            <summary>
            Gets the initialized attribute property values.
            </summary>
        </member>
        <member name="T:Gallio.Common.Reflection.IConstructorInfo">
            <summary>
            A <see cref="T:System.Reflection.ConstructorInfo"/> reflection wrapper.
            </summary>
            <remarks>
            <para>
            This wrapper enables reflection-based algorithms to be used against
            code that may or may not be loaded into the current AppDomain.
            For example, the target of the wrapper could be an in-memory
            code model representation.
            </para>
            </remarks>
        </member>
        <member name="T:Gallio.Common.Reflection.IFunctionInfo">
            <summary>
            A <see cref="T:System.Reflection.MethodBase"/> reflection wrapper.
            </summary>
            <remarks>
            <para>
            This wrapper enables reflection-based algorithms to be used against
            code that may or may not be loaded into the current AppDomain.
            For example, the target of the wrapper could be an in-memory
            code model representation.
            </para>
            </remarks>
        </member>
        <member name="T:Gallio.Common.Reflection.IMemberInfo">
            <summary>
            A <see cref="T:System.Reflection.MemberInfo"/> reflection wrapper.
            </summary>
            <remarks>
            <para>
            This wrapper enables reflection-based algorithms to be used against
            code that may or may not be loaded into the current AppDomain.
            For example, the target of the wrapper could be an in-memory
            code model representation.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Common.Reflection.IMemberInfo.Resolve(System.Boolean)">
            <summary>
            Gets the member to its underlying native reflection type.
            </summary>
            <param name="throwOnError">If true, throws an exception if the target could
            not be resolved, otherwise returns a reflection object that represents an
            unresolved member which may only support a subset of the usual operations.</param>
            <returns>The underlying native reflection type.</returns>
            <exception cref="T:Gallio.Common.Reflection.ReflectionResolveException">Thrown if the target cannot be resolved.</exception>
            <seealso cref="M:Gallio.Common.Reflection.Reflector.IsUnresolved(System.Reflection.MemberInfo)"/>
        </member>
        <member name="P:Gallio.Common.Reflection.IMemberInfo.DeclaringType">
            <summary>
            Gets the declaring type of the member.
            </summary>
            <remarks>
            <para>
            If the member not a type or is a nested type,
            returns its containing type. If it is a generic parameter, returns the type
            to which it (or its declaring method) belongs.  Otherwise returns null.
            </para>
            </remarks>
            <seealso cref="P:Gallio.Common.Reflection.IGenericParameterInfo.DeclaringMethod"/>
            <seealso cref="P:Gallio.Common.Reflection.IMemberInfo.ReflectedType"/>
        </member>
        <member name="P:Gallio.Common.Reflection.IMemberInfo.ReflectedType">
            <summary>
            Gets the reflected type of the member. The reflected type is the type that was
            used to locate the member. If the member was inherited from a base class, its
            declaring type will be the base class but its reflected type will be the inherited
            class from which the member was accessed.
            </summary>
            <remarks>
            <para>
            If the member not a type or is a nested type, returns its reflected containing type.
            If it is a generic parameter, returns the declaring type to which it (or its
            declaring method) belongs. Otherwise returns null.
            </para>
            </remarks>
            <seealso cref="P:Gallio.Common.Reflection.IMemberInfo.DeclaringType"/>
        </member>
        <member name="M:Gallio.Common.Reflection.IFunctionInfo.Resolve(System.Boolean)">
            <summary>
            Resolves the wrapper to its native reflection target.
            </summary>
            <param name="throwOnError">If true, throws an exception if the target could
            not be resolved, otherwise returns a reflection object that represents an
            unresolved member which may only support a subset of the usual operations.</param>
            <returns>The native reflection target.</returns>
            <exception cref="T:Gallio.Common.Reflection.ReflectionResolveException">Thrown if the target cannot be resolved.</exception>
            <seealso cref="M:Gallio.Common.Reflection.Reflector.IsUnresolved(System.Reflection.MemberInfo)"/>
        </member>
        <member name="P:Gallio.Common.Reflection.IFunctionInfo.MethodAttributes">
            <summary>
            Gets the method attributes.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.IFunctionInfo.CallingConvention">
            <summary>
            Gets the calling conventions for this method.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.IFunctionInfo.IsAbstract">
            <summary>
            Returns true if the method is abstract.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.IFunctionInfo.IsFinal">
            <summary>
            Returns true if the method is final.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.IFunctionInfo.IsStatic">
            <summary>
            Returns true if the method is static.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.IFunctionInfo.IsVirtual">
            <summary>
            Gets a value indicating whether the method is virtual.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.IFunctionInfo.IsAssembly">
            <summary>
            Gets a value indicating whether this method can be called by other classes in the same assembly.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.IFunctionInfo.IsFamily">
            <summary>
            Gets a value indicating whether access to this method is restricted to members of the class and members of its derived classes.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.IFunctionInfo.IsFamilyAndAssembly">
            <summary>
            Gets a value indicating whether this method can be called by derived classes if they are in the same assembly.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.IFunctionInfo.IsFamilyOrAssembly">
            <summary>
            Gets a value indicating whether this method can be called by derived classes, wherever they are, and by all classes in the same assembly.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.IFunctionInfo.IsPrivate">
            <summary>
            Gets a value indicating whether this member is private.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.IFunctionInfo.IsPublic">
            <summary>
            Gets a value indicating whether this is a public method.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.IFunctionInfo.IsHideBySig">
            <summary>
            Gets a value indicating whether only a member of the same kind with exactly the same signature is hidden in the derived class.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.IFunctionInfo.Parameters">
            <summary>
            Gets the parameters of the function.
            </summary>
            <returns>The parameters.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.IConstructorInfo.Resolve(System.Boolean)">
            <summary>
            Resolves the wrapper to its native reflection target.
            </summary>
            <param name="throwOnError">If true, throws an exception if the target could
            not be resolved, otherwise returns a reflection object that represents an
            unresolved member which may only support a subset of the usual operations.</param>
            <returns>The native reflection target.</returns>
            <exception cref="T:Gallio.Common.Reflection.ReflectionResolveException">Thrown if the target cannot be resolved.</exception>
            <seealso cref="M:Gallio.Common.Reflection.Reflector.IsUnresolved(System.Reflection.MemberInfo)"/>
        </member>
        <member name="T:Gallio.Common.Reflection.IEventInfo">
            <summary>
            A <see cref="T:System.Reflection.EventInfo"/> reflection wrapper.
            </summary>
            <remarks>
            <para>
            This wrapper enables reflection-based algorithms to be used against
            code that may or may not be loaded into the current AppDomain.
            For example, the target of the wrapper could be an in-memory
            code model representation.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Common.Reflection.IEventInfo.Resolve(System.Boolean)">
            <summary>
            Resolves the wrapper to its native reflection target.
            </summary>
            <param name="throwOnError">If true, throws an exception if the target could
            not be resolved, otherwise returns a reflection object that represents an
            unresolved member which may only support a subset of the usual operations.</param>
            <returns>The native reflection target.</returns>
            <exception cref="T:Gallio.Common.Reflection.ReflectionResolveException">Thrown if the target cannot be resolved.</exception>
            <seealso cref="M:Gallio.Common.Reflection.Reflector.IsUnresolved(System.Reflection.MemberInfo)"/>
        </member>
        <member name="P:Gallio.Common.Reflection.IEventInfo.EventAttributes">
            <summary>
            Gets the event attributes.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.IEventInfo.AddMethod">
            <summary>
            Gets the add method of the event, or null if none.
            </summary>
            <returns>The add method, or null if none.</returns>
        </member>
        <member name="P:Gallio.Common.Reflection.IEventInfo.RaiseMethod">
            <summary>
            Gets the raise method of the event, or null if none.
            </summary>
            <returns>The raise method, or null if none.</returns>
        </member>
        <member name="P:Gallio.Common.Reflection.IEventInfo.RemoveMethod">
            <summary>
            Gets the remove method of the event, or null if none.
            </summary>
            <returns>The remove method, or null if none.</returns>
        </member>
        <member name="P:Gallio.Common.Reflection.IEventInfo.EventHandlerType">
            <summary>
            Gets the event handler type.
            </summary>
        </member>
        <member name="T:Gallio.Common.Reflection.IFieldInfo">
            <summary>
            A <see cref="T:System.Reflection.FieldInfo"/> reflection wrapper.
            </summary>
            <remarks>
            <para>
            This wrapper enables reflection-based algorithms to be used against
            code that may or may not be loaded into the current AppDomain.
            For example, the target of the wrapper could be an in-memory
            code model representation.
            </para>
            </remarks>
        </member>
        <member name="T:Gallio.Common.Reflection.ISlotInfo">
            <summary>
            A slot represents a field, property or parameter.  It is used to
            simplify the handling of data binding since all three of these types
            are similar in that they can hold values of some type.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.ISlotInfo.ValueType">
            <summary>
            Gets the type of value held in the slot.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.ISlotInfo.Position">
            <summary>
            Gets the positional index of a method parameter slot, -1 if the
            slot is a method return parameter, or 0 if the slot is of some other kind.
            </summary>
        </member>
        <member name="M:Gallio.Common.Reflection.IFieldInfo.Resolve(System.Boolean)">
            <summary>
            Resolves the wrapper to its native reflection target.
            </summary>
            <param name="throwOnError">If true, throws an exception if the target could
            not be resolved, otherwise returns a reflection object that represents an
            unresolved member which may only support a subset of the usual operations.</param>
            <returns>The native reflection target.</returns>
            <exception cref="T:Gallio.Common.Reflection.ReflectionResolveException">Thrown if the target cannot be resolved.</exception>
            <seealso cref="M:Gallio.Common.Reflection.Reflector.IsUnresolved(System.Reflection.MemberInfo)"/>
        </member>
        <member name="P:Gallio.Common.Reflection.IFieldInfo.FieldAttributes">
            <summary>
            Gets the field attributes.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.IFieldInfo.IsLiteral">
            <summary>
            Returns true if the field is a literal set at compile time.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.IFieldInfo.IsInitOnly">
            <summary>
            Returns true if the field is read-only and can only be set from the constructor.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.IFieldInfo.IsStatic">
            <summary>
            Returns true if the field is static.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.IFieldInfo.IsAssembly">
            <summary>
            Gets a value indicating whether this field has Assembly level visibility.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.IFieldInfo.IsFamily">
            <summary>
            Gets a value indicating whether this field has Family level visibility.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.IFieldInfo.IsFamilyAndAssembly">
            <summary>
            Gets a value indicating whether this field has FamilyAndAssembly level visibility.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.IFieldInfo.IsFamilyOrAssembly">
            <summary>
            Gets a value indicating whether this field has FamilyOrAssembly level visibility.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.IFieldInfo.IsPrivate">
            <summary>
            Gets a value indicating whether the field is private.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.IFieldInfo.IsPublic">
            <summary>
            Gets a value indicating whether the field is public.
            </summary>
        </member>
        <member name="T:Gallio.Common.Reflection.IGenericParameterInfo">
            <summary>
            A <see cref="T:System.Type"/> reflection wrapper for generic parameters.
            The parameter is presented as if it were a slot the accepted
            a value of type <see cref="T:System.Type"/>.
            </summary>
            <remarks>
            <para>
            This wrapper enables reflection-based algorithms to be used against
            code that may or may not be loaded into the current AppDomain.
            For example, the target of the wrapper could be an in-memory
            code model representation.
            </para>
            </remarks>
        </member>
        <member name="T:Gallio.Common.Reflection.ITypeInfo">
            <summary>
            A <see cref="T:System.Type"/> reflection wrapper.
            </summary>
            <remarks>
            <para>
            This wrapper enables reflection-based algorithms to be used against
            code that may or may not be loaded into the current AppDomain.
            For example, the target of the wrapper could be an in-memory
            code model representation.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Common.Reflection.ITypeInfo.GetConstructors(System.Reflection.BindingFlags)">
            <summary>
            Gets all constructors of the type that satisfy the binding flags.
            </summary>
            <param name="bindingFlags">The binding flags.</param>
            <returns>The constructors.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.ITypeInfo.GetMethod(System.String,System.Reflection.BindingFlags)">
            <summary>
            Gets a method by name, or null if not found.
            </summary>
            <param name="methodName">The method name.</param>
            <param name="bindingFlags">The binding flags.</param>
            <returns>The method.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.ITypeInfo.GetMethods(System.Reflection.BindingFlags)">
            <summary>
            Gets all methods of the type that satisfy the binding flags.
            </summary>
            <param name="bindingFlags">The binding flags.</param>
            <returns>The methods.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.ITypeInfo.GetProperty(System.String,System.Reflection.BindingFlags)">
            <summary>
            Gets a property by name, or null if not found.
            </summary>
            <param name="propertyName">The property name.</param>
            <param name="bindingFlags">The binding flags.</param>
            <returns>The property.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.ITypeInfo.GetProperties(System.Reflection.BindingFlags)">
            <summary>
            Gets all properties of the type that satisfy the binding flags.
            </summary>
            <param name="bindingFlags">The binding flags.</param>
            <returns>The properties.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.ITypeInfo.GetField(System.String,System.Reflection.BindingFlags)">
            <summary>
            Gets a field by name, or null if not found.
            </summary>
            <param name="fieldName">The field name.</param>
            <param name="bindingFlags">The binding flags.</param>
            <returns>The property.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.ITypeInfo.GetFields(System.Reflection.BindingFlags)">
            <summary>
            Gets all fields of the type that satisfy the binding flags.
            </summary>
            <param name="bindingFlags">The binding flags.</param>
            <returns>The fields.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.ITypeInfo.GetEvent(System.String,System.Reflection.BindingFlags)">
            <summary>
            Gets a event by name, or null if not found.
            </summary>
            <param name="eventName">The event name.</param>
            <param name="bindingFlags">The binding flags.</param>
            <returns>The event.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.ITypeInfo.GetEvents(System.Reflection.BindingFlags)">
            <summary>
            Gets all events of the type that satisfy the binding flags.
            </summary>
            <param name="bindingFlags">The binding flags.</param>
            <returns>The events.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.ITypeInfo.GetNestedType(System.String,System.Reflection.BindingFlags)">
            <summary>
            Gets a nested type by name, or null if not found.
            </summary>
            <param name="nestedTypeName">The nested type name.</param>
            <param name="bindingFlags">The binding flags.</param>
            <returns>The nested type.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.ITypeInfo.GetNestedTypes(System.Reflection.BindingFlags)">
            <summary>
            Gets all nested types of the type that satisfy the binding flags.
            </summary>
            <param name="bindingFlags">The binding flags.</param>
            <returns>The nested types.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.ITypeInfo.IsAssignableFrom(Gallio.Common.Reflection.ITypeInfo)">
            <summary>
            Returns true if variables of this type can be assigned with values of the specified type.
            </summary>
            <param name="type">The other type, or null if none.</param>
            <returns>True if the other type is not null and this type is assignable from the other type.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.ITypeInfo.IsSubclassOf(Gallio.Common.Reflection.ITypeInfo)">
            <summary>
            Returns true if this type is a subclass of the specified type.
            </summary>
            <param name="type">The other type, or null if none.</param>
            <returns>True if the other type is not null, this type is a subclass of the other type,
            and this type not the same as the other type.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.ITypeInfo.MakeArrayType(System.Int32)">
            <summary>
            Makes an array type of the specified rank.
            </summary>
            <param name="arrayRank">The array rank.</param>
            <returns>The array type.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.ITypeInfo.MakePointerType">
            <summary>
            Makes a pointer type.
            </summary>
            <returns>The pointer type.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.ITypeInfo.MakeByRefType">
            <summary>
            Makes a reference type.
            </summary>
            <returns>The reference type.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.ITypeInfo.MakeGenericType(System.Collections.Generic.IList{Gallio.Common.Reflection.ITypeInfo})">
            <summary>
            Makes a generic type instantiation.
            </summary>
            <param name="genericArguments">The generic arguments.</param>
            <returns>The generic type instantiation.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.ITypeInfo.Resolve(System.Boolean)">
            <summary>
            Resolves the wrapper to its native reflection target.
            </summary>
            <param name="throwOnError">If true, throws an exception if the target could
            not be resolved, otherwise returns a reflection object that represents an
            unresolved member which may only support a subset of the usual operations.</param>
            <returns>The native reflection target.</returns>
            <exception cref="T:Gallio.Common.Reflection.ReflectionResolveException">Thrown if the target cannot be resolved.</exception>
            <seealso cref="M:Gallio.Common.Reflection.Reflector.IsUnresolved(System.Reflection.MemberInfo)"/>
        </member>
        <member name="P:Gallio.Common.Reflection.ITypeInfo.Assembly">
            <summary>
            Gets the assembly in which the type is declared.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.ITypeInfo.Namespace">
            <summary>
            Gets the namespace in which the type is declared.
            </summary>
            <remarks>
            <para>
            If the type does not have a namespace, returns an object whose name is an empty string.
            This is different from the behavior of <see cref="P:System.Type.Namespace"/> which would ordinarily return null.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Common.Reflection.ITypeInfo.NamespaceName">
            <summary>
            Gets the name of the namespace in which the type is declared.
            </summary>
            <remarks>
            <para>
            If the type does not have a namespace, returns an empty string.
            This is different from the behavior of <see cref="P:System.Type.Namespace"/> which would ordinarily return null.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Common.Reflection.ITypeInfo.BaseType">
            <summary>
            Gets the base type of the type, or null if none.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.ITypeInfo.AssemblyQualifiedName">
            <summary>
            Gets the assembly-qualified name of the type, or null if the type is a generic parameter.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.ITypeInfo.FullName">
            <summary>
            Gets the full name of the type, or null if the type is a generic parameter.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.ITypeInfo.TypeAttributes">
            <summary>
            Gets the type attributes.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.ITypeInfo.IsAbstract">
            <summary>
            Returns true if the type is abstract and must be overridden.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.ITypeInfo.IsSealed">
            <summary>
            Returns true if the type is sealed.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.ITypeInfo.IsClass">
            <summary>
            Returns true if the type is a class.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.ITypeInfo.IsInterface">
            <summary>
            Returns true if the type is an interface.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.ITypeInfo.IsEnum">
            <summary>
            Returns true if the type represents an enumeration.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.ITypeInfo.IsValueType">
            <summary>
            Returns true if the type is a value type.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.ITypeInfo.IsNested">
            <summary>
            Returns true if the type is nested.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.ITypeInfo.IsNestedAssembly">
            <summary>
            Returns true if the type is nested and is visible only within its own assembly.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.ITypeInfo.IsNestedFamilyAndAssembly">
            <summary>
            Returns true if the type is nested and visible only to classes that belong to both its own family and its own assembly.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.ITypeInfo.IsNestedFamily">
            <summary>
            Returns true if the type is nested and visible only within its own family.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.ITypeInfo.IsNestedFamilyOrAssembly">
            <summary>
            Returns true if the type is nested and visible only to classes that belong to either its own family or to its own assembly.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.ITypeInfo.IsNestedPrivate">
            <summary>
            Returns true if the type is nested and declared private.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.ITypeInfo.IsNestedPublic">
            <summary>
            Returns true if the type is nested and declared public.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.ITypeInfo.IsPublic">
            <summary>
            Returns true if the type is declared public.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.ITypeInfo.IsNotPublic">
            <summary>
            Returns true if the type is not declared public.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.ITypeInfo.IsArray">
            <summary>
            Returns true if the type represents an array.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.ITypeInfo.IsPointer">
            <summary>
            Returns true if the type represents a pointer.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.ITypeInfo.IsByRef">
            <summary>
            Returns true if the type represents a type that is passed by reference.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.ITypeInfo.IsGenericParameter">
            <summary>
            Returns true if the type represents a generic type parameter.
            </summary>
            <seealso cref="T:Gallio.Common.Reflection.IGenericParameterInfo"/>
        </member>
        <member name="P:Gallio.Common.Reflection.ITypeInfo.IsGenericType">
            <summary>
            Returns true if the type is a generic type.
            If so, the <see cref="P:Gallio.Common.Reflection.ITypeInfo.GenericArguments"/> list will be non-empty.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.ITypeInfo.IsGenericTypeDefinition">
            <summary>
            Returns true if the type is a generic type definition.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.ITypeInfo.ContainsGenericParameters">
            <summary>
            Returns true if the type contains unbound generic parameters.
            If so, the <see cref="P:Gallio.Common.Reflection.ITypeInfo.GenericArguments"/> list will contain one
            or more <see cref="T:Gallio.Common.Reflection.IGenericParameterInfo"/> objects.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.ITypeInfo.GenericArguments">
            <summary>
            Gets the generic arguments of the type.
            The list may contain <see cref="T:Gallio.Common.Reflection.IGenericParameterInfo"/> objects when
            no type has yet been bound to a certain generic parameter slots.
            </summary>
            <returns>The generic arguments, or an empty list if there are none.</returns>
        </member>
        <member name="P:Gallio.Common.Reflection.ITypeInfo.GenericTypeDefinition">
            <summary>
            Gets the generic type definition of this type, or null if the type is not generic.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.ITypeInfo.ArrayRank">
            <summary>
            Gets the rank of the array type.
            </summary>
            <exception cref="T:System.InvalidOperationException">Thrown if the type is not an array type.</exception>
        </member>
        <member name="P:Gallio.Common.Reflection.ITypeInfo.TypeCode">
            <summary>
            Gets the type's <see cref="P:Gallio.Common.Reflection.ITypeInfo.TypeCode"/>.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.ITypeInfo.Interfaces">
            <summary>
            Gets all of the type's interfaces.
            </summary>
            <returns>The type's interfaces.</returns>
        </member>
        <member name="P:Gallio.Common.Reflection.ITypeInfo.ElementType">
            <summary>
            Gets the element type of an array, pointer or byref type, or null if none.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.IGenericParameterInfo.GenericParameterAttributes">
            <summary>
            Gets the generic parameter attributes.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.IGenericParameterInfo.DeclaringMethod">
            <summary>
            Gets the declaring generic method of a generic method parameter
            or null for a generic type parameter.
            </summary>
            <seealso cref="P:Gallio.Common.Reflection.IMemberInfo.DeclaringType"/>
        </member>
        <member name="P:Gallio.Common.Reflection.IGenericParameterInfo.Constraints">
            <summary>
            Gets the constraints of the generic parameter.
            </summary>
        </member>
        <member name="T:Gallio.Common.Reflection.IMethodInfo">
            <summary>
            A <see cref="T:System.Reflection.MethodInfo"/> reflection wrapper.
            </summary>
            <remarks>
            <para>
            This wrapper enables reflection-based algorithms to be used against
            code that may or may not be loaded into the current AppDomain.
            For example, the target of the wrapper could be an in-memory
            code model representation.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Common.Reflection.IMethodInfo.MakeGenericMethod(System.Collections.Generic.IList{Gallio.Common.Reflection.ITypeInfo})">
            <summary>
            Makes a generic method instantiation.
            </summary>
            <param name="genericArguments">The generic arguments.</param>
            <returns>The generic method instantiation.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.IMethodInfo.Resolve(System.Boolean)">
            <summary>
            Resolves the wrapper to its native reflection target.
            </summary>
            <param name="throwOnError">If true, throws an exception if the target could
            not be resolved, otherwise returns a reflection object that represents an
            unresolved member which may only support a subset of the usual operations.</param>
            <returns>The native reflection target.</returns>
            <exception cref="T:System.NotSupportedException">Thrown if the target cannot be resolved.</exception>
            <seealso cref="M:Gallio.Common.Reflection.Reflector.IsUnresolved(System.Reflection.MemberInfo)"/>
        </member>
        <member name="P:Gallio.Common.Reflection.IMethodInfo.IsGenericMethod">
            <summary>
            Returns true if the method is a generic method.
            If so, the <see cref="P:Gallio.Common.Reflection.IMethodInfo.GenericArguments"/> list will be non-empty.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.IMethodInfo.IsGenericMethodDefinition">
            <summary>
            Returns true if the method is a generic method definition.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.IMethodInfo.ContainsGenericParameters">
            <summary>
            Returns true if the method contains unbound generic parameters.
            If so, the <see cref="P:Gallio.Common.Reflection.IMethodInfo.GenericArguments"/> list will contain one
            or more <see cref="T:Gallio.Common.Reflection.IGenericParameterInfo"/> objects.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.IMethodInfo.GenericArguments">
            <summary>
            Gets the generic arguments of the method.
            The list may contain <see cref="T:Gallio.Common.Reflection.IGenericParameterInfo"/> objects when
            no type has yet been bound to a certain generic parameter slots.
            </summary>
            <returns>The generic arguments.</returns>
        </member>
        <member name="P:Gallio.Common.Reflection.IMethodInfo.GenericMethodDefinition">
            <summary>
            Gets the generic method definition of this method, or null if the method is not generic.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.IMethodInfo.ReturnType">
            <summary>
            Gets the method return type.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.IMethodInfo.ReturnParameter">
            <summary>
            Gets the method return parameter object that contains information
            about the return value and its attributes.
            </summary>
        </member>
        <member name="T:Gallio.Common.Reflection.Impl.BaseReflectionPolicy">
            <summary>
            A base reflection policy implementation that performs argument validation.
            </summary>
        </member>
        <member name="T:Gallio.Common.Reflection.IReflectionPolicy">
            <summary>
            A reflection policy provides access to top-level reflection resources
            such as assemblies.
            </summary>
        </member>
        <member name="M:Gallio.Common.Reflection.IReflectionPolicy.LoadAssembly(System.Reflection.AssemblyName)">
            <summary>
            Loads an assembly by name.
            </summary>
            <param name="assemblyName">The full or partial assembly name of the assembly to load.</param>
            <returns>The loaded assembly.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="assemblyName"/> is null.</exception>
            <exception cref="T:System.Exception">Thrown if the assembly could not be loaded for any reason.</exception>
        </member>
        <member name="M:Gallio.Common.Reflection.IReflectionPolicy.LoadAssemblyFrom(System.String)">
            <summary>
            Loads an assembly from a file.
            </summary>
            <param name="assemblyFile">The assembly file path.</param>
            <returns>The loaded assembly.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="assemblyFile"/> is null.</exception>
            <exception cref="T:System.Exception">Thrown if the assembly could not be loaded for any reason.</exception>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.BaseReflectionPolicy.LoadAssembly(System.Reflection.AssemblyName)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.BaseReflectionPolicy.LoadAssemblyFrom(System.String)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.BaseReflectionPolicy.LoadAssemblyImpl(System.Reflection.AssemblyName)">
            <summary>
            Loads an assembly.
            </summary>
            <param name="assemblyName">The assembly name, not null.</param>
            <returns>The loaded assembly wrapper.</returns>
            <exception cref="T:System.Exception">Any exception may be thrown if the loading fails.</exception>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.BaseReflectionPolicy.LoadAssemblyFromImpl(System.String)">
            <summary>
            Loads an assembly from a file.
            </summary>
            <param name="assemblyFile">The assembly file path, not null.</param>
            <returns>The loaded assembly wrapper.</returns>
            <exception cref="T:System.Exception">Any exception may be thrown if the loading fails.</exception>
        </member>
        <member name="T:Gallio.Common.Reflection.Impl.StaticReflectionPolicy">
            <summary>
            The static reflection policy base class is intended to assist with the implementation
            of custom reflection policies defined over static metadata.
            </summary>
            <remarks>
            <para>
            It flattens out the code element hierarchy to ease implementation of new policies.
            It provides a mechanism for handling generic type substitutions to ensure a consistent and
            correct implementation of generic type and generic method instantiations.
            </para>
            <para>
            Reflection policy subclasses should not perform generic type substitutions themselves.
            The rest of the infrastructure will take care of these details automatically.  However
            <see cref="T:Gallio.Common.Reflection.Impl.StaticDeclaredTypeWrapper"/> and <see cref="T:Gallio.Common.Reflection.Impl.StaticMethodWrapper"/> objects
            should be created with the type substitutions of the declaring type extended with
            generic type arguments.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticReflectionPolicy.Equals(Gallio.Common.Reflection.Impl.StaticWrapper,Gallio.Common.Reflection.Impl.StaticWrapper)">
            <summary>
            Determines if two wrappers represent the same object.
            </summary>
            <param name="a">The first wrapper, not null.</param>
            <param name="b">The second wrapper, not null.</param>
            <returns>True if both wrapper represent the same object.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticReflectionPolicy.GetHashCode(Gallio.Common.Reflection.Impl.StaticWrapper)">
            <summary>
            Gets a hashcode for a wrapper.
            </summary>
            <param name="wrapper">The wrapper, not null.</param>
            <returns>The wrapper's hash code.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticReflectionPolicy.GetAssemblyCustomAttributes(Gallio.Common.Reflection.Impl.StaticAssemblyWrapper)">
            <summary>
            Gets the custom attributes of an assembly.
            </summary>
            <param name="assembly">The assembly, not null.</param>
            <returns>The attributes.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticReflectionPolicy.GetAssemblyName(Gallio.Common.Reflection.Impl.StaticAssemblyWrapper)">
            <summary>
            Gets the name of an assembly.
            </summary>
            <param name="assembly">The assembly wrapper, not null.</param>
            <returns>The assembly name.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticReflectionPolicy.GetAssemblyPath(Gallio.Common.Reflection.Impl.StaticAssemblyWrapper)">
            <summary>
            Gets the path of an assembly.
            </summary>
            <param name="assembly">The assembly wrapper, not null.</param>
            <returns>The assembly path.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticReflectionPolicy.GetAssemblyReferences(Gallio.Common.Reflection.Impl.StaticAssemblyWrapper)">
            <summary>
            Gets the references of an assembly.
            </summary>
            <param name="assembly">The assembly wrapper, not null.</param>
            <returns>The assembly references.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticReflectionPolicy.GetAssemblyExportedTypes(Gallio.Common.Reflection.Impl.StaticAssemblyWrapper)">
            <summary>
            Gets the public types exported by an assembly.
            </summary>
            <param name="assembly">The assembly wrapper, not null.</param>
            <returns>The types.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticReflectionPolicy.GetAssemblyTypes(Gallio.Common.Reflection.Impl.StaticAssemblyWrapper)">
            <summary>
            Gets all types contained in an assembly.
            </summary>
            <param name="assembly">The assembly wrapper, not null.</param>
            <returns>The types.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticReflectionPolicy.GetAssemblyType(Gallio.Common.Reflection.Impl.StaticAssemblyWrapper,System.String)">
            <summary>
            Gets the specified named type within an assembly.
            </summary>
            <param name="assembly">The assembly wrapper, not null.</param>
            <param name="typeName">The type name, not null.</param>
            <returns>The type, or null if none.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticReflectionPolicy.GetAttributeConstructor(Gallio.Common.Reflection.Impl.StaticAttributeWrapper)">
            <summary>
            Gets the constructor of an attribute.
            </summary>
            <param name="attribute">The attribute, not null.</param>
            <returns>The constructor.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticReflectionPolicy.GetAttributeConstructorArguments(Gallio.Common.Reflection.Impl.StaticAttributeWrapper)">
            <summary>
            Gets the constructor arguments of an attribute.
            </summary>
            <param name="attribute">The attribute, not null.</param>
            <returns>The constructor argument values.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticReflectionPolicy.GetAttributeFieldArguments(Gallio.Common.Reflection.Impl.StaticAttributeWrapper)">
            <summary>
            Gets the field arguments of an attribute.
            </summary>
            <param name="attribute">The attribute, not null.</param>
            <returns>The field argument values.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticReflectionPolicy.GetAttributePropertyArguments(Gallio.Common.Reflection.Impl.StaticAttributeWrapper)">
            <summary>
            Gets the property arguments of an attribute.
            </summary>
            <param name="attribute">The attribute, not null.</param>
            <returns>The property argument values.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticReflectionPolicy.GetMemberCustomAttributes(Gallio.Common.Reflection.Impl.StaticMemberWrapper)">
            <summary>
            Gets the custom attributes of a member.
            </summary>
            <param name="member">The member, not null.</param>
            <returns>The custom attributes.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticReflectionPolicy.GetMemberName(Gallio.Common.Reflection.Impl.StaticMemberWrapper)">
            <summary>
            Gets the short name of a member.
            In the case of a generic type, should exclude the generic parameter count
            part of the name.  eg. "`1"
            </summary>
            <param name="member">The member, not null.</param>
            <returns>The member's name.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticReflectionPolicy.GetMemberSourceLocation(Gallio.Common.Reflection.Impl.StaticMemberWrapper)">
            <summary>
            Gets the source code location of a member.
            </summary>
            <param name="member">The member, not null.</param>
            <returns>The source code location, or <see cref="F:Gallio.Common.Reflection.CodeLocation.Unknown"/> if not available.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticReflectionPolicy.GetEventAttributes(Gallio.Common.Reflection.Impl.StaticEventWrapper)">
            <summary>
            Gets the attributes of an event.
            </summary>
            <param name="event">The event, not null.</param>
            <returns>The event attributes.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticReflectionPolicy.GetEventAddMethod(Gallio.Common.Reflection.Impl.StaticEventWrapper)">
            <summary>
            Gets the add method of an event, or null if none.
            </summary>
            <param name="event">The event, not null.</param>
            <returns>The add method, or null if none.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticReflectionPolicy.GetEventRaiseMethod(Gallio.Common.Reflection.Impl.StaticEventWrapper)">
            <summary>
            Gets the raise method of an event, or null if none.
            </summary>
            <param name="event">The event, not null.</param>
            <returns>The raise method, or null if none.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticReflectionPolicy.GetEventRemoveMethod(Gallio.Common.Reflection.Impl.StaticEventWrapper)">
            <summary>
            Gets the remove method of an event, or null if none.
            </summary>
            <param name="event">The event, not null.</param>
            <returns>The remove method, or null if none.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticReflectionPolicy.GetEventHandlerType(Gallio.Common.Reflection.Impl.StaticEventWrapper)">
            <summary>
            Gets the event handler type of an event.
            </summary>
            <param name="event">The event, not null.</param>
            <returns>The event handler type.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticReflectionPolicy.GetFieldAttributes(Gallio.Common.Reflection.Impl.StaticFieldWrapper)">
            <summary>
            Gets the attributes of a field.
            </summary>
            <param name="field">The field, not null.</param>
            <returns>The field attributes.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticReflectionPolicy.GetFieldType(Gallio.Common.Reflection.Impl.StaticFieldWrapper)">
            <summary>
            Gets the field type.
            </summary>
            <param name="field">The field, not null.</param>
            <returns>The field type.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticReflectionPolicy.GetPropertyAttributes(Gallio.Common.Reflection.Impl.StaticPropertyWrapper)">
            <summary>
            Gets the attributes of a property.
            </summary>
            <param name="property">The property, not null.</param>
            <returns>The property attributes.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticReflectionPolicy.GetPropertyType(Gallio.Common.Reflection.Impl.StaticPropertyWrapper)">
            <summary>
            Gets the property type.
            </summary>
            <param name="property">The property, not null.</param>
            <returns>The property type.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticReflectionPolicy.GetPropertyGetMethod(Gallio.Common.Reflection.Impl.StaticPropertyWrapper)">
            <summary>
            Gets the get method of a property, or null if none.
            </summary>
            <param name="property">The property, not null.</param>
            <returns>The get method, or null if none.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticReflectionPolicy.GetPropertySetMethod(Gallio.Common.Reflection.Impl.StaticPropertyWrapper)">
            <summary>
            Gets the set method of a property, or null if none.
            </summary>
            <param name="property">The property, not null.</param>
            <returns>The set method, or null if none.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticReflectionPolicy.GetFunctionAttributes(Gallio.Common.Reflection.Impl.StaticFunctionWrapper)">
            <summary>
            Gets the attributes of a function.
            </summary>
            <param name="function">The function, not null.</param>
            <returns>The function attributes.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticReflectionPolicy.GetFunctionCallingConvention(Gallio.Common.Reflection.Impl.StaticFunctionWrapper)">
            <summary>
            Gets the calling conventions of a function.
            </summary>
            <param name="function">The function, not null.</param>
            <returns>The function calling conventions.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticReflectionPolicy.GetFunctionParameters(Gallio.Common.Reflection.Impl.StaticFunctionWrapper)">
            <summary>
            Gets the parameters of a function.
            </summary>
            <param name="function">The function, not null.</param>
            <returns>The parameters.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticReflectionPolicy.GetMethodGenericParameters(Gallio.Common.Reflection.Impl.StaticMethodWrapper)">
            <summary>
            Gets the generic parameters of a method.
            </summary>
            <param name="method">The method, not null.</param>
            <returns>The generic parameters.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticReflectionPolicy.GetMethodReturnParameter(Gallio.Common.Reflection.Impl.StaticMethodWrapper)">
            <summary>
            Gets the return parameter of a method.
            </summary>
            <param name="method">The method, not null.</param>
            <returns>The return parameter.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticReflectionPolicy.GetParameterAttributes(Gallio.Common.Reflection.Impl.StaticParameterWrapper)">
            <summary>
            Gets the attributes of a parameter.
            </summary>
            <param name="parameter">The parameter, not null.</param>
            <returns>The parameter attributes.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticReflectionPolicy.GetParameterCustomAttributes(Gallio.Common.Reflection.Impl.StaticParameterWrapper)">
            <summary>
            Gets the custom attributes of a parameter.
            </summary>
            <param name="parameter">The parameter, not null.</param>
            <returns>The custom attributes.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticReflectionPolicy.GetParameterName(Gallio.Common.Reflection.Impl.StaticParameterWrapper)">
            <summary>
            Gets the name of a parameter.
            </summary>
            <param name="parameter">The parameter, not null.</param>
            <returns>The parameter's name.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticReflectionPolicy.GetParameterPosition(Gallio.Common.Reflection.Impl.StaticParameterWrapper)">
            <summary>
            Gets the parameter's position, or -1 if the parameter is a return value.
            </summary>
            <param name="parameter">The parameter, not null.</param>
            <returns>The parameter's position.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticReflectionPolicy.GetParameterType(Gallio.Common.Reflection.Impl.StaticParameterWrapper)">
            <summary>
            Gets the parameter type.
            </summary>
            <param name="parameter">The parameter, not null.</param>
            <returns>The parameter type.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticReflectionPolicy.GetTypeAttributes(Gallio.Common.Reflection.Impl.StaticDeclaredTypeWrapper)">
            <summary>
            Gets the attributes of a type.
            </summary>
            <param name="type">The type, not null.</param>
            <returns>The type attributes.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticReflectionPolicy.GetTypeAssembly(Gallio.Common.Reflection.Impl.StaticDeclaredTypeWrapper)">
            <summary>
            Gets the assembly that contains a type.
            </summary>
            <param name="type">The type, not null.</param>
            <returns>The type's assembly.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticReflectionPolicy.GetTypeNamespace(Gallio.Common.Reflection.Impl.StaticDeclaredTypeWrapper)">
            <summary>
            Gets the namespace that contains a type.
            </summary>
            <param name="type">The type, not null.</param>
            <returns>The type's namespace, or an empty string if it has none.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticReflectionPolicy.GetTypeBaseType(Gallio.Common.Reflection.Impl.StaticDeclaredTypeWrapper)">
            <summary>
            Gets the base type of atype.
            </summary>
            <param name="type">The type, not null.</param>
            <returns>The base type.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticReflectionPolicy.GetTypeInterfaces(Gallio.Common.Reflection.Impl.StaticDeclaredTypeWrapper)">
            <summary>
            Gets the interfaces directly implemented by a type.
            </summary>
            <param name="type">The type, not null.</param>
            <returns>The type's interfaces.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticReflectionPolicy.GetTypeGenericParameters(Gallio.Common.Reflection.Impl.StaticDeclaredTypeWrapper)">
            <summary>
            Gets the generic parameters of a type, including all generic parameters
            of its declaring types if it is nested enumerated from outside in.
            </summary>
            <param name="type">The type, not null.</param>
            <returns>The type's generic parameters.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticReflectionPolicy.GetTypeConstructors(Gallio.Common.Reflection.Impl.StaticDeclaredTypeWrapper)">
            <summary>
            Gets the constructors of a type.
            Only includes declared methods, not inherited ones.
            </summary>
            <param name="type">The type, not null.</param>
            <returns>The type's constructors.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticReflectionPolicy.GetTypeMethods(Gallio.Common.Reflection.Impl.StaticDeclaredTypeWrapper,Gallio.Common.Reflection.Impl.StaticDeclaredTypeWrapper)">
            <summary>
            Gets the methods of a type including accessor methods for properties and events.
            Only includes declared methods, not inherited ones.
            </summary>
            <param name="type">The type, not null.</param>
            <param name="reflectedType">The reflected type, not null.</param>
            <returns>The type's methods.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticReflectionPolicy.GetTypeProperties(Gallio.Common.Reflection.Impl.StaticDeclaredTypeWrapper,Gallio.Common.Reflection.Impl.StaticDeclaredTypeWrapper)">
            <summary>
            Gets the properties of a type.
            Only includes declared methods, not inherited ones.
            </summary>
            <param name="type">The type, not null.</param>
            <param name="reflectedType">The reflected type, not null.</param>
            <returns>The type's properties.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticReflectionPolicy.GetTypeFields(Gallio.Common.Reflection.Impl.StaticDeclaredTypeWrapper,Gallio.Common.Reflection.Impl.StaticDeclaredTypeWrapper)">
            <summary>
            Gets the fields of a type.
            Only includes declared methods, not inherited ones.
            </summary>
            <param name="type">The type, not null.</param>
            <param name="reflectedType">The reflected type, not null.</param>
            <returns>The type's fields.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticReflectionPolicy.GetTypeEvents(Gallio.Common.Reflection.Impl.StaticDeclaredTypeWrapper,Gallio.Common.Reflection.Impl.StaticDeclaredTypeWrapper)">
            <summary>
            Gets the events of a type.
            Only includes declared methods, not inherited ones.
            </summary>
            <param name="type">The type, not null.</param>
            <param name="reflectedType">The reflected type, not null.</param>
            <returns>The type's events.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticReflectionPolicy.GetTypeNestedTypes(Gallio.Common.Reflection.Impl.StaticDeclaredTypeWrapper)">
            <summary>
            Gets the nested types of a type.
            Only includes declared nested types, not inherited ones.
            </summary>
            <param name="type">The type, not null.</param>
            <returns>The type's nested types.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticReflectionPolicy.GetGenericParameterAttributes(Gallio.Common.Reflection.Impl.StaticGenericParameterWrapper)">
            <summary>
            Gets the attributes of a generic parameter.
            </summary>
            <param name="genericParameter">The generic parameter, not null.</param>
            <returns>The generic parameter attributes.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticReflectionPolicy.GetGenericParameterPosition(Gallio.Common.Reflection.Impl.StaticGenericParameterWrapper)">
            <summary>
            Gets the generic parameter position.
            </summary>
            <param name="genericParameter">The generic parameter, not null.</param>
            <returns>The generic parameter position.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticReflectionPolicy.GetGenericParameterConstraints(Gallio.Common.Reflection.Impl.StaticGenericParameterWrapper)">
            <summary>
            Gets the generic parameter constraints.
            </summary>
            <param name="genericParameter">The generic parameter, not null.</param>
            <returns>The generic parameter constraints.</returns>
        </member>
        <member name="T:Gallio.Common.Reflection.Impl.ComDebugSymbolResolver">
            <summary>
            Resolves debug symbols via the CorMetaDataDispenser COM class.
            </summary>
            <remarks>
            <para>
            This code has been adapted from the 
            <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=38449a42-6b7a-4e28-80ce-c55645ab1310">
            CLR Managed Debugger sample</a> and from <a href="http://blogs.msdn.com/jmstall/archive/2005/08/25/pdb2xml.aspx">
            Mike Stall's PDB2Xml program sample</a>. Many thanks to you!
            </para>
            <para>
            We do not use the ISymWrapper implementation of the symbol store interfaces because
            they throw COMExceptions whenever method metadata is not available.  This causes
            confusion for users because the Visual Studio Debugger Exception Assistant window
            may pop up dozens of times while loading symbol information.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.ComDebugSymbolResolver.#ctor(System.Boolean)">
            <summary>
            Creates a COM debug symbol resolver.
            </summary>
            <param name="avoidLocks">If true, avoids taking a lock on the PDB files but may use more memory or storage.</param>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.ComDebugSymbolResolver.Dispose">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.ComDebugSymbolResolver.GetSourceLocationForMethod(System.String,System.Int32)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Common.Reflection.Impl.DebugSymbolUtils">
            <summary>
            Helpers for working with <see cref="T:Gallio.Common.Reflection.Impl.IDebugSymbolResolver"/>.
            </summary>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.DebugSymbolUtils.CreateResolver">
            <summary>
            Creates a new debug symbol resolver appropriate for this platform.
            </summary>
            <returns>The debug symbol resolver.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.DebugSymbolUtils.GetSourceLocation(System.Type)">
            <summary>
            Gets the location of a source file that contains the declaration of a type, or
            unknown if not available.
            </summary>
            <param name="type">The type.</param>
            <returns>The code location, or <see cref="F:Gallio.Common.Reflection.CodeLocation.Unknown"/> if unknown.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="type"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.DebugSymbolUtils.GetSourceLocation(System.Reflection.MethodBase)">
            <summary>
            Gets the location of a source file that contains the declaration of a method, or
            unknown if not available.
            </summary>
            <param name="method">The method.</param>
            <returns>The source location, or <see cref="F:Gallio.Common.Reflection.CodeLocation.Unknown"/> if unknown.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="method"/> is null.</exception>
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.DebugSymbolUtils.Resolver">
            <summary>
            Gets the singleton debug symbol resolver used by these utilities.
            </summary>
            <remarks>
            Because this resolver is a singleton, it's important to remember that it will
            remain in memory for the lifetime of the process.  If you only need to load
            symbols for a short time and then discard them, use <see cref="M:Gallio.Common.Reflection.Impl.DebugSymbolUtils.CreateResolver"/>
            to create a new resolver.
            </remarks>
        </member>
        <member name="T:Gallio.Common.Reflection.Impl.DefaultXmlDocumentationResolver">
            <summary>
            The default XML documentation resolver reads XML documentation files on
            demand when available and caches them in memory for subsequent accesses.
            It takes care of mapping member names to XML documentation conventions
            when asked to resolve the documentation for a member.
            </summary>
            <remarks>
            <para>
            All operations are thread-safe.
            </para>
            </remarks>
        </member>
        <member name="T:Gallio.Common.Reflection.Impl.IXmlDocumentationResolver">
            <summary>
            Resolves members to XML documentation contents.
            </summary>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.IXmlDocumentationResolver.GetXmlDocumentation(System.String,System.String)">
            <summary>
            Gets the XML documentation for a member in an assembly.
            </summary>
            <param name="assemblyPath">The assembly path.</param>
            <param name="memberId">The XML documentation id of the member.</param>
            <returns>The XML documentation for the member, or null if none available.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="assemblyPath"/> or <paramref name="memberId"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.DefaultXmlDocumentationResolver.#ctor">
            <summary>
            Creates an XML documentation loader.
            </summary>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.DefaultXmlDocumentationResolver.GetXmlDocumentation(System.String,System.String)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.DefaultXmlDocumentationResolver.CachedDocument.NormalizeWhitespace(System.String)">
            <summary>
            The XML documentation gets pretty-printed with indentation by the compiler.
            We try to recover the original formatting by stripping out the minimal leading
            whitespace from each line.
            </summary>
        </member>
        <member name="T:Gallio.Common.Reflection.Impl.IResolvableTypeInfo">
            <summary>
            This extension of <see cref="T:Gallio.Common.Reflection.ITypeInfo"/> is provided to enable the resolution of
            a type with <see cref="M:Gallio.Common.Reflection.Impl.ReflectorResolveUtils.ResolveType(Gallio.Common.Reflection.Impl.IResolvableTypeInfo,System.Reflection.MethodInfo,System.Boolean)"/>.
            </summary>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.IResolvableTypeInfo.Resolve(System.Reflection.MethodInfo,System.Boolean)">
            <summary>
            Resolves the wrapper to its native reflection target within the scope
            of the specified method.
            </summary>
            <param name="methodContext">The method that is currently in scope, or null if none.
            This parameter is used when resolving types that are part of the signature
            of a generic method so that generic method arguments can be handled correctly.</param>
            <param name="throwOnError">If true, throws an exception if the target could
            not be resolved, otherwise returns a reflection object that represents an
            unresolved member which may only support a subset of the usual operations.</param>
            <returns>The native reflection target.</returns>
            <exception cref="T:Gallio.Common.Reflection.ReflectionResolveException">Thrown if the target cannot be resolved.</exception>
        </member>
        <member name="T:Gallio.Common.Reflection.Impl.MonoDebugSymbolResolver">
            <summary>
            Implementation of a debug symbol resolver for Mono.
            </summary>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.MonoDebugSymbolResolver.#ctor">
            <summary>
            Creates a Mono debug symbol resolver.
            </summary>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.MonoDebugSymbolResolver.Dispose">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.MonoDebugSymbolResolver.GetSourceLocationForMethod(System.String,System.Int32)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Common.Reflection.Impl.NativeNamespaceWrapper">
            <summary>
             Wrapper to represent a namespace.
            </summary>
        </member>
        <member name="T:Gallio.Common.Reflection.INamespaceInfo">
            <summary>
            A namespace reflection wrapper identified by its name.
            </summary>
            <remarks>
            <para>
            This wrapper enables reflection-based algorithms to be used against
            code that may or may not be loaded into the current AppDomain.
            For example, the target of the wrapper could be an in-memory
            code model representation.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.NativeNamespaceWrapper.#ctor(System.String)">
            <summary>
            Constructor.
            </summary>
            <param name="name">The name of the namespace.</param>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.NativeNamespaceWrapper.GetAttributeInfos(Gallio.Common.Reflection.ITypeInfo,System.Boolean)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.NativeNamespaceWrapper.HasAttribute(Gallio.Common.Reflection.ITypeInfo,System.Boolean)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.NativeNamespaceWrapper.GetAttributes(Gallio.Common.Reflection.ITypeInfo,System.Boolean)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.NativeNamespaceWrapper.GetXmlDocumentation">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.NativeNamespaceWrapper.GetCodeLocation">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.NativeNamespaceWrapper.ToString">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.NativeNamespaceWrapper.GetHashCode">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.NativeNamespaceWrapper.Equals(System.Object)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.NativeNamespaceWrapper.Equals(Gallio.Common.Reflection.ICodeElementInfo)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.NativeNamespaceWrapper.Equals(Gallio.Common.Reflection.INamespaceInfo)">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.NativeNamespaceWrapper.Name">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.NativeNamespaceWrapper.Kind">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.NativeNamespaceWrapper.CodeReference">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Common.Reflection.IParameterInfo">
            <summary>
            A <see cref="T:System.Reflection.ParameterInfo"/> reflection wrapper.
            </summary>
            <remarks>
            <para>
            This wrapper enables reflection-based algorithms to be used against
            code that may or may not be loaded into the current AppDomain.
            For example, the target of the wrapper could be an in-memory
            code model representation.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Common.Reflection.IParameterInfo.Resolve(System.Boolean)">
            <summary>
            Resolves the wrapper to its native reflection target.
            </summary>
            <param name="throwOnError">If true, throws an exception if the target could
            not be resolved, otherwise returns a reflection object that represents an
            unresolved member which may only support a subset of the usual operations.</param>
            <returns>The native reflection target.</returns>
            <exception cref="T:Gallio.Common.Reflection.ReflectionResolveException">Thrown if the target cannot be resolved.</exception>
            <seealso cref="M:Gallio.Common.Reflection.Reflector.IsUnresolved(System.Reflection.ParameterInfo)"/>
        </member>
        <member name="P:Gallio.Common.Reflection.IParameterInfo.Member">
            <summary>
            Gets the member to which the parameter belongs.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.IParameterInfo.ParameterAttributes">
            <summary>
            Gets the parameter attributes.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.IParameterInfo.IsIn">
            <summary>
            Gets a value indicating whether this is an input parameter.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.IParameterInfo.IsOptional">
            <summary>
            Gets a value indicating whether this parameter is optional.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.IParameterInfo.IsOut">
            <summary>
            Gets a value indicating whether this is an output parameter.
            </summary>
        </member>
        <member name="T:Gallio.Common.Reflection.IPropertyInfo">
            <summary>
            A <see cref="T:System.Reflection.PropertyInfo"/> reflection wrapper.
            </summary>
            <remarks>
            <para>
            This wrapper enables reflection-based algorithms to be used against
            code that may or may not be loaded into the current AppDomain.
            For example, the target of the wrapper could be an in-memory
            code model representation.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Common.Reflection.IPropertyInfo.Resolve(System.Boolean)">
            <summary>
            Resolves the wrapper to its native reflection target.
            </summary>
            <param name="throwOnError">If true, throws an exception if the target could
            not be resolved, otherwise returns a reflection object that represents an
            unresolved member which may only support a subset of the usual operations.</param>
            <returns>The native reflection target.</returns>
            <exception cref="T:Gallio.Common.Reflection.ReflectionResolveException">Thrown if the target cannot be resolved.</exception>
            <seealso cref="M:Gallio.Common.Reflection.Reflector.IsUnresolved(System.Reflection.MemberInfo)"/>
        </member>
        <member name="P:Gallio.Common.Reflection.IPropertyInfo.PropertyAttributes">
            <summary>
            Gets the property attributes.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.IPropertyInfo.CanRead">
            <summary>
            Returns true if the property can be read.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.IPropertyInfo.CanWrite">
            <summary>
            Returns true if the property can be written.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.IPropertyInfo.GetMethod">
            <summary>
            Gets the get method of the property, or null if none.
            </summary>
            <returns>The get method, or null if none.</returns>
        </member>
        <member name="P:Gallio.Common.Reflection.IPropertyInfo.SetMethod">
            <summary>
            Gets the set method of the property, or null if none.
            </summary>
            <returns>The set method, or null if none.</returns>
        </member>
        <member name="P:Gallio.Common.Reflection.IPropertyInfo.IndexParameters">
            <summary>
            Gets the list of index parameters for an indexer property, or
            an empty array if none.
            </summary>
        </member>
        <member name="T:Gallio.Common.Reflection.Impl.ReflectorAttributeUtils">
            <summary>
            Provides helpers for enumerating attributes taking into account
            the attribute inheritance structure.
            </summary>
            <remarks>
            <para>
            This class is intended to assist with the implementation of new
            reflection policies.  It should not be used directly by clients of the
            reflection API.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.ReflectorAttributeUtils.CreateAttribute(Gallio.Common.Reflection.IAttributeInfo,System.Boolean)">
            <summary>
            Creates an attribute instance from an <see cref="T:Gallio.Common.Reflection.IAttributeInfo"/>.
            </summary>
            <remarks>
            <para>
            This method may be used by <see cref="M:Gallio.Common.Reflection.IAttributeInfo.Resolve(System.Boolean)"/> to construct
            an attribute instance from its raw description.  Client code should
            call <see cref="M:Gallio.Common.Reflection.IAttributeInfo.Resolve(System.Boolean)"/> instead of using this method
            directly.
            </para>
            </remarks>
            <param name="attribute">The attribute description.</param>
            <param name="throwOnError">If true, throws an exception if the target could
            not be resolved, otherwise the result may include unresolved types, enums or arrays.</param>
            <returns>The attribute instance.</returns>
            <exception cref="T:Gallio.Common.Reflection.ReflectionResolveException">Thrown if the attribute could not be resolved.</exception>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.ReflectorAttributeUtils.IsAttributeField(Gallio.Common.Reflection.IFieldInfo)">
            <summary>
            Returns true if the field is assignable as a named attribute parameter.
            </summary>
            <param name="field">The field.</param>
            <returns>True if the field is assignable.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.ReflectorAttributeUtils.IsAttributeProperty(Gallio.Common.Reflection.IPropertyInfo)">
            <summary>
            Returns true if the property is assignable as a named attribute parameter.
            </summary>
            <param name="property">The property.</param>
            <returns>True if the property is assignable.</returns>
        </member>
        <member name="T:Gallio.Common.Reflection.Impl.ReflectorFlagsUtils">
            <summary>
            Provides helpers for manipulating reflection flags enumerations.
            </summary>
            <remarks>
            <para>
            This class is intended to assist with the implementation of new
            reflection policies.  It should not be used directly by clients of the
            reflection API.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.ReflectorFlagsUtils.AddFlagIfTrue(System.Reflection.TypeAttributes@,System.Reflection.TypeAttributes,System.Boolean)">
            <summary>
            Adds <paramref name="flagToAdd"/> to the <paramref name="flags"/> enumeration
            if <paramref name="condition"/> is true.
            </summary>
            <param name="flags">The flags enumeration to update.</param>
            <param name="flagToAdd">The flag to add if <paramref name="condition"/> is true.</param>
            <param name="condition">The condition to check.</param>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.ReflectorFlagsUtils.AddFlagIfTrue(System.Reflection.MethodAttributes@,System.Reflection.MethodAttributes,System.Boolean)">
            <summary>
            Adds <paramref name="flagToAdd"/> to the <paramref name="flags"/> enumeration
            if <paramref name="condition"/> is true.
            </summary>
            <param name="flags">The flags enumeration to update.</param>
            <param name="flagToAdd">The flag to add if <paramref name="condition"/> is true.</param>
            <param name="condition">The condition to check.</param>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.ReflectorFlagsUtils.AddFlagIfTrue(System.Reflection.FieldAttributes@,System.Reflection.FieldAttributes,System.Boolean)">
            <summary>
            Adds <paramref name="flagToAdd"/> to the <paramref name="flags"/> enumeration
            if <paramref name="condition"/> is true.
            </summary>
            <param name="flags">The flags enumeration to update.</param>
            <param name="flagToAdd">The flag to add if <paramref name="condition"/> is true.</param>
            <param name="condition">The condition to check.</param>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.ReflectorFlagsUtils.AddFlagIfTrue(System.Reflection.PropertyAttributes@,System.Reflection.PropertyAttributes,System.Boolean)">
            <summary>
            Adds <paramref name="flagToAdd"/> to the <paramref name="flags"/> enumeration
            if <paramref name="condition"/> is true.
            </summary>
            <param name="flags">The flags enumeration to update.</param>
            <param name="flagToAdd">The flag to add if <paramref name="condition"/> is true.</param>
            <param name="condition">The condition to check.</param>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.ReflectorFlagsUtils.AddFlagIfTrue(System.Reflection.ParameterAttributes@,System.Reflection.ParameterAttributes,System.Boolean)">
            <summary>
            Adds <paramref name="flagToAdd"/> to the <paramref name="flags"/> enumeration
            if <paramref name="condition"/> is true.
            </summary>
            <param name="flags">The flags enumeration to update.</param>
            <param name="flagToAdd">The flag to add if <paramref name="condition"/> is true.</param>
            <param name="condition">The condition to check.</param>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.ReflectorFlagsUtils.AddFlagIfTrue(System.Reflection.GenericParameterAttributes@,System.Reflection.GenericParameterAttributes,System.Boolean)">
            <summary>
            Adds <paramref name="flagToAdd"/> to the <paramref name="flags"/> enumeration
            if <paramref name="condition"/> is true.
            </summary>
            <param name="flags">The flags enumeration to update.</param>
            <param name="flagToAdd">The flag to add if <paramref name="condition"/> is true.</param>
            <param name="condition">The condition to check.</param>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.ReflectorFlagsUtils.AddFlagIfTrue(System.Reflection.CallingConventions@,System.Reflection.CallingConventions,System.Boolean)">
            <summary>
            Adds <paramref name="flagToAdd"/> to the <paramref name="flags"/> enumeration
            if <paramref name="condition"/> is true.
            </summary>
            <param name="flags">The flags enumeration to update.</param>
            <param name="flagToAdd">The flag to add if <paramref name="condition"/> is true.</param>
            <param name="condition">The condition to check.</param>
        </member>
        <member name="T:Gallio.Common.Reflection.Impl.ReflectorResolveUtils">
            <summary>
            Provides helpers for resolving abstract reflection objects to obtain
            native ones based on the structural properties of the reflected
            code elements.
            </summary>
            <remarks>
            <para>
            This class is intended to assist with the implementation of new
            reflection policies.  It should not be used directly by clients of the
            reflection API.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.ReflectorResolveUtils.ResolveAssembly(Gallio.Common.Reflection.IAssemblyInfo,System.Boolean,System.Boolean)">
            <summary>
            Resolves a reflected assembly to its native <see cref="T:System.Reflection.Assembly"/> object.
            </summary>
            <param name="assembly">The reflected assembly.</param>
            <param name="fallbackOnPartialName">If true, allows the assembly to be resolved
            by partial name if no match could be found by fullname.</param>
            <param name="throwOnError">If true, throws an exception if resolution fails,
            otherwise returns an unresolved assembly object that can be detected
            using <see cref="M:Gallio.Common.Reflection.Reflector.IsUnresolved(System.Reflection.Assembly)"/>.</param>
            <returns>The resolved <see cref="T:System.Reflection.Assembly"/>.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="assembly"/>
            is null.</exception>
            <exception cref="T:Gallio.Common.Reflection.ReflectionResolveException">Thrown if <paramref name="assembly"/>
            could not be resolved.</exception>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.ReflectorResolveUtils.ResolveType(Gallio.Common.Reflection.Impl.IResolvableTypeInfo,System.Reflection.MethodInfo,System.Boolean)">
            <summary>
            Resolves a reflected type to its native <see cref="T:System.Type"/> object.
            </summary>
            <param name="type">The reflected type.</param>
            <param name="methodContext">The method that is currently in scope, or null if none.
            This parameter is used when resolving types that are part of the signature
            of a generic method so that generic method arguments can be handled correctly.</param>
            <param name="throwOnError">If true, throws an exception if resolution fails,
            otherwise returns an unresolved <see cref="T:System.Type"/>.</param>
            <returns>The resolved <see cref="T:System.Type"/>.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="type"/>
            is null.</exception>
            <exception cref="T:Gallio.Common.Reflection.ReflectionResolveException">Thrown if <paramref name="type"/>
            could not be resolved.</exception>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.ReflectorResolveUtils.ResolveField(Gallio.Common.Reflection.IFieldInfo,System.Boolean)">
            <summary>
            Resolves a reflected field to its native <see cref="T:System.Reflection.FieldInfo"/> object.
            </summary>
            <param name="field">The reflected type.</param>
            <param name="throwOnError">If true, throws an exception if resolution fails,
            otherwise returns an unresolved <see cref="T:System.Reflection.FieldInfo"/>.</param>
            <returns>The resolved <see cref="T:System.Reflection.FieldInfo"/>.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="field"/>
            is null.</exception>
            <exception cref="T:Gallio.Common.Reflection.ReflectionResolveException">Thrown if <paramref name="field"/>
            could not be resolved.</exception>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.ReflectorResolveUtils.ResolveProperty(Gallio.Common.Reflection.IPropertyInfo,System.Boolean)">
            <summary>
            Resolves a reflected property to its native <see cref="T:System.Reflection.PropertyInfo"/> object.
            </summary>
            <param name="property">The reflected property.</param>
            <param name="throwOnError">If true, throws an exception if resolution fails,
            otherwise returns an unresolved <see cref="T:System.Reflection.PropertyInfo"/>.</param>
            <returns>The resolved <see cref="T:System.Reflection.PropertyInfo"/>.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="property"/>
            is null.</exception>
            <exception cref="T:Gallio.Common.Reflection.ReflectionResolveException">Thrown if <paramref name="property"/>
            could not be resolved.</exception>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.ReflectorResolveUtils.ResolveEvent(Gallio.Common.Reflection.IEventInfo,System.Boolean)">
            <summary>
            Resolves a reflected event to its native <see cref="T:System.Reflection.EventInfo"/> object.
            </summary>
            <param name="event">The reflected event.</param>
            <param name="throwOnError">If true, throws an exception if resolution fails,
            otherwise returns an unresolved <see cref="T:System.Reflection.EventInfo"/>.</param>
            <returns>The resolved <see cref="T:System.Reflection.EventInfo"/>.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="event"/>
            is null.</exception>
            <exception cref="T:Gallio.Common.Reflection.ReflectionResolveException">Thrown if <paramref name="event"/>
            could not be resolved.</exception>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.ReflectorResolveUtils.ResolveConstructor(Gallio.Common.Reflection.IConstructorInfo,System.Boolean)">
            <summary>
            Resolves a reflected constructor to its native <see cref="T:System.Reflection.ConstructorInfo"/> object.
            </summary>
            <param name="constructor">The reflected constructor.</param>
            <param name="throwOnError">If true, throws an exception if resolution fails,
            otherwise returns an unresolved <see cref="T:System.Reflection.ConstructorInfo"/>.</param>
            <returns>The resolved <see cref="T:System.Reflection.ConstructorInfo"/>.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="constructor"/>
            is null.</exception>
            <exception cref="T:Gallio.Common.Reflection.ReflectionResolveException">Thrown if <paramref name="constructor"/>
            could not be resolved.</exception>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.ReflectorResolveUtils.ResolveMethod(Gallio.Common.Reflection.IMethodInfo,System.Boolean)">
            <summary>
            Resolves a reflected method to its native <see cref="T:System.Reflection.MethodInfo"/> object.
            </summary>
            <param name="method">The reflected method.</param>
            <param name="throwOnError">If true, throws an exception if resolution fails,
            otherwise returns an unresolved <see cref="T:System.Reflection.MethodInfo"/>.</param>
            <returns>The resolved <see cref="T:System.Reflection.MethodInfo"/>.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="method"/>
            is null.</exception>
            <exception cref="T:Gallio.Common.Reflection.ReflectionResolveException">Thrown if <paramref name="method"/>
            could not be resolved.</exception>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.ReflectorResolveUtils.ResolveParameter(Gallio.Common.Reflection.IParameterInfo,System.Boolean)">
            <summary>
            Resolves a reflected parameter to its native <see cref="T:System.Reflection.ParameterInfo"/> object.
            </summary>
            <param name="parameter">The reflected parameter.</param>
            <param name="throwOnError">If true, throws an exception if resolution fails,
            otherwise returns an unresolved <see cref="T:System.Reflection.ParameterInfo"/>.</param>
            <returns>The resolved <see cref="T:System.Reflection.ParameterInfo"/>.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="parameter"/>
            is null.</exception>
            <exception cref="T:Gallio.Common.Reflection.ReflectionResolveException">Thrown if <paramref name="parameter"/>
            could not be resolved.</exception>
        </member>
        <member name="T:Gallio.Common.Reflection.Impl.ReflectorTypeUtils">
            <summary>
            Provides helpers for working with types and type codes.
            </summary>
            <remarks>
            <para>
            This class is intended to assist with the implementation of new
            reflection policies. It should not be used directly by clients of the
            reflection API.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.ReflectorTypeUtils.GetTypeCode(Gallio.Common.Reflection.ITypeInfo)">
            <summary>
            Determines the type code of a reflected type based on the
            type's name.
            </summary>
            <param name="type">The reflected type, or null if none.</param>
            <returns>The type code of the type, or <see cref="F:System.TypeCode.Empty"/>
            if <paramref name="type"/> was null.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.ReflectorTypeUtils.GetDefaultValue(Gallio.Common.Reflection.ITypeInfo)">
            <summary>
            Gets the default value for a reflected type.
            </summary>
            <param name="type">The reflected type.</param>
            <returns>The default value for the type, such as <c>0</c> if
            the type represents an integer, or <c>null</c> if the type
            is a reference type or if <paramref name="type"/> was null.</returns>
        </member>
        <member name="T:Gallio.Common.Reflection.Impl.StaticArrayTypeWrapper">
            <summary>
            A <see cref="T:Gallio.Common.Reflection.Impl.StaticReflectionPolicy"/> array type wrapper.
            </summary>
        </member>
        <member name="T:Gallio.Common.Reflection.Impl.StaticConstructedTypeWrapper">
            <summary>
            A <see cref="T:Gallio.Common.Reflection.Impl.StaticReflectionPolicy"/> constructed type wrapper.
            </summary>
            <seealso cref="T:Gallio.Common.Reflection.Impl.StaticArrayTypeWrapper"/>
            <seealso cref="T:Gallio.Common.Reflection.Impl.StaticByRefTypeWrapper"/>
            <seealso cref="T:Gallio.Common.Reflection.Impl.StaticPointerTypeWrapper"/>
        </member>
        <member name="T:Gallio.Common.Reflection.Impl.StaticSpecialTypeWrapper">
            <summary>
            A <see cref="T:Gallio.Common.Reflection.Impl.StaticReflectionPolicy"/> type wrapper that represents a special type
            that is either constructed from other types or derived from them as with a generic parameter.
            </summary>
            <seealso cref="T:Gallio.Common.Reflection.Impl.StaticConstructedTypeWrapper"/>
            <seealso cref="T:Gallio.Common.Reflection.Impl.StaticGenericParameterWrapper"/>
        </member>
        <member name="T:Gallio.Common.Reflection.Impl.StaticTypeWrapper">
            <summary>
            A <see cref="T:Gallio.Common.Reflection.Impl.StaticReflectionPolicy"/> type wrapper.
            </summary>
        </member>
        <member name="T:Gallio.Common.Reflection.Impl.StaticMemberWrapper">
            <summary>
            A <see cref="T:Gallio.Common.Reflection.Impl.StaticReflectionPolicy"/> member wrapper.
            </summary>
        </member>
        <member name="T:Gallio.Common.Reflection.Impl.StaticCodeElementWrapper">
            <summary>
            A <see cref="T:Gallio.Common.Reflection.Impl.StaticReflectionPolicy"/> code element wrapper.
            </summary>
        </member>
        <member name="T:Gallio.Common.Reflection.Impl.StaticWrapper">
            <summary>
            A <see cref="T:Gallio.Common.Reflection.Impl.StaticReflectionPolicy"/> wrapper.
            </summary>
            <remarks>
            <para>
            A wrapper holds an underlying reflection object.  Its behavior is
            derived from by primitive operations on the <see cref="P:Gallio.Common.Reflection.Impl.StaticWrapper.Handle"/> defined by the
            particular <see cref="P:Gallio.Common.Reflection.Impl.StaticWrapper.ReflectionPolicy"/> implementation that is in use.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticWrapper.#ctor(Gallio.Common.Reflection.Impl.StaticReflectionPolicy,System.Object)">
            <summary>
            Creates a wrapper.
            </summary>
            <param name="policy">The reflection policy.</param>
            <param name="handle">The underlying reflection object.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="policy"/> or <paramref name="handle"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticWrapper.Equals(Gallio.Common.Reflection.Impl.StaticWrapper)">
            <inhertdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticWrapper.Equals(System.Object)">
            <inhertdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticWrapper.EqualsByHandle(Gallio.Common.Reflection.Impl.StaticWrapper)">
            <summary>
            Compares the policy and handle of this wrapper with those of another
            using <see cref="M:Gallio.Common.Reflection.Impl.StaticReflectionPolicy.Equals(Gallio.Common.Reflection.Impl.StaticWrapper,Gallio.Common.Reflection.Impl.StaticWrapper)"/>.
            </summary>
            <param name="other">The other wrapper.</param>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticWrapper.GetHashCode">
            <inhertdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticWrapper.ReflectionPolicy">
            <summary>
            Gets the reflection policy.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticWrapper.Handle">
            <summary>
            Gets the underlying reflection object.
            </summary>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticCodeElementWrapper.#ctor(Gallio.Common.Reflection.Impl.StaticReflectionPolicy,System.Object)">
            <summary>
            Creates a wrapper.
            </summary>
            <param name="policy">The reflection policy.</param>
            <param name="handle">The underlying reflection object.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="policy"/> or <paramref name="handle"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticCodeElementWrapper.GetAttributeInfos(Gallio.Common.Reflection.ITypeInfo,System.Boolean)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticCodeElementWrapper.HasAttribute(Gallio.Common.Reflection.ITypeInfo,System.Boolean)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticCodeElementWrapper.GetAttributes(Gallio.Common.Reflection.ITypeInfo,System.Boolean)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticCodeElementWrapper.GetXmlDocumentation">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticCodeElementWrapper.GetCodeLocation">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticCodeElementWrapper.Equals(Gallio.Common.Reflection.ICodeElementInfo)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticCodeElementWrapper.ToString">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticCodeElementWrapper.GetCustomAttributes">
            <summary>
            Gets all attributes that appear on this code element, excluding inherited attributes.
            </summary>
            <returns>The attribute wrappers.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticCodeElementWrapper.GetPseudoCustomAttributes">
            <summary>
            Gets all pseudo custom attributes associated with a member.
            </summary>
            <remarks>
            <para>
            These attributes do not really exist as custom attributes in the metadata.  Rather, they are
            realizations of other metadata features in attribute form.  For example,
            <see cref="T:System.SerializableAttribute"/> is represented in the metadata as a <see cref="T:System.Reflection.TypeAttributes"/>
            flag.  Pseudo custom attributes preserve the illusion of these attributes.
            </para>
            </remarks>
            <returns>The pseudo custom attributes.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticCodeElementWrapper.GetInheritedElements">
            <summary>
            Gets an enumeration of elements from which this code element inherits.
            </summary>
            <returns>The inherited code elements.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticCodeElementWrapper.AppendParameterListToSignature(System.Text.StringBuilder,System.Collections.Generic.IList{Gallio.Common.Reflection.Impl.StaticParameterWrapper},System.Boolean)">
            <summary>
            Appends a list of parameters to a signature.
            </summary>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticCodeElementWrapper.AppendGenericArgumentListToSignature(System.Text.StringBuilder,System.Collections.Generic.IList{Gallio.Common.Reflection.ITypeInfo})">
            <summary>
            Appends a list of generic parameters to a signature.
            </summary>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticCodeElementWrapper.GetTypeNameForSignature(Gallio.Common.Reflection.ITypeInfo)">
            <summary>
            Gets the name of a type for use in a ToString signature of an event, field,
            property, method, or constructor.
            </summary>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticCodeElementWrapper.ShouldUseShortNameForSignature(Gallio.Common.Reflection.ITypeInfo)">
            <summary>
            Determines whether a type should be represented by its short name
            for the purposes of creating a signature.
            </summary>
            <param name="type">The reflected type.</param>
            <returns>True if the type is primitive.</returns>
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticCodeElementWrapper.Name">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticCodeElementWrapper.Kind">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticCodeElementWrapper.CodeReference">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticMemberWrapper.#ctor(Gallio.Common.Reflection.Impl.StaticReflectionPolicy,System.Object,Gallio.Common.Reflection.Impl.StaticDeclaredTypeWrapper)">
            <summary>
            Creates a wrapper.
            </summary>
            <param name="policy">The reflection policy.</param>
            <param name="handle">The underlying reflection object.</param>
            <param name="declaringType">The declaring type, or null if none.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="policy"/> or <paramref name="handle"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticMemberWrapper.GetCodeLocation">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticMemberWrapper.Equals(Gallio.Common.Reflection.IMemberInfo)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticMemberWrapper.Equals(System.Object)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticMemberWrapper.GetHashCode">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticMemberWrapper.GetCustomAttributes">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticMemberWrapper.ResolveMemberInfo(System.Boolean)">
            <summary>
            Implementation of <see cref="M:Gallio.Common.Reflection.IMemberInfo.Resolve(System.Boolean)"/>
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticMemberWrapper.Substitution">
            <summary>
            Gets the type substitution for generic parameters.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticMemberWrapper.CodeReference">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticMemberWrapper.Name">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticMemberWrapper.DeclaringType">
            <summary>
            Gets the declaring type, or null if none.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticMemberWrapper.ReflectedType">
            <summary>
            Gets the reflected type, or null if none.
            </summary>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticTypeWrapper.#ctor(Gallio.Common.Reflection.Impl.StaticReflectionPolicy,System.Object,Gallio.Common.Reflection.Impl.StaticDeclaredTypeWrapper)">
            <summary>
            Creates a wrapper.
            </summary>
            <param name="policy">The reflection policy.</param>
            <param name="handle">The underlying reflection object.</param>
            <param name="declaringType">The declaring type, or null if none.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="policy"/> or <paramref name="handle"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticTypeWrapper.GetConstructors(System.Reflection.BindingFlags)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticTypeWrapper.GetMethod(System.String,System.Reflection.BindingFlags)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticTypeWrapper.GetMethods(System.Reflection.BindingFlags)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticTypeWrapper.GetProperty(System.String,System.Reflection.BindingFlags)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticTypeWrapper.GetProperties(System.Reflection.BindingFlags)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticTypeWrapper.GetField(System.String,System.Reflection.BindingFlags)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticTypeWrapper.GetFields(System.Reflection.BindingFlags)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticTypeWrapper.GetEvent(System.String,System.Reflection.BindingFlags)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticTypeWrapper.GetEvents(System.Reflection.BindingFlags)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticTypeWrapper.GetNestedType(System.String,System.Reflection.BindingFlags)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticTypeWrapper.GetNestedTypes(System.Reflection.BindingFlags)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticTypeWrapper.IsAssignableFrom(Gallio.Common.Reflection.ITypeInfo)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticTypeWrapper.IsSubclassOf(Gallio.Common.Reflection.ITypeInfo)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticTypeWrapper.MakeArrayType(System.Int32)">
            <inheritdoc cref="M:Gallio.Common.Reflection.ITypeInfo.MakeArrayType(System.Int32)"/>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticTypeWrapper.MakePointerType">
            <inheritdoc cref="M:Gallio.Common.Reflection.ITypeInfo.MakePointerType"/>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticTypeWrapper.MakeByRefType">
            <inheritdoc cref="M:Gallio.Common.Reflection.ITypeInfo.MakeByRefType"/>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticTypeWrapper.MakeGenericType(System.Collections.Generic.IList{Gallio.Common.Reflection.ITypeInfo})">
            <inheritdoc cref="M:Gallio.Common.Reflection.ITypeInfo.MakeGenericType(System.Collections.Generic.IList{Gallio.Common.Reflection.ITypeInfo})"/>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticTypeWrapper.ApplySubstitution(Gallio.Common.Reflection.Impl.StaticTypeSubstitution)">
            <summary>
            Applies a type substitution and returns the resulting type.
            </summary>
            <param name="substitution">The substitution.</param>
            <returns>The type after substitution has been performed.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticTypeWrapper.Equals(Gallio.Common.Reflection.ITypeInfo)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticTypeWrapper.Resolve(System.Boolean)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticTypeWrapper.Resolve(System.Reflection.MethodInfo,System.Boolean)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticTypeWrapper.ResolveMemberInfo(System.Boolean)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticTypeWrapper.GetInheritedElements">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticTypeWrapper.Kind">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticTypeWrapper.CodeReference">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticTypeWrapper.Assembly">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticTypeWrapper.Namespace">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticTypeWrapper.NamespaceName">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticTypeWrapper.BaseType">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticTypeWrapper.BaseTypeInternal">
            <summary>
            Internal implementation of <see cref="P:Gallio.Common.Reflection.Impl.StaticTypeWrapper.BaseType"/>.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticTypeWrapper.AssemblyQualifiedName">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticTypeWrapper.FullName">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticTypeWrapper.TypeAttributes">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticTypeWrapper.IsAbstract">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticTypeWrapper.IsSealed">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticTypeWrapper.IsClass">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticTypeWrapper.IsInterface">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticTypeWrapper.IsEnum">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticTypeWrapper.IsValueType">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticTypeWrapper.IsNested">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticTypeWrapper.IsNestedAssembly">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticTypeWrapper.IsNestedFamilyAndAssembly">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticTypeWrapper.IsNestedFamily">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticTypeWrapper.IsNestedFamilyOrAssembly">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticTypeWrapper.IsNestedPrivate">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticTypeWrapper.IsNestedPublic">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticTypeWrapper.IsPublic">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticTypeWrapper.IsNotPublic">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticTypeWrapper.ElementType">
            <summary>
            Gets the element type, or null if none.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticTypeWrapper.ArrayRank">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticTypeWrapper.IsArray">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticTypeWrapper.IsPointer">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticTypeWrapper.IsByRef">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticTypeWrapper.IsGenericParameter">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticTypeWrapper.IsGenericType">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticTypeWrapper.IsGenericTypeDefinition">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticTypeWrapper.ContainsGenericParameters">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticTypeWrapper.GenericArguments">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticTypeWrapper.GenericTypeDefinition">
            <inheritdoc cref="P:Gallio.Common.Reflection.ITypeInfo.GenericTypeDefinition"/>
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticTypeWrapper.TypeCode">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticTypeWrapper.Interfaces">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticSpecialTypeWrapper.#ctor(Gallio.Common.Reflection.Impl.StaticReflectionPolicy,System.Object,Gallio.Common.Reflection.Impl.StaticDeclaredTypeWrapper)">
            <summary>
            Creates a wrapper.
            </summary>
            <param name="policy">The reflection policy.</param>
            <param name="handle">The underlying reflection object.</param>
            <param name="declaringType">The declaring type, or null if none.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="policy"/> or <paramref name="handle"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticSpecialTypeWrapper.GetConstructors(System.Reflection.BindingFlags)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticSpecialTypeWrapper.GetMethod(System.String,System.Reflection.BindingFlags)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticSpecialTypeWrapper.GetMethods(System.Reflection.BindingFlags)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticSpecialTypeWrapper.GetProperty(System.String,System.Reflection.BindingFlags)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticSpecialTypeWrapper.GetProperties(System.Reflection.BindingFlags)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticSpecialTypeWrapper.GetField(System.String,System.Reflection.BindingFlags)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticSpecialTypeWrapper.GetFields(System.Reflection.BindingFlags)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticSpecialTypeWrapper.GetEvent(System.String,System.Reflection.BindingFlags)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticSpecialTypeWrapper.GetEvents(System.Reflection.BindingFlags)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticSpecialTypeWrapper.GetNestedType(System.String,System.Reflection.BindingFlags)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticSpecialTypeWrapper.GetNestedTypes(System.Reflection.BindingFlags)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticSpecialTypeWrapper.GetPseudoCustomAttributes">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticSpecialTypeWrapper.Substitution">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticSpecialTypeWrapper.BaseTypeInternal">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticSpecialTypeWrapper.Interfaces">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticConstructedTypeWrapper.#ctor(Gallio.Common.Reflection.Impl.StaticReflectionPolicy,Gallio.Common.Reflection.Impl.StaticTypeWrapper)">
            <summary>
            Creates a wrapper.
            </summary>
            <param name="policy">The reflection policy.</param>
            <param name="elementType">The element type.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="policy"/> or <paramref name="elementType"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticConstructedTypeWrapper.ToString">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticConstructedTypeWrapper.GetCodeLocation">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticConstructedTypeWrapper.GetCustomAttributes">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticConstructedTypeWrapper.ElementType">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticConstructedTypeWrapper.ContainsGenericParameters">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticConstructedTypeWrapper.Assembly">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticConstructedTypeWrapper.NamespaceName">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticConstructedTypeWrapper.Name">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticConstructedTypeWrapper.FullName">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticConstructedTypeWrapper.NameSuffix">
            <summary>
            Gets the suffix to append to the name of the constructed type.
            </summary>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticArrayTypeWrapper.#ctor(Gallio.Common.Reflection.Impl.StaticReflectionPolicy,Gallio.Common.Reflection.Impl.StaticTypeWrapper,System.Int32)">
            <summary>
            Creates a wrapper.
            </summary>
            <param name="policy">The reflection policy.</param>
            <param name="elementType">The element type.</param>
            <param name="arrayRank">The array rank.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="policy"/> or <paramref name="elementType"/> is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="arrayRank"/> is less than 1.</exception>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticArrayTypeWrapper.ApplySubstitution(Gallio.Common.Reflection.Impl.StaticTypeSubstitution)">
            <excludedoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticArrayTypeWrapper.Equals(System.Object)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticArrayTypeWrapper.GetHashCode">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticArrayTypeWrapper.IsArray">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticArrayTypeWrapper.ArrayRank">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticArrayTypeWrapper.BaseTypeInternal">
            <excludedoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticArrayTypeWrapper.TypeAttributes">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticArrayTypeWrapper.NameSuffix">
            <excludedoc />
        </member>
        <member name="T:Gallio.Common.Reflection.Impl.StaticAssemblyWrapper">
            <summary>
            A <see cref="T:Gallio.Common.Reflection.Impl.StaticReflectionPolicy"/> assembly wrapper.
            </summary>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticAssemblyWrapper.#ctor(Gallio.Common.Reflection.Impl.StaticReflectionPolicy,System.Object)">
            <summary>
            Creates a wrapper.
            </summary>
            <param name="policy">The reflection policy.</param>
            <param name="handle">The underlying reflection object.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="policy"/> or <paramref name="handle"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticAssemblyWrapper.GetCodeLocation">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticAssemblyWrapper.GetName">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticAssemblyWrapper.GetReferencedAssemblies">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticAssemblyWrapper.GetExportedTypes">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticAssemblyWrapper.GetTypes">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticAssemblyWrapper.GetType(System.String)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticAssemblyWrapper.Resolve(System.Boolean)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticAssemblyWrapper.Equals(Gallio.Common.Reflection.IAssemblyInfo)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticAssemblyWrapper.ToString">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticAssemblyWrapper.IsAssemblyVisibleTo(Gallio.Common.Reflection.Impl.StaticAssemblyWrapper)">
            <summary>
            Returns true if the internal members of this assembly are visible to the specified assembly.
            </summary>
            <param name="other">The other assembly.</param>
            <returns>True if the other assembly can see internal members of this assembly.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticAssemblyWrapper.GetCustomAttributes">
            <excludedoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticAssemblyWrapper.GetPseudoCustomAttributes">
            <excludedoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticAssemblyWrapper.Name">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticAssemblyWrapper.Kind">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticAssemblyWrapper.CodeReference">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticAssemblyWrapper.Path">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticAssemblyWrapper.FullName">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Common.Reflection.Impl.StaticAttributeWrapper">
            <summary>
            A <see cref="T:Gallio.Common.Reflection.Impl.StaticReflectionPolicy"/> attribute wrapper.
            </summary>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticAttributeWrapper.#ctor(Gallio.Common.Reflection.Impl.StaticReflectionPolicy,System.Object)">
            <summary>
            Creates a wrapper.
            </summary>
            <param name="policy">The reflection policy.</param>
            <param name="handle">The underlying reflection object.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="policy"/> or <paramref name="handle"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticAttributeWrapper.GetFieldValue(System.String)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticAttributeWrapper.GetPropertyValue(System.String)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticAttributeWrapper.Resolve(System.Boolean)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticAttributeWrapper.ToString">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticAttributeWrapper.Type">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticAttributeWrapper.Constructor">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticAttributeWrapper.InitializedArgumentValues">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticAttributeWrapper.InitializedFieldValues">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticAttributeWrapper.InitializedPropertyValues">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Common.Reflection.Impl.StaticByRefTypeWrapper">
            <summary>
            A <see cref="T:Gallio.Common.Reflection.Impl.StaticReflectionPolicy"/> by-ref type wrapper.
            </summary>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticByRefTypeWrapper.#ctor(Gallio.Common.Reflection.Impl.StaticReflectionPolicy,Gallio.Common.Reflection.Impl.StaticTypeWrapper)">
            <summary>
            Creates a wrapper.
            </summary>
            <param name="policy">The reflection policy.</param>
            <param name="elementType">The element type.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="policy"/> or <paramref name="elementType"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticByRefTypeWrapper.ApplySubstitution(Gallio.Common.Reflection.Impl.StaticTypeSubstitution)">
            <excludedoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticByRefTypeWrapper.Equals(System.Object)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticByRefTypeWrapper.GetHashCode">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticByRefTypeWrapper.IsByRef">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticByRefTypeWrapper.TypeAttributes">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticByRefTypeWrapper.NameSuffix">
            <excludedoc />
        </member>
        <member name="T:Gallio.Common.Reflection.Impl.StaticConstructorWrapper">
            <summary>
            A <see cref="T:Gallio.Common.Reflection.Impl.StaticReflectionPolicy"/> constructor wrapper.
            </summary>
        </member>
        <member name="T:Gallio.Common.Reflection.Impl.StaticFunctionWrapper">
            <summary>
            A <see cref="T:Gallio.Common.Reflection.Impl.StaticReflectionPolicy"/> function wrapper.
            </summary>
        </member>
        <member name="T:Gallio.Common.Reflection.Impl.StaticReflectedMemberWrapper">
            <summary>
            A <see cref="T:Gallio.Common.Reflection.Impl.StaticReflectionPolicy"/> member wrapper for members that are not types,
            generic parameters or nested types.  These members must be declared by types, so
            they all share the constraint that the declaring type and reflected type must not be null.
            In particular, the reflected type may be a subtype of the declaring type in the case
            of inherited members.
            </summary>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticReflectedMemberWrapper.#ctor(Gallio.Common.Reflection.Impl.StaticReflectionPolicy,System.Object,Gallio.Common.Reflection.Impl.StaticDeclaredTypeWrapper,Gallio.Common.Reflection.Impl.StaticDeclaredTypeWrapper)">
            <summary>
            Creates a wrapper.
            </summary>
            <param name="policy">The reflection policy.</param>
            <param name="handle">The underlying reflection object.</param>
            <param name="declaringType">The declaring type.</param>
            <param name="reflectedType">The reflected type.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="policy"/>, <paramref name="handle"/>,
            <paramref name="declaringType"/>, or <paramref name="reflectedType"/> is null.</exception>
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticReflectedMemberWrapper.ReflectedType">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticFunctionWrapper.#ctor(Gallio.Common.Reflection.Impl.StaticReflectionPolicy,System.Object,Gallio.Common.Reflection.Impl.StaticDeclaredTypeWrapper,Gallio.Common.Reflection.Impl.StaticDeclaredTypeWrapper)">
            <summary>
            Creates a wrapper.
            </summary>
            <param name="policy">The reflection policy.</param>
            <param name="handle">The underlying reflection object.</param>
            <param name="declaringType">The declaring type.</param>
            <param name="reflectedType">The reflected type, or null if none.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="policy"/>, <paramref name="handle"/>,
            <paramref name="declaringType"/>, or <paramref name="reflectedType"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticFunctionWrapper.Equals(Gallio.Common.Reflection.IFunctionInfo)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticFunctionWrapper.ResolveMethodBase(System.Boolean)">
            <summary>
            Implementation of <see cref="M:Gallio.Common.Reflection.IFunctionInfo.Resolve(System.Boolean)"/>
            </summary>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticFunctionWrapper.ResolveMemberInfo(System.Boolean)">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticFunctionWrapper.MethodAttributes">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticFunctionWrapper.CallingConvention">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticFunctionWrapper.IsAbstract">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticFunctionWrapper.IsFinal">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticFunctionWrapper.IsStatic">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticFunctionWrapper.IsVirtual">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticFunctionWrapper.IsAssembly">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticFunctionWrapper.IsFamily">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticFunctionWrapper.IsFamilyAndAssembly">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticFunctionWrapper.IsFamilyOrAssembly">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticFunctionWrapper.IsPrivate">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticFunctionWrapper.IsPublic">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticFunctionWrapper.IsHideBySig">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticFunctionWrapper.Parameters">
            <inheritdoc cref="P:Gallio.Common.Reflection.IFunctionInfo.Parameters"/>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticConstructorWrapper.#ctor(Gallio.Common.Reflection.Impl.StaticReflectionPolicy,System.Object,Gallio.Common.Reflection.Impl.StaticDeclaredTypeWrapper)">
            <summary>
            Creates a wrapper.
            </summary>
            <param name="policy">The reflection policy.</param>
            <param name="handle">The underlying reflection object.</param>
            <param name="declaringType">The declaring type.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="policy"/>, <paramref name="handle"/>,
            or <paramref name="declaringType"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticConstructorWrapper.Equals(Gallio.Common.Reflection.IConstructorInfo)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticConstructorWrapper.Resolve(System.Boolean)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticConstructorWrapper.ResolveMethodBase(System.Boolean)">
            <excludedoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticConstructorWrapper.ToString">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticConstructorWrapper.GetPseudoCustomAttributes">
            <excludedoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticConstructorWrapper.Kind">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Common.Reflection.Impl.StaticDeclaredTypeWrapper">
            <summary>
            A <see cref="T:Gallio.Common.Reflection.Impl.StaticReflectionPolicy"/> declared type wrapper such as a
            class, struct, enum or interface definition.
            </summary>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticDeclaredTypeWrapper.#ctor(Gallio.Common.Reflection.Impl.StaticReflectionPolicy,System.Object,Gallio.Common.Reflection.Impl.StaticDeclaredTypeWrapper,Gallio.Common.Reflection.Impl.StaticTypeSubstitution)">
            <summary>
            Creates a wrapper.
            </summary>
            <param name="policy">The reflection policy.</param>
            <param name="handle">The underlying reflection object.</param>
            <param name="declaringType">The declaring type, or null if none.</param>
            <param name="substitution">The type substitution for generic parameters.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="policy"/> or <paramref name="handle"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticDeclaredTypeWrapper.MakeGenericType(System.Collections.Generic.IList{Gallio.Common.Reflection.ITypeInfo})">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticDeclaredTypeWrapper.GetConstructors(System.Reflection.BindingFlags)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticDeclaredTypeWrapper.GetMethod(System.String,System.Reflection.BindingFlags)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticDeclaredTypeWrapper.GetMethods(System.Reflection.BindingFlags)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticDeclaredTypeWrapper.GetProperty(System.String,System.Reflection.BindingFlags)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticDeclaredTypeWrapper.GetProperties(System.Reflection.BindingFlags)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticDeclaredTypeWrapper.GetEvent(System.String,System.Reflection.BindingFlags)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticDeclaredTypeWrapper.GetEvents(System.Reflection.BindingFlags)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticDeclaredTypeWrapper.GetField(System.String,System.Reflection.BindingFlags)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticDeclaredTypeWrapper.GetFields(System.Reflection.BindingFlags)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticDeclaredTypeWrapper.GetNestedType(System.String,System.Reflection.BindingFlags)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticDeclaredTypeWrapper.GetNestedTypes(System.Reflection.BindingFlags)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticDeclaredTypeWrapper.ToString">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticDeclaredTypeWrapper.GetAllBaseTypes">
            <summary>
            Gets an enumeration of all base types.
            </summary>
            <returns>The enumeration of base types.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticDeclaredTypeWrapper.ComposeSubstitution(Gallio.Common.Reflection.Impl.StaticTypeSubstitution)">
            <summary>
            Composes the substitution of the type with the specified substitution and returns a new wrapper.
            </summary>
            <param name="substitution">The substitution.</param>
            <returns>The new wrapper with the composed substitution.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticDeclaredTypeWrapper.ApplySubstitution(Gallio.Common.Reflection.Impl.StaticTypeSubstitution)">
            <excludedoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticDeclaredTypeWrapper.GetPseudoCustomAttributes">
            <excludedoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticDeclaredTypeWrapper.IsSpecialNonInheritedMethod(Gallio.Common.Reflection.IMethodInfo)">
            <summary>
            The .Net framework handles several built-in types in a special way.  Basically,
            to inheritors, certain 'extern' private methods appear to vanish.  We deal
            with those cases uniformly here.  There may yet be others!
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticDeclaredTypeWrapper.Substitution">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticDeclaredTypeWrapper.TypeAttributes">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticDeclaredTypeWrapper.Assembly">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticDeclaredTypeWrapper.NamespaceName">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticDeclaredTypeWrapper.BaseType">
            <summary>
            Gets the base type, or null if none.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticDeclaredTypeWrapper.BaseTypeInternal">
            <excludedoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticDeclaredTypeWrapper.Interfaces">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticDeclaredTypeWrapper.IsGenericType">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticDeclaredTypeWrapper.IsGenericTypeDefinition">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticDeclaredTypeWrapper.ContainsGenericParameters">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticDeclaredTypeWrapper.GenericArguments">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticDeclaredTypeWrapper.GenericTypeDefinition">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticDeclaredTypeWrapper.Name">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticDeclaredTypeWrapper.FullName">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Common.Reflection.Impl.StaticEventWrapper">
            <summary>
            A <see cref="T:Gallio.Common.Reflection.Impl.StaticReflectionPolicy"/> event wrapper.
            </summary>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticEventWrapper.#ctor(Gallio.Common.Reflection.Impl.StaticReflectionPolicy,System.Object,Gallio.Common.Reflection.Impl.StaticDeclaredTypeWrapper,Gallio.Common.Reflection.Impl.StaticDeclaredTypeWrapper)">
            <summary>
            Creates a wrapper.
            </summary>
            <param name="policy">The reflection policy.</param>
            <param name="handle">The underlying reflection object.</param>
            <param name="declaringType">The declaring type.</param>
            <param name="reflectedType">The reflected type.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="policy"/>, <paramref name="handle"/>,
            <paramref name="declaringType"/>, or <paramref name="reflectedType"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticEventWrapper.GetOverridenOrHiddenEvents(System.Boolean)">
            <summary>
            Gets the events that this one overrides or hides.
            Only includes overrides that appear on class types, not interfaces.
            </summary>
            <param name="overridesOnly">If true, only returns overrides.</param>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticEventWrapper.Resolve(System.Boolean)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticEventWrapper.Equals(Gallio.Common.Reflection.IEventInfo)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticEventWrapper.ResolveMemberInfo(System.Boolean)">
            <excludedoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticEventWrapper.ToString">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticEventWrapper.GetPseudoCustomAttributes">
            <excludedoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticEventWrapper.Kind">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticEventWrapper.EventAttributes">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticEventWrapper.AddMethod">
            <inheritdoc cref="P:Gallio.Common.Reflection.IEventInfo.AddMethod"/>
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticEventWrapper.RaiseMethod">
            <inheritdoc cref="P:Gallio.Common.Reflection.IEventInfo.RaiseMethod"/>
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticEventWrapper.RemoveMethod">
            <inheritdoc cref="P:Gallio.Common.Reflection.IEventInfo.RemoveMethod"/>
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticEventWrapper.EventHandlerType">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Common.Reflection.Impl.StaticFieldWrapper">
            <summary>
            A <see cref="T:Gallio.Common.Reflection.Impl.StaticReflectionPolicy"/> field wrapper.
            </summary>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticFieldWrapper.#ctor(Gallio.Common.Reflection.Impl.StaticReflectionPolicy,System.Object,Gallio.Common.Reflection.Impl.StaticDeclaredTypeWrapper,Gallio.Common.Reflection.Impl.StaticDeclaredTypeWrapper)">
            <summary>
            Creates a wrapper.
            </summary>
            <param name="policy">The reflection policy.</param>
            <param name="handle">The underlying reflection object.</param>
            <param name="declaringType">The declaring type.</param>
            <param name="reflectedType">The reflected type.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="policy"/>, <paramref name="handle"/>,
            <paramref name="declaringType"/>, or <paramref name="reflectedType"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticFieldWrapper.Equals(Gallio.Common.Reflection.ISlotInfo)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticFieldWrapper.Equals(Gallio.Common.Reflection.IFieldInfo)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticFieldWrapper.Resolve(System.Boolean)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticFieldWrapper.ResolveMemberInfo(System.Boolean)">
            <excludedoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticFieldWrapper.ToString">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticFieldWrapper.GetPseudoCustomAttributes">
            <excludedoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticFieldWrapper.Kind">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticFieldWrapper.FieldAttributes">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticFieldWrapper.IsLiteral">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticFieldWrapper.IsInitOnly">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticFieldWrapper.IsStatic">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticFieldWrapper.IsAssembly">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticFieldWrapper.IsFamily">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticFieldWrapper.IsFamilyAndAssembly">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticFieldWrapper.IsFamilyOrAssembly">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticFieldWrapper.IsPrivate">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticFieldWrapper.IsPublic">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticFieldWrapper.ValueType">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticFieldWrapper.Position">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Common.Reflection.Impl.StaticGenericParameterWrapper">
            <summary>
            A <see cref="T:Gallio.Common.Reflection.Impl.StaticReflectionPolicy"/> generic parameter wrapper.
            </summary>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticGenericParameterWrapper.CreateGenericTypeParameter(Gallio.Common.Reflection.Impl.StaticReflectionPolicy,System.Object,Gallio.Common.Reflection.Impl.StaticDeclaredTypeWrapper)">
            <summary>
            Creates a wrapper for a generic type parameter.
            </summary>
            <param name="policy">The reflection policy.</param>
            <param name="handle">The underlying reflection object.</param>
            <param name="declaringType">The declaring type, which must be a generic type definition.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="policy"/>, <paramref name="handle"/>
            or <paramref name="declaringType"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticGenericParameterWrapper.CreateGenericMethodParameter(Gallio.Common.Reflection.Impl.StaticReflectionPolicy,System.Object,Gallio.Common.Reflection.Impl.StaticMethodWrapper)">
            <summary>
            Creates a wrapper for a generic method parameter.
            </summary>
            <param name="policy">The reflection policy.</param>
            <param name="handle">The underlying reflection object.</param>
            <param name="declaringMethod">The declaring method, which must be a generic method definition.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="policy"/>, <paramref name="handle"/>
            or <paramref name="declaringMethod"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticGenericParameterWrapper.GetConstructors(System.Reflection.BindingFlags)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticGenericParameterWrapper.ApplySubstitution(Gallio.Common.Reflection.Impl.StaticTypeSubstitution)">
            <excludedoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticGenericParameterWrapper.Equals(Gallio.Common.Reflection.ISlotInfo)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticGenericParameterWrapper.Equals(Gallio.Common.Reflection.IGenericParameterInfo)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticGenericParameterWrapper.ToString">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticGenericParameterWrapper.DeclaringType">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticGenericParameterWrapper.DeclaringMethod">
            <summary>
            Gets the declaring method, or null if the generic parameter belongs to a type.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticGenericParameterWrapper.Kind">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticGenericParameterWrapper.BaseTypeInternal">
            <excludedoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticGenericParameterWrapper.IsGenericParameter">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticGenericParameterWrapper.ContainsGenericParameters">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticGenericParameterWrapper.FullName">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticGenericParameterWrapper.AssemblyQualifiedName">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticGenericParameterWrapper.Assembly">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticGenericParameterWrapper.NamespaceName">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticGenericParameterWrapper.TypeAttributes">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticGenericParameterWrapper.GenericParameterAttributes">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticGenericParameterWrapper.Constraints">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticGenericParameterWrapper.ValueType">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticGenericParameterWrapper.Position">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Common.Reflection.Impl.StaticMethodWrapper">
            <summary>
            A <see cref="T:Gallio.Common.Reflection.Impl.StaticReflectionPolicy"/> method wrapper.
            </summary>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticMethodWrapper.#ctor(Gallio.Common.Reflection.Impl.StaticReflectionPolicy,System.Object,Gallio.Common.Reflection.Impl.StaticDeclaredTypeWrapper,Gallio.Common.Reflection.Impl.StaticDeclaredTypeWrapper,Gallio.Common.Reflection.Impl.StaticTypeSubstitution)">
            <summary>
            Creates a wrapper.
            </summary>
            <param name="policy">The reflection policy.</param>
            <param name="handle">The underlying reflection object.</param>
            <param name="declaringType">The declaring type.</param>
            <param name="reflectedType">The reflected type.</param>
            <param name="substitution">The type substitution for generic parameters.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="policy"/>, <paramref name="handle"/>,
            or <paramref name="declaringType"/> or <paramref name="reflectedType"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticMethodWrapper.GetOverridenOrHiddenMethods(System.Boolean)">
            <summary>
            Gets the methods that this one overrides or hides.
            Only includes overrides that appear on class types, not interfaces.
            </summary>
            <param name="overridesOnly">If true, only returns overrides.</param>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticMethodWrapper.HidesMethod(Gallio.Common.Reflection.Impl.StaticMethodWrapper)">
            <summary>
            Returns true if this method hides the specified method.
            </summary>
            <remarks>
            <para>
            This method assumes that <paramref name="other"/> is defined by
            a base type of this method's declaring type.  It determines whether
            method hiding has taken place based on the method's name and its signature
            (when IsHideBySig is true).
            </para>
            </remarks>
            <param name="other">The other method.</param>
            <returns>True if this method hides the other method.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticMethodWrapper.MakeGenericMethod(System.Collections.Generic.IList{Gallio.Common.Reflection.ITypeInfo})">
            <inheritdoc cref="M:Gallio.Common.Reflection.IMethodInfo.MakeGenericMethod(System.Collections.Generic.IList{Gallio.Common.Reflection.ITypeInfo})"/>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticMethodWrapper.Resolve(System.Boolean)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticMethodWrapper.ResolveMethodBase(System.Boolean)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticMethodWrapper.ToString">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticMethodWrapper.GetInheritedElements">
            <excludedoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticMethodWrapper.GetPseudoCustomAttributes">
            <excludedoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticMethodWrapper.Substitution">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticMethodWrapper.Kind">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticMethodWrapper.IsGenericMethod">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticMethodWrapper.IsGenericMethodDefinition">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticMethodWrapper.ContainsGenericParameters">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticMethodWrapper.GenericArguments">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticMethodWrapper.GenericMethodDefinition">
            <inheritdoc cref="P:Gallio.Common.Reflection.IMethodInfo.GenericMethodDefinition"/>
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticMethodWrapper.ReturnType">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticMethodWrapper.ReturnParameter">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticMethodWrapper.IsOverride">
            <summary>
            Returns true if this method overrides another.
            </summary>
        </member>
        <member name="T:Gallio.Common.Reflection.Impl.StaticParameterWrapper">
            <summary>
            A <see cref="T:Gallio.Common.Reflection.Impl.StaticReflectionPolicy"/> parameter wrapper.
            </summary>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticParameterWrapper.#ctor(Gallio.Common.Reflection.Impl.StaticReflectionPolicy,System.Object,Gallio.Common.Reflection.Impl.StaticMemberWrapper)">
            <summary>
            Creates a wrapper.
            </summary>
            <param name="policy">The reflection policy.</param>
            <param name="handle">The underlying reflection object.</param>
            <param name="member">The member to which the parameter belongs.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="policy"/>, <paramref name="handle"/>
            or <paramref name="member"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticParameterWrapper.Resolve(System.Boolean)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticParameterWrapper.Equals(Gallio.Common.Reflection.ISlotInfo)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticParameterWrapper.Equals(Gallio.Common.Reflection.IParameterInfo)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticParameterWrapper.Equals(System.Object)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticParameterWrapper.GetHashCode">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticParameterWrapper.GetCustomAttributes">
            <excludedoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticParameterWrapper.GetPseudoCustomAttributes">
            <excludedoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticParameterWrapper.ToString">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticParameterWrapper.Member">
            <summary>
            Gets the member to which the parameter belongs.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticParameterWrapper.Kind">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticParameterWrapper.Name">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticParameterWrapper.CodeReference">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticParameterWrapper.ParameterAttributes">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticParameterWrapper.IsIn">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticParameterWrapper.IsOptional">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticParameterWrapper.IsOut">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticParameterWrapper.ValueType">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticParameterWrapper.Position">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Common.Reflection.Impl.StaticPointerTypeWrapper">
            <summary>
            A <see cref="T:Gallio.Common.Reflection.Impl.StaticReflectionPolicy"/> pointer type wrapper.
            </summary>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticPointerTypeWrapper.#ctor(Gallio.Common.Reflection.Impl.StaticReflectionPolicy,Gallio.Common.Reflection.Impl.StaticTypeWrapper)">
            <summary>
            Creates a wrapper.
            </summary>
            <param name="policy">The reflection policy.</param>
            <param name="elementType">The element type.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="policy"/> or <paramref name="elementType"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticPointerTypeWrapper.ApplySubstitution(Gallio.Common.Reflection.Impl.StaticTypeSubstitution)">
            <excludedoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticPointerTypeWrapper.Equals(System.Object)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticPointerTypeWrapper.GetHashCode">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticPointerTypeWrapper.IsPointer">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticPointerTypeWrapper.TypeAttributes">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticPointerTypeWrapper.NameSuffix">
            <excludedoc />
        </member>
        <member name="T:Gallio.Common.Reflection.Impl.StaticPropertyWrapper">
            <summary>
            A <see cref="T:Gallio.Common.Reflection.Impl.StaticReflectionPolicy"/> property wrapper.
            </summary>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticPropertyWrapper.#ctor(Gallio.Common.Reflection.Impl.StaticReflectionPolicy,System.Object,Gallio.Common.Reflection.Impl.StaticDeclaredTypeWrapper,Gallio.Common.Reflection.Impl.StaticDeclaredTypeWrapper)">
            <summary>
            Creates a wrapper.
            </summary>
            <param name="policy">The reflection policy.</param>
            <param name="handle">The underlying reflection object.</param>
            <param name="declaringType">The declaring type.</param>
            <param name="reflectedType">The reflected type.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="policy"/>, <paramref name="handle"/>,
            <paramref name="declaringType"/>, or <paramref name="reflectedType"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticPropertyWrapper.GetOverridenOrHiddenProperties(System.Boolean)">
            <summary>
            Gets the properties that this one overrides or hides.
            Only includes overrides that appear on class types, not interfaces.
            </summary>
            <param name="overridesOnly">If true, only returns overrides.</param>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticPropertyWrapper.Equals(Gallio.Common.Reflection.ISlotInfo)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticPropertyWrapper.Equals(Gallio.Common.Reflection.IPropertyInfo)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticPropertyWrapper.Resolve(System.Boolean)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticPropertyWrapper.ResolveMemberInfo(System.Boolean)">
            <excludedoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticPropertyWrapper.ToString">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticPropertyWrapper.GetPseudoCustomAttributes">
            <excludedoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticPropertyWrapper.Kind">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticPropertyWrapper.PropertyAttributes">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticPropertyWrapper.CanRead">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticPropertyWrapper.CanWrite">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticPropertyWrapper.GetMethod">
            <inheritdoc cref="P:Gallio.Common.Reflection.IPropertyInfo.GetMethod"/>
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticPropertyWrapper.SetMethod">
            <inheritdoc cref="P:Gallio.Common.Reflection.IPropertyInfo.SetMethod"/>
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticPropertyWrapper.IndexParameters">
            <inheritdoc cref="P:Gallio.Common.Reflection.IPropertyInfo.IndexParameters"/>
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticPropertyWrapper.ValueType">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticPropertyWrapper.Position">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Common.Reflection.Impl.StaticTypeSubstitution">
            <summary>
            A type substitution specifies how generic parameters are replaced by other types.
            It is used by implementors of <see cref="T:Gallio.Common.Reflection.Impl.StaticReflectionPolicy"/> when returning
            types that may be represented as generic parameters.
            </summary>
        </member>
        <member name="F:Gallio.Common.Reflection.Impl.StaticTypeSubstitution.Empty">
            <summary>
            Gets the empty type substitution.
            </summary>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticTypeSubstitution.Apply(Gallio.Common.Reflection.Impl.StaticTypeWrapper)">
            <summary>
            Applies a type substitution to the specified type.
            </summary>
            <param name="type">The type to substitute.</param>
            <returns>The substituted type.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="type"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticTypeSubstitution.Apply(Gallio.Common.Reflection.Impl.StaticGenericParameterWrapper)">
            <summary>
            Applies a type substitution to the specified generic parameter.
            </summary>
            <param name="type">The generic parameter to substitute.</param>
            <returns>The substituted type.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="type"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticTypeSubstitution.ApplyAll``1(System.Collections.Generic.IList{``0})">
            <summary>
            Applies a type substitution to the specified list of types.
            </summary>
            <param name="types">The types to substitute.</param>
            <returns>The substituted types.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="types"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticTypeSubstitution.Extend(System.Collections.Generic.IList{Gallio.Common.Reflection.Impl.StaticGenericParameterWrapper},System.Collections.Generic.IList{Gallio.Common.Reflection.ITypeInfo})">
            <summary>
            Returns a new substitution with the specified generic parameters replaced by their respective generic arguments.
            </summary>
            <remarks>
            <para>
            The extended type substitution is normalized so that generic parameters that
            are idempotently replaced with themselves are excluded from the substitution altogether.
            </para>
            </remarks>
            <param name="genericParameters">The generic parameters.</param>
            <param name="genericArguments">The generic arguments.</param>
            <returns>The resulting substitution.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="genericParameters"/> or <paramref name="genericArguments"/> is null
            or contain nulls.</exception>
            <exception cref="T:System.ArgumentException">Thrown if <paramref name="genericArguments"/> does not have the same
            number of elements as <paramref name="genericParameters"/>.</exception>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticTypeSubstitution.Compose(Gallio.Common.Reflection.Impl.StaticTypeSubstitution)">
            <summary>
            Returns a new substitution formed by composing this substitution with the specified one.
            That is to say, each replacement type in this substitution is replaced as described
            in the specified substitution.
            </summary>
            <param name="substitution">The substitution to compose.</param>
            <returns>The new substitution.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticTypeSubstitution.DoesNotContainAny(System.Collections.Generic.IList{Gallio.Common.Reflection.Impl.StaticGenericParameterWrapper})">
            <summary>
            Returns true if this substitution does not contain any of the specified generic parameters.
            </summary>
            <param name="genericParameters">The generic parameters.</param>
            <returns>True if none of the generic parameters are in the substitution.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="genericParameters"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticTypeSubstitution.op_Equality(Gallio.Common.Reflection.Impl.StaticTypeSubstitution,Gallio.Common.Reflection.Impl.StaticTypeSubstitution)">
            <summary>
            Compares two static type substitutions for equality.
            </summary>
            <param name="a">The first substitution.</param>
            <param name="b">The second substitution.</param>
            <returns>True if the substitutions are equal.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticTypeSubstitution.op_Inequality(Gallio.Common.Reflection.Impl.StaticTypeSubstitution,Gallio.Common.Reflection.Impl.StaticTypeSubstitution)">
            <summary>
            Compares two static type substitutions for inequality.
            </summary>
            <param name="a">The first substitution.</param>
            <param name="b">The second substitution.</param>
            <returns>True if the substitutions are equal.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticTypeSubstitution.Equals(Gallio.Common.Reflection.Impl.StaticTypeSubstitution)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticTypeSubstitution.Equals(System.Object)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.StaticTypeSubstitution.GetHashCode">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.StaticTypeSubstitution.IsEmpty">
            <summary>
            Returns true if the type substitution does not contain any replacements.
            </summary>
        </member>
        <member name="T:Gallio.Common.Reflection.Impl.XmlDocumentationUtils">
            <summary>
            Helpers for working with <see cref="T:Gallio.Common.Reflection.Impl.IXmlDocumentationResolver"/>.
            </summary>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.XmlDocumentationUtils.GetXmlDocumentation(System.Reflection.MemberInfo)">
            <summary>
            Gets the XML documentation for a member.
            </summary>
            <param name="member">The member.</param>
            <returns>The XML documentation for the member, or null if none available.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="member"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Reflection.Impl.XmlDocumentationUtils.FormatId(System.Reflection.MemberInfo)">
            <summary>
            Gets the XML documentation id of a member.
            </summary>
            <param name="member">The member.</param>
            <returns>The XML documentation id of the member.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="member"/> is null.</exception>
        </member>
        <member name="P:Gallio.Common.Reflection.Impl.XmlDocumentationUtils.Resolver">
            <summary>
            Gets the XML documentation resolver.
            </summary>
        </member>
        <member name="T:Gallio.Common.Reflection.ReflectionOnlyAssemblyLoader">
            <summary>
            This assembly loader loads assemblies externally for reflection only.
            </summary>
            <remarks>
            <para>
            This implementation ensures that the assembly files do not remain locked on disk and are not
            cached in memory outside of the scope of the loader.  Consequently the Garbage Collector will
            automatically reclaim the loader and its contents when they become unreferenced.
            </para>
            <para>
            In contrast, that of the standard .Net reflection-only load context
            (<seealso cref="M:System.Reflection.Assembly.ReflectionOnlyLoad(System.String)"/>) does not allow assemblies to be reclaimed
            until the <see cref="T:System.AppDomain"/> is unloaded.
            </para>
            <para>
            The loader considers all assemblies in the specified search path as well as any that
            can be located using the current AppDomain's assembly resolvers.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Common.Reflection.ReflectionOnlyAssemblyLoader.#ctor">
            <summary>
            Creates an assembly loader.
            </summary>
        </member>
        <member name="M:Gallio.Common.Reflection.ReflectionOnlyAssemblyLoader.AddHintDirectory(System.String)">
            <summary>
            Adds a hint directory to search for loading assemblies.
            </summary>
            <param name="path">The search directory to add.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="path"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Reflection.ReflectionOnlyAssemblyLoader.AddKnownReferencedAssemblyFilePath(System.String)">
            <summary>
            Adds a known file path for a referenced assembly
            </summary>
            <param name="assemblyFilePath">The known file path</param>
        </member>
        <member name="M:Gallio.Common.Reflection.ReflectionOnlyAssemblyLoader.RegisterCecilAssembly(_Mono.Cecil.AssemblyDefinition,System.String)">
            <summary>
             Registers a cecil assembly with the reflection policy
            </summary>
            <param name="assembly">The cecil assembly</param>
            <param name="assemblyFilePath">A full file path on disk to the specified assembly</param>
        </member>
        <member name="P:Gallio.Common.Reflection.ReflectionOnlyAssemblyLoader.ReflectionPolicy">
            <summary>
            Gets the reflection policy used to load and access the assemblies.
            </summary>
        </member>
        <member name="T:Gallio.Common.Reflection.ReflectionResolveException">
            <summary>
            The type of exception thrown when a reflection info object or reference cannot
            be resolved.
            </summary>
        </member>
        <member name="M:Gallio.Common.Reflection.ReflectionResolveException.#ctor">
            <summary>
            Creates an exception.
            </summary>
        </member>
        <member name="M:Gallio.Common.Reflection.ReflectionResolveException.#ctor(System.String)">
            <summary>
            Creates an exception.
            </summary>
            <param name="message">The message.</param>
        </member>
        <member name="M:Gallio.Common.Reflection.ReflectionResolveException.#ctor(System.String,System.Exception)">
            <summary>
            Creates an exception.
            </summary>
            <param name="message">The message.</param>
            <param name="innerException">The inner exception.</param>
        </member>
        <member name="M:Gallio.Common.Reflection.ReflectionResolveException.#ctor(Gallio.Common.Reflection.ICodeElementInfo)">
            <summary>
            Creates an exception for a code element that could not be resolved.
            </summary>
            <param name="codeElement">The code element that could not be resolved.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="codeElement"/> is nul.</exception>
        </member>
        <member name="M:Gallio.Common.Reflection.ReflectionResolveException.#ctor(Gallio.Common.Reflection.ICodeElementInfo,System.Exception)">
            <summary>
            Creates an exception for a code element that could not be resolved.
            </summary>
            <param name="codeElement">The code element that could not be resolved.</param>
            <param name="innerException">The inner exception, or null if none.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="codeElement"/> is nul.</exception>
        </member>
        <member name="M:Gallio.Common.Reflection.ReflectionResolveException.#ctor(Gallio.Common.Reflection.IAttributeInfo)">
            <summary>
            Creates an exception for an attribute that could not be resolved.
            </summary>
            <param name="attribute">The attribute that could not be resolved.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="attribute"/> is nul.</exception>
        </member>
        <member name="M:Gallio.Common.Reflection.ReflectionResolveException.#ctor(Gallio.Common.Reflection.IAttributeInfo,System.Exception)">
            <summary>
            Creates an exception for an attribute that could not be resolved.
            </summary>
            <param name="attribute">The attribute that could not be resolved.</param>
            <param name="innerException">The inner exception, or null if none.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="attribute"/> is nul.</exception>
        </member>
        <member name="M:Gallio.Common.Reflection.ReflectionResolveException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Creates an exception from serialization info.
            </summary>
            <param name="info">The serialization info.</param>
            <param name="context">The streaming context.</param>
        </member>
        <member name="T:Gallio.Common.Reflection.ReflectionUtils">
            <summary>
            Provides functions for working with reflection.
            </summary>
        </member>
        <member name="M:Gallio.Common.Reflection.ReflectionUtils.GetAssembly(Gallio.Common.Reflection.ICodeElementInfo)">
            <summary>
            Gets the assembly that declares the code element, or the
            code element itself if it is an <see cref="T:Gallio.Common.Reflection.IAssemblyInfo"/>.
            </summary>
            <param name="codeElement">The code element, possibly null.</param>
            <returns>The assembly, or null if not found.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.ReflectionUtils.GetNamespace(Gallio.Common.Reflection.ICodeElementInfo)">
            <summary>
            Gets the namespace that declares the code element, or the
            code element itself if it is an <see cref="T:Gallio.Common.Reflection.INamespaceInfo"/>.
            </summary>
            <param name="codeElement">The code element, possibly null.</param>
            <returns>The namespace, or null if not found.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.ReflectionUtils.GetType(Gallio.Common.Reflection.ICodeElementInfo)">
            <summary>
            Gets the type that declares the code element, or the
            code element itself if it is an <see cref="T:Gallio.Common.Reflection.ITypeInfo"/>.
            </summary>
            <param name="codeElement">The code element, possibly null.</param>
            <returns>The type, or null if not found.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.ReflectionUtils.GetMember(Gallio.Common.Reflection.ICodeElementInfo)">
            <summary>
            Gets the non-type member that declares the code element, or the
            code element itself if it is an <see cref="T:Gallio.Common.Reflection.IMemberInfo"/>
            other than a <see cref="T:Gallio.Common.Reflection.ITypeInfo"/>.
            </summary>
            <param name="codeElement">The code element, possibly null.</param>
            <returns>The member, or null if not found.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.ReflectionUtils.GetParameter(Gallio.Common.Reflection.ICodeElementInfo)">
            <summary>
            Gets the parameter that declares the code element, or the
            code element itself if it is an <see cref="T:Gallio.Common.Reflection.IParameterInfo"/>.
            </summary>
            <param name="codeElement">The code element, possibly null.</param>
            <returns>The parameter, or null if not found.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.ReflectionUtils.FindAssemblyReference(Gallio.Common.Reflection.IAssemblyInfo,System.String)">
            <summary>
            Finds the assembly name of the directly referenced assembly with the specified display name.
            </summary>
            <param name="assembly">The assembly to search.</param>
            <param name="displayName">The display name of the referenced assembly to find.</param>
            <returns>The referenced assembly name or null if none.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.ReflectionUtils.CanInstantiate(Gallio.Common.Reflection.ITypeInfo)">
            <summary>
            Determines if the type can be instantiated using a public constructor.
            </summary>
            <param name="type">The type.</param>
            <returns>True if the type can be instantiated.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.ReflectionUtils.CanInvokeNonStatic(Gallio.Common.Reflection.IMethodInfo)">
            <summary>
            Determines if the method is public, non-static and is non-abstract so it can be invoked.
            </summary>
            <param name="method">The method.</param>
            <returns>True if the method can be invoked.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.ReflectionUtils.CanGetAndSetNonStatic(Gallio.Common.Reflection.IPropertyInfo)">
            <summary>
            Determines if the property has public, non-static and non-abstract getter
            and setter functions.
            </summary>
            <param name="property">The property.</param>
            <returns>True if the property can be get and set.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.ReflectionUtils.IsDerivedFrom(Gallio.Common.Reflection.ITypeInfo,System.String)">
            <summary>
            Returns true if a type is derived from another type with the specified qualified name.
            </summary>
            <param name="type">The type to check.</param>
            <param name="qualifiedTypeName">The qualified type name.</param>
            <returns>True if <paramref name="type"/> is derived from <paramref name="qualifiedTypeName"/></returns>
        </member>
        <member name="M:Gallio.Common.Reflection.ReflectionUtils.GetDefaultValue(System.Type)">
            <summary>
            Gets the default value for a type.
            </summary>
            <param name="type">The type.</param>
            <returns>The default value for the type, such as <c>0</c> if
            the type represents an integer, or <c>null</c> if the type
            is a reference type or if <paramref name="type"/> was null.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.ReflectionUtils.GetDefaultValue(System.TypeCode)">
            <summary>
            Gets the default value of a type with a given type code.
            </summary>
            <param name="typeCode">The type code.</param>
            <returns>The default value of the type associated with the
            specified type code.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.ReflectionUtils.IsAssignableFrom(System.String,System.Type)">
            <summary>
            Returns true if the named type is assignable from the specified type.
            </summary>
            <param name="searchTypeName">The search type.</param>
            <param name="candidateType">The candidate type.</param>
            <returns>True if the search type is assignable from the candidate type.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="searchTypeName"/>
            or <paramref name="candidateType"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Reflection.ReflectionUtils.FindMembersWorkaround(System.Type,System.Reflection.MemberTypes,System.Reflection.BindingFlags,System.Reflection.MemberFilter,System.Object)">
            <summary>
            Workaround for a bug in <see cref="M:System.Type.FindMembers(System.Reflection.MemberTypes,System.Reflection.BindingFlags,System.Reflection.MemberFilter,System.Object)"/> which causes it ignore
            the binding flags when searching for events.
            </summary>
            <remarks>
            https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=522960
            </remarks>
        </member>
        <member name="M:Gallio.Common.Reflection.ReflectionUtils.IsNullable(System.Type)">
            <summary>
            Determines whether the specified type represents a nullable value.
            </summary>
            <param name="type">The type to evaluate.</param>
            <returns>True if it is nullable; otherwise false.</returns>
        </member>
        <member name="T:Gallio.Common.Reflection.Reflector">
            <summary>
            Wraps reflection types using the reflection adapter interfaces.
            Also resolves code references.
            </summary>
        </member>
        <member name="M:Gallio.Common.Reflection.Reflector.Resolve(Gallio.Common.Reflection.CodeReference,System.Boolean)">
            <summary>
            Resolves the specified <see cref="T:Gallio.Common.Reflection.CodeReference"/>. 
            </summary>
            <param name="reference">The code reference.</param>
            <param name="throwOnError">If true, throws an exception on error.</param>
            <returns>The associated code element, or null if the code reference
            is of kind <see cref="F:Gallio.Common.Reflection.CodeReferenceKind.Unknown"/></returns>
            <exception cref="T:System.InvalidOperationException">Thrown if <paramref name="throwOnError"/>
            is true and <paramref name="reference"/> cannot be resolved.</exception>
        </member>
        <member name="M:Gallio.Common.Reflection.Reflector.Wrap(System.Reflection.Assembly)">
            <summary>
            Obtains a reflection wrapper for an assembly.
            </summary>
            <param name="target">The assembly, or null if none.</param>
            <returns>The reflection wrapper, or null if none.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.Reflector.WrapNamespace(System.String)">
            <summary>
            Obtains a reflection wrapper for a namespace.
            </summary>
            <param name="name">The namespace name, or null if none.</param>
            <returns>The reflection wrapper, or null if none.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.Reflector.Wrap(System.Type)">
            <summary>
            Obtains a reflection wrapper for a type.
            </summary>
            <param name="target">The type, or null if none.</param>
            <returns>The reflection wrapper, or null if none.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.Reflector.Wrap(System.Collections.Generic.IList{System.Type})">
            <summary>
            Obtains a reflection wrapper for a list of types.
            </summary>
            <param name="targets">The types, or null if none.</param>
            <returns>The reflection wrappers, or null original list was null.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.Reflector.Wrap(System.Reflection.MemberInfo)">
            <summary>
            Obtains a reflection wrapper for a member.
            </summary>
            <param name="target">The member, or null if none.</param>
            <returns>The reflection wrapper, or null if none.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.Reflector.Wrap(System.Reflection.MethodBase)">
            <summary>
            Obtains a reflection wrapper for a function.
            </summary>
            <param name="target">The function, or null if none.</param>
            <returns>The reflection wrapper, or null if none.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.Reflector.Wrap(System.Reflection.ConstructorInfo)">
            <summary>
            Obtains a reflection wrapper for a constructor.
            </summary>
            <param name="target">The constructor, or null if none.</param>
            <returns>The reflection wrapper, or null if none.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.Reflector.Wrap(System.Reflection.MethodInfo)">
            <summary>
            Obtains a reflection wrapper for a method.
            </summary>
            <param name="target">The method, or null if none.</param>
            <returns>The reflection wrapper, or null if none.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.Reflector.Wrap(System.Reflection.PropertyInfo)">
            <summary>
            Obtains a reflection wrapper for a property.
            </summary>
            <param name="target">The property, or null if none.</param>
            <returns>The reflection wrapper, or null if none.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.Reflector.Wrap(System.Reflection.FieldInfo)">
            <summary>
            Obtains a reflection wrapper for a field.
            </summary>
            <param name="target">The field, or null if none.</param>
            <returns>The reflection wrapper, or null if none.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.Reflector.Wrap(System.Reflection.EventInfo)">
            <summary>
            Obtains a reflection wrapper for an event.
            </summary>
            <param name="target">The event, or null if none.</param>
            <returns>The reflection wrapper, or null if none.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.Reflector.Wrap(System.Reflection.ParameterInfo)">
            <summary>
            Obtains a reflection wrapper for a parameter.
            </summary>
            <param name="target">The parameter, or null if none.</param>
            <returns>The reflection wrapper, or null if none.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.Reflector.Wrap(System.Attribute)">
            <summary>
            Obtains a reflection wrapper for an attribute instance.
            </summary>
            <param name="target">The attribute, or null if none.</param>
            <returns>The reflection wrapper, or null if none.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.Reflector.GetExecutingFunction">
            <summary>
            Creates a code element from the executing function.
            </summary>
            <remarks>
            <para>
            This information may be unreliable if the compiler has inlined
            the executing method into its caller because the stack frame
            information will be incomplete.  This can can occur when compiler
            optimizations are turned on and the method body is simple.
            </para>
            <para>
            The inlining problem can be circumvented like this:
            <code><![CDATA[
            [MethodImpl(MethodImplOptions.NoInlining)]
            public void Foo()
            {
                IMethodInfo r = NativeReflector.GetExecutingFunction();
                // ...
            }
            ]]></code>
            </para>
            </remarks>
            <returns>The code reference.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.Reflector.GetCallingFunction">
            <summary>
            Creates a code element from the caller of the executing function.
            </summary>
            <remarks>
            <para>
            This information may be unreliable if the compiler has inlined
            the executing or calling method into its caller because the stack frame
            information will be incomplete.  This can can occur when compiler
            optimizations are turned on and the method body is simple.
            </para>
            <para>
            The inlining problem can be circumvented like this:
            <code><![CDATA[
            [MethodImpl(MethodImplOptions.NoInlining)]
            public void Foo()
            {
                IMethodInfo r = NativeReflector.GetCallingFunction();
                // ...
            }
            ]]></code>
            </para>
            </remarks>
            <returns>The code reference.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.Reflector.GetFunctionFromStackFrame(System.Int32)">
            <summary>
            Creates a code element representing a function from a particular frame on the current stack.
            </summary>
            <param name="framesToSkip">The number of frames to skip.  If this number is 0,
            the code reference will refer to the direct caller of this method;
            if it is 1, it will refer to the caller's caller, and so on.</param>
            <returns>The code reference.</returns>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="framesToSkip"/> is less than zero.</exception>
        </member>
        <member name="M:Gallio.Common.Reflection.Reflector.IsUnresolved(System.Reflection.Assembly)">
            <summary>
            Returns true if the target represents an unresolved assembly with
            limited support for reflection.
            </summary>
            <seealso cref="T:Gallio.Common.Reflection.Impl.IUnresolvedCodeElement"/>
            <param name="target">The assembly, or null if none.</param>
            <returns>True if the target is unresolved.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.Reflector.IsUnresolved(System.Reflection.MemberInfo)">
            <summary>
            Returns true if the target represents an unresolved member with
            limited support for reflection.
            </summary>
            <seealso cref="T:Gallio.Common.Reflection.Impl.IUnresolvedCodeElement"/>
            <param name="target">The member, or null if none.</param>
            <returns>True if the target is unresolved.</returns>
        </member>
        <member name="M:Gallio.Common.Reflection.Reflector.IsUnresolved(System.Reflection.ParameterInfo)">
            <summary>
            Returns true if the target represents an unresolved parameter with
            limited support for reflection.
            </summary>
            <seealso cref="T:Gallio.Common.Reflection.Impl.IUnresolvedCodeElement"/>
            <param name="target">The parameter, or null if none.</param>
            <returns>True if the target is unresolved.</returns>
        </member>
        <member name="P:Gallio.Common.Reflection.Reflector.NativeReflectionPolicy">
            <summary>
            Gets the singleton instance of the native <see cref="T:Gallio.Common.Reflection.IReflectionPolicy"/>
            based on .Net reflection.
            </summary>
        </member>
        <member name="T:Gallio.Common.Reflection.TypeName">
            <summary>
            Describes the name of a type and allows partial type names to be compared with one another.
            </summary>
        </member>
        <member name="M:Gallio.Common.Reflection.TypeName.#ctor(System.Type)">
            <summary>
            Creates a type name from a type.
            </summary>
            <param name="type">The type.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="type"/> is null.</exception>
            <exception cref="T:System.ArgumentException">Thrown if <paramref name="type"/> does not have a valid FullName property
            (for example, it represents a generic type parameter).</exception>
        </member>
        <member name="M:Gallio.Common.Reflection.TypeName.#ctor(Gallio.Common.Reflection.ITypeInfo)">
            <summary>
            Creates a type name from type info.
            </summary>
            <param name="typeInfo">The type info.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="typeInfo"/> is null.</exception>
            <exception cref="T:System.ArgumentException">Thrown if <paramref name="typeInfo"/> does not have a valid FullName property
            (for example, it represents a generic type parameter).</exception>
        </member>
        <member name="M:Gallio.Common.Reflection.TypeName.#ctor(System.String)">
            <summary>
            Creates a type name from its assembly-qualified name.
            </summary>
            <param name="assemblyQualifiedName">The assembly-qualified name of the type, including
            its namespace and assembly.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="assemblyQualifiedName"/> is null.</exception>
            <exception cref="T:System.ArgumentException">Thrown if <paramref name="assemblyQualifiedName"/> is malformed or
            does not contain a valid assembly name.</exception>
        </member>
        <member name="M:Gallio.Common.Reflection.TypeName.#ctor(System.String,System.Reflection.AssemblyName)">
            <summary>
            Creates a type name from its full name and assembly name.
            </summary>
            <param name="fullName">The full name of the type, including its namespace.</param>
            <param name="assemblyName">The full or partial name of the assembly that contains the type.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="fullName"/> or <paramref name="assemblyName"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Reflection.TypeName.Equals(Gallio.Common.Reflection.TypeName)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.TypeName.Equals(System.Object)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.TypeName.GetHashCode">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.TypeName.ToString">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Reflection.TypeName.Resolve">
            <summary>
            Resolves the type named by this instance.
            </summary>
            <returns>The type.</returns>
            <exception cref="T:Gallio.Common.Reflection.ReflectionResolveException">Thrown if the type could not be resolved.</exception>
        </member>
        <member name="M:Gallio.Common.Reflection.TypeName.ConvertToPartialAssemblyName">
            <summary>
            Returns a type name that has a partial assembly name instead of the full assembly name.
            </summary>
            <returns>The type name.</returns>
        </member>
        <member name="P:Gallio.Common.Reflection.TypeName.AssemblyQualifiedName">
            <summary>
            Gets the assembly-qualified name of the type, including its namespace and assembly.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.TypeName.FullName">
            <summary>
            Gets the full name of the type, including its namespace.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.TypeName.AssemblyName">
            <summary>
            Gets the full or partial name of the assembly that contains the type.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.TypeName.HasPartialAssemblyName">
            <summary>
            Returns true if the associated <see cref="P:Gallio.Common.Reflection.TypeName.AssemblyName"/> is a partial name only.
            </summary>
        </member>
        <member name="T:Gallio.Common.Text.Diff">
            <summary>
            Describes the difference between a range of the left document and a range of the right document.
            </summary>
            <remarks>
            <para>
            Each diff is accompanied by a <see cref="T:Gallio.Common.Text.DiffKind"/> that indicates whether it represents
            an identical region or one with changes.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Common.Text.Diff.#ctor(Gallio.Common.Text.DiffKind,Gallio.Common.Text.Range,Gallio.Common.Text.Range)">
            <summary>
            Creates a diff.
            </summary>
            <param name="kind">The diff kind which indicates whether there is a change over the range covered by the diff.</param>
            <param name="leftRange">The range of the left document that is affected.</param>
            <param name="rightRange">The range of the right document that is affected.</param>
        </member>
        <member name="M:Gallio.Common.Text.Diff.Equals(Gallio.Common.Text.Diff)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Text.Diff.Equals(System.Object)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Text.Diff.GetHashCode">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Text.Diff.op_Equality(Gallio.Common.Text.Diff,Gallio.Common.Text.Diff)">
            <summary>
            Returns true if two diffs are equal.
            </summary>
            <param name="a">The first diff to compare.</param>
            <param name="b">The second diff to compare.</param>
            <returns>True if the diffs are equal.</returns>
        </member>
        <member name="M:Gallio.Common.Text.Diff.op_Inequality(Gallio.Common.Text.Diff,Gallio.Common.Text.Diff)">
            <summary>
            Returns true if two diffs are not equal.
            </summary>
            <param name="a">The first diff to compare.</param>
            <param name="b">The second diff to compare.</param>
            <returns>True if the diffs are not equal.</returns>
        </member>
        <member name="M:Gallio.Common.Text.Diff.ToString">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Text.Diff.Kind">
            <summary>
            Gets the diff kind which indicateds whether there is a change over the range covered by the diff.
            </summary>
        </member>
        <member name="P:Gallio.Common.Text.Diff.LeftRange">
            <summary>
            Gets the range of the left document that is affected.
            </summary>
        </member>
        <member name="P:Gallio.Common.Text.Diff.RightRange">
            <summary>
            Gets the range of the right document that is affected.
            </summary>
        </member>
        <member name="T:Gallio.Common.Text.DiffKind">
            <summary>
            Describes whether a difference represents a changed or unchanged region.
            </summary>
        </member>
        <member name="F:Gallio.Common.Text.DiffKind.NoChange">
            <summary>
            Indicates there is no change between the left and right documents over the ranges described by the diff.
            </summary>
        </member>
        <member name="F:Gallio.Common.Text.DiffKind.Change">
            <summary>
            Indicates there is a change between the left and right documents over the ranges described by the diff.
            Text may have been added, removed, or edited.
            </summary>
        </member>
        <member name="T:Gallio.Common.Text.DiffSet">
            <summary>
            A diff set consists of a sequence of differences between a left document and a right document
            that indicate changed and unchanged regions.
            </summary>
            <remarks>
            <para>
            If the changes are applied in order to the left document, the right document will be
            reproduced.  If the inverse changes are applied in order to the right document, the
            left document will be reproduced.
            </para>
            <para>
            This implementation is based on Myers' O((M + N) * D) time and O(M + N) space algorithm
            for computing the longest common subsequence from his paper
            "An O(ND) Difference Algorithm and Its Variations."
            (http://citeseer.ist.psu.edu/myers86ond.html)
            </para>
            <para>
            There were two other sources for inspiration although this implementation is not
            a direct port of either of them.
            <list type="bullet">
            <item>The org.eclipse.compare.internal.LCS class in Eclipse (http://www.eclipse.org) from
            which we borrow the concept of limiting the number of differences to produce an approximate
            result with a reduced time bound for large data sets.  Since the Eclipse implementation
            of the LCS follows Myers' algorithm pretty closely, it was also very useful as a point
            of comparison for finding bugs.</item>
            <item>Neil Fraser's "Diff Match and Patch" algorithm (http://code.google.com/p/google-diff-match-patch/).
            We borrow some ideas about semantic cleanup from here.</item>
            </list>
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Common.Text.DiffSet.#ctor(System.Collections.Generic.IList{Gallio.Common.Text.Diff},System.String,System.String)">
            <summary>
            Constructs a diff set.
            </summary>
            <param name="diffs">The list of differences that indicate the changed and
            unchanged regions between the left and right documents.  The diffs span
            the entire range of the left and right documents and are listed in document order.</param>
            <param name="leftDocument">The left document.</param>
            <param name="rightDocument">The right document.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="leftDocument"/>,
            <paramref name="rightDocument"/> or <paramref name="diffs"/> is null.</exception>
            <exception cref="T:System.ArgumentException">Thrown if <paramref name="diffs"/> does not
            completely cover the left and right documents or are not listed in the correct order.</exception>
        </member>
        <member name="M:Gallio.Common.Text.DiffSet.GetDiffSet(System.String,System.String)">
            <summary>
            Gets the set of differences between a left document and a right document.
            </summary>
            <param name="leftDocument">The left document.</param>
            <param name="rightDocument">The right document.</param>
            <returns>The set of differences.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="leftDocument"/> or
            <paramref name="rightDocument"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Text.DiffSet.WriteTo(Gallio.Common.Markup.MarkupStreamWriter)">
            <summary>
            Writes the diffs using the <see cref="F:Gallio.Common.Text.DiffStyle.Interleaved"/>
            presentation style and no limits on the context length.
            </summary>
            <remarks>
            <para>
            For the purposes of determining additions and deletions, the left document
            is considered the original and the right document is the considered to be the
            one that was modified.  Changes are annotated by markers:
            by <see cref="P:Gallio.Common.Markup.Marker.DiffAddition"/>, <see cref="P:Gallio.Common.Markup.Marker.DiffDeletion"/>
            and <see cref="P:Gallio.Common.Markup.Marker.DiffChange"/>.
            </para>
            </remarks>
            <param name="writer">The test log stream writer to receive the highlighted document.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref nameref="writer"/> if null.</exception>
        </member>
        <member name="M:Gallio.Common.Text.DiffSet.WriteTo(Gallio.Common.Markup.MarkupStreamWriter,Gallio.Common.Text.DiffStyle)">
            <summary>
            Writes the diffs using the specified
            presentation style and no limits on the context length.
            </summary>
            <remarks>
            <para>
            Changes are annotated by markers: <see cref="P:Gallio.Common.Markup.Marker.DiffAddition"/>, <see cref="P:Gallio.Common.Markup.Marker.DiffDeletion"/>
            and <see cref="P:Gallio.Common.Markup.Marker.DiffChange"/>.
            </para>
            <para>
            If the style is <see cref="F:Gallio.Common.Text.DiffStyle.Interleaved"/> then the left document
            is considered the original and the right document is the considered to be the
            one that was modified so deletions appear within the left and additions within the right.
            </para>
            <para>
            If the style is <see cref="F:Gallio.Common.Text.DiffStyle.LeftOnly"/> or <see cref="F:Gallio.Common.Text.DiffStyle.RightOnly"/>
            then only the deletion and changed markers are used.
            </para>
            </remarks>
            <param name="writer">The test log stream writer to receive the highlighted document.</param>
            <param name="style">The presentation style.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref nameref="writer"/> if null.</exception>
        </member>
        <member name="M:Gallio.Common.Text.DiffSet.WriteTo(Gallio.Common.Markup.MarkupStreamWriter,Gallio.Common.Text.DiffStyle,System.Int32)">
            <summary>
            Writes the diffs using the specified presentation style and max context length.
            </summary>
            <remarks>
            <para>
            Changes are annotated by markers: <see cref="P:Gallio.Common.Markup.Marker.DiffAddition"/>, <see cref="P:Gallio.Common.Markup.Marker.DiffDeletion"/>
            and <see cref="P:Gallio.Common.Markup.Marker.DiffChange"/>.
            </para>
            <para>
            If the style is <see cref="F:Gallio.Common.Text.DiffStyle.Interleaved"/> then the left document
            is considered the original and the right document is the considered to be the
            one that was modified so deletions appear within the left and additions within the right.
            </para>
            <para>
            If the style is <see cref="F:Gallio.Common.Text.DiffStyle.LeftOnly"/> or <see cref="F:Gallio.Common.Text.DiffStyle.RightOnly"/>
            then only the deletion and changed markers are used.
            </para>
            </remarks>
            <param name="writer">The test log stream writer to receive the highlighted document.</param>
            <param name="style">The presentation style.</param>
            <param name="maxContextLength">The maximum number of characters of unchanged regions
            to display for context, or <see cref="F:System.Int32.MaxValue"/> for no limit.  Extraneous context
            is split in two with an ellipsis inserted in between both halves.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref nameref="writer"/> if null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="maxContextLength"/>
            is negative.</exception>
        </member>
        <member name="M:Gallio.Common.Text.DiffSet.Simplify">
            <summary>
            Simplifies the diff for presentation.
            </summary>
            <remarks>
            <para>
            This method applies a series of heuristics to make the diff easier to read
            but perhaps less optimal, including the following:
            <list type="bullet">
            <item>Adjacent diffs of the same kind are combined.</item>
            <item>Small unchanged regions sandwiched between larger changed regions are
            converted to larger changed regions.  This improves the case when only
            a few scattered characters coincidentally match between the two documents.</item>
            </list>
            </para>
            </remarks>
            <returns>Returns a simplified diff.</returns>
        </member>
        <member name="P:Gallio.Common.Text.DiffSet.Diffs">
            <summary>
            Gets the list of differences that indicate the changed and
            unchanged regions between the left and right documents. 
            </summary>
            <remarks>
            <para>
            The diffs span the entire range of the left and right documents and are listed in document order.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Common.Text.DiffSet.LeftDocument">
            <summary>
            Gets the left document.
            </summary>
        </member>
        <member name="P:Gallio.Common.Text.DiffSet.RightDocument">
            <summary>
            Gets the right document.
            </summary>
        </member>
        <member name="P:Gallio.Common.Text.DiffSet.ContainsChanges">
            <summary>
            Returns true if the list of differences contains changed regions.
            </summary>
        </member>
        <member name="P:Gallio.Common.Text.DiffSet.IsEmpty">
            <summary>
            Returns true if the list of differences is empty which can only occur when
            both document being compared are empty.
            </summary>
        </member>
        <member name="T:Gallio.Common.Text.DiffStyle">
            <summary>
            Specifies the presentation style for a <see cref="T:Gallio.Common.Text.DiffSet"/>.
            </summary>
        </member>
        <member name="F:Gallio.Common.Text.DiffStyle.Interleaved">
            <summary>
            Display the left and right document contents and diffs fully interleaved.
            </summary>
        </member>
        <member name="F:Gallio.Common.Text.DiffStyle.LeftOnly">
            <summary>
            Display only the left document contents.
            </summary>
        </member>
        <member name="F:Gallio.Common.Text.DiffStyle.RightOnly">
            <summary>
            Display only the right document contents.
            </summary>
        </member>
        <member name="T:Gallio.Common.Text.Range">
            <summary>
            A range denotes a segment of a string or other indexed data structure.
            </summary>
        </member>
        <member name="M:Gallio.Common.Text.Range.#ctor(System.Int32,System.Int32)">
            <summary>
            Creates a range of indices.
            </summary>
            <param name="startIndex">The starting index of the range.</param>
            <param name="length">The number of characters within the range, may be 0.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="startIndex"/>
            or <paramref name="length"/> is negative.</exception>
        </member>
        <member name="M:Gallio.Common.Text.Range.Between(System.Int32,System.Int32)">
            <summary>
            Creates a new range between the start index (inclusively) and end index (exclusively).
            </summary>
            <param name="startIndex">The start index.</param>
            <param name="endIndex">The end index.</param>
            <returns>The new range.</returns>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="startIndex"/>
            is negative or greater than <paramref name="endIndex"/>.</exception>
        </member>
        <member name="M:Gallio.Common.Text.Range.SubstringOf(System.String)">
            <summary>
            Gets a substring of the specified text using this range.
            </summary>
            <param name="text">The source text.</param>
            <returns>The substring of the source text that represents this range.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="text"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Text.Range.ExtendWith(Gallio.Common.Text.Range)">
            <summary>
            Extends a range into an adjacent range and returns the combined range.
            </summary>
            <param name="range">The adjacent range.</param>
            <returns>The extended range.</returns>
            <exception cref="T:System.ArgumentException">Thrown if <paramref name="range"/> is not an adjacent range.</exception>
        </member>
        <member name="M:Gallio.Common.Text.Range.Equals(Gallio.Common.Text.Range)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Text.Range.Equals(System.Object)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Text.Range.GetHashCode">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Text.Range.op_Equality(Gallio.Common.Text.Range,Gallio.Common.Text.Range)">
            <summary>
            Returns true if two ranges are equal.
            </summary>
            <param name="a">The first range to compare.</param>
            <param name="b">The second range to compare.</param>
            <returns>True if the ranges are equal.</returns>
        </member>
        <member name="M:Gallio.Common.Text.Range.op_Inequality(Gallio.Common.Text.Range,Gallio.Common.Text.Range)">
            <summary>
            Returns true if two ranges are not equal.
            </summary>
            <param name="a">The first range to compare.</param>
            <param name="b">The second range to compare.</param>
            <returns>True if the ranges are not equal.</returns>
        </member>
        <member name="M:Gallio.Common.Text.Range.ToString">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Common.Text.Range.StartIndex">
            <summary>
            Gets the starting index of the range.
            </summary>
        </member>
        <member name="P:Gallio.Common.Text.Range.EndIndex">
            <summary>
            Gets the ending index of the range, which is the start index plus the length.
            The ending index is one past the last character within the range.
            </summary>
        </member>
        <member name="P:Gallio.Common.Text.Range.Length">
            <summary>
            Gets the length of the range.
            </summary>
        </member>
        <member name="T:Gallio.Common.Text.Substring">
            <summary>
            A substring provides a convenient representation for a range within a larger string.
            </summary>
        </member>
        <member name="M:Gallio.Common.Text.Substring.#ctor(System.String)">
            <summary>
            Creates a substring object defined over the entire range of a string.
            </summary>
            <param name="content">The string.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="content"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Text.Substring.#ctor(System.String,Gallio.Common.Text.Range)">
            <summary>
            Creates a substring object.
            </summary>
            <param name="content">The string.</param>
            <param name="range">The range within the string.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="content"/> is null.</exception>
            <exception cref="T:System.ArgumentException">Thrown if <paramref name="range"/> is outside the bounds of the <paramref name="content"/> string.</exception>
        </member>
        <member name="M:Gallio.Common.Text.Substring.Extract(System.Int32)">
            <summary>
            Returns a substring of the substring.
            </summary>
            <param name="index">The index at which to start.</param>
            <returns>The substring.</returns>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="index"/> is negative or
            if is greater than <see cref="P:Gallio.Common.Text.Substring.Length"/>.</exception>
        </member>
        <member name="M:Gallio.Common.Text.Substring.Extract(System.Int32,System.Int32)">
            <summary>
            Returns a substring of the substring.
            </summary>
            <param name="index">The index at which to start.</param>
            <param name="length">The length of the substring to produce.</param>
            <returns>The substring.</returns>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="index"/> or
            <paramref name="length"/> are negative or if their sum is greater than <see cref="P:Gallio.Common.Text.Substring.Length"/>.</exception>
        </member>
        <member name="M:Gallio.Common.Text.Substring.FindCommonPrefixLength(Gallio.Common.Text.Substring)">
            <summary>
            Finds the length of the common prefix of this substring and another one.
            </summary>
            <param name="other">The other substring.</param>
            <returns>The common prefix length, or 0 if the substrings have no prefix in common.</returns>
        </member>
        <member name="M:Gallio.Common.Text.Substring.FindCommonSuffixLength(Gallio.Common.Text.Substring)">
            <summary>
            Finds the length of the common suffix of this substring and another one.
            </summary>
            <param name="other">The other substring.</param>
            <returns>The common suffix length, or 0 if the substrings have no suffix in common.</returns>
        </member>
        <member name="M:Gallio.Common.Text.Substring.ToString">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Text.Substring.Equals(System.Object)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Text.Substring.Equals(Gallio.Common.Text.Substring)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Text.Substring.GetHashCode">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Text.Substring.op_Equality(Gallio.Common.Text.Substring,Gallio.Common.Text.Substring)">
            <summary>
            Returns true if two substrings are equal.
            </summary>
            <param name="a">The first substring to compare.</param>
            <param name="b">The second substring to compare.</param>
            <returns>True if the substrings are equal.</returns>
        </member>
        <member name="M:Gallio.Common.Text.Substring.op_Inequality(Gallio.Common.Text.Substring,Gallio.Common.Text.Substring)">
            <summary>
            Returns true if two substrings are not equal.
            </summary>
            <param name="a">The first substring to compare.</param>
            <param name="b">The second substring to compare.</param>
            <returns>True if the substrings are not equal.</returns>
        </member>
        <member name="P:Gallio.Common.Text.Substring.Content">
            <summary>
            Returns the whole string.
            </summary>
        </member>
        <member name="P:Gallio.Common.Text.Substring.Range">
            <summary>
            Returns the range of the underlying string represented by the substring.
            </summary>
        </member>
        <member name="P:Gallio.Common.Text.Substring.Length">
            <summary>
            Gets the length of the substring.
            </summary>
        </member>
        <member name="P:Gallio.Common.Text.Substring.Item(System.Int32)">
            <summary>
            Gets the character with a particular index.
            </summary>
            <param name="index">The index.</param>
            <returns>The character.</returns>
            <exception cref="T:System.IndexOutOfRangeException">Thrown if the index is out of range.</exception>
        </member>
        <member name="T:Gallio.Framework.DiagnosticLog">
            <summary>
            The diagnostic log provides services for writing diagnostic messages to the console
            or runtime log during a test run.
            </summary>
            <remarks>
            <para>
            Diagnostic messages will appear in the test report but they are not associated with
            any particular tests.  Unlike <see cref="T:Gallio.Framework.TestLog"/> the messages may not include rich
            content such as attachments or embedded images.
            </para>
            <para>
            If you use the diagnostic log to report progress messages, keep in mind that they
            will all be preserved in the report, making the report larger.
            </para>
            </remarks>
            <seealso cref="T:Gallio.Framework.TestLog"/>
        </member>
        <member name="M:Gallio.Framework.DiagnosticLog.WriteLine(System.String)">
            <summary>
            Writes a message to the diagnostic log.
            </summary>
            <param name="message">The message to write, may be null.</param>
        </member>
        <member name="M:Gallio.Framework.DiagnosticLog.WriteLine(System.String,System.Object[])">
            <summary>
            Writes a formatted message to the diagnostic log.
            </summary>
            <seealso cref="M:System.String.Format(System.String,System.Object[])"/>
            <param name="messageFormat">The message format string, may be null.</param>
            <param name="messageArgs">The message arguments.</param>
        </member>
        <member name="T:Gallio.Framework.Pattern.ReflectionOnlyTestModelBuilder">
            <summary>
            An implementation of a test model builder that is used for reflection only and
            does not actually support building tests.
            </summary>
        </member>
        <member name="T:Gallio.Framework.Pattern.ITestModelBuilder">
            <summary>
            A test model builder applies contributions to a test model under construction.
            </summary>
        </member>
        <member name="T:Gallio.Framework.Pattern.ISupportDeferredActions">
            <summary>
            Provides support for performing deferred build actions.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Pattern.ISupportDeferredActions.AddDeferredAction(Gallio.Common.Reflection.ICodeElementInfo,System.Int32,Gallio.Common.Action)">
            <summary>
            Registers a deferred action to be performed when <see cref="M:Gallio.Framework.Pattern.ISupportDeferredActions.ApplyDeferredActions"/> is called.
            </summary>
            <remarks>
            <para>
            Typically used to enable decorations to be applied in a particular order.
            </para>
            </remarks>
            <param name="codeElement">The associated code element, used to report errors if the deferred action throws an exception.</param>
            <param name="order">The order in which the action should be applied, from least order to greatest.</param>
            <param name="deferredAction">The action to perform.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="codeElement"/>
            or <paramref name="deferredAction"/> is null.</exception>
            <seealso cref="M:Gallio.Framework.Pattern.ISupportDeferredActions.ApplyDeferredActions"/>
        </member>
        <member name="M:Gallio.Framework.Pattern.ISupportDeferredActions.ApplyDeferredActions">
            <summary>
            Applies all pending deferred in order and clears the list.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Pattern.ITestModelBuilder.AddAnnotation(Gallio.Model.Tree.Annotation)">
            <summary>
            Adds an annotation to the test model.
            </summary>
            <param name="annotation">The annotation to add.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="annotation"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.Pattern.ITestModelBuilder.AddAssemblyResolver(Gallio.Runtime.Loader.IAssemblyResolver)">
            <summary>
            Adds an assembly resolver to the test model's assembly loading policy.
            </summary>
            <param name="resolver">The resolver to add.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="resolver"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.Pattern.ITestModelBuilder.PublishExceptionAsAnnotation(Gallio.Common.Reflection.ICodeElementInfo,System.Exception)">
            <summary>
            Publishes an exception as an annotation about a particular code element.
            </summary>
            <param name="codeElement">The code element, or null if none.</param>
            <param name="ex">The exception to publish.</param>
        </member>
        <member name="M:Gallio.Framework.Pattern.ITestModelBuilder.ToTestModel">
            <summary>
            Gets the underlying test model.
            </summary>
            <returns>The underlying test model.</returns>
        </member>
        <member name="P:Gallio.Framework.Pattern.ITestModelBuilder.ReflectionPolicy">
            <summary>
            Gets the reflection policy for the model.
            </summary>
        </member>
        <member name="P:Gallio.Framework.Pattern.ITestModelBuilder.RootTestBuilder">
            <summary>
            Gets the builder of the root test.
            </summary>
            <returns>The builder for the root test.</returns>
        </member>
        <member name="M:Gallio.Framework.Pattern.ReflectionOnlyTestModelBuilder.#ctor(Gallio.Common.Reflection.IReflectionPolicy)">
            <summary>
            Creates a test model builder.
            </summary>
            <param name="reflectionPolicy">The reflection policy.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="reflectionPolicy"/> is null.</exception>
        </member>
        <member name="P:Gallio.Framework.Pattern.ReflectionOnlyTestModelBuilder.ReflectionPolicy">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Framework.Pattern.ReflectionOnlyTestModelBuilder.RootTestBuilder">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Framework.Pattern.ITestBuilder">
            <summary>
            A test builder applies contributions to a test under construction.
            </summary>
        </member>
        <member name="T:Gallio.Framework.Pattern.ITestComponentBuilder">
            <summary>
            A test component builder applies contributions to a test or test parameter under construction.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Pattern.ITestComponentBuilder.AddMetadata(System.String,System.String)">
            <summary>
            Adds a metadata key value pair.
            </summary>
            <param name="key">The metadata key.</param>
            <param name="value">The value to add.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="key"/> or <paramref name="value"/> is null.</exception>
            <seealso cref="P:Gallio.Model.Tree.TestComponent.Metadata"/>
            <seealso cref="T:Gallio.Model.MetadataKeys"/>
        </member>
        <member name="M:Gallio.Framework.Pattern.ITestComponentBuilder.ToTestComponent">
            <summary>
            Gets the underlying test component.
            </summary>
            <returns>The underlying test component.</returns>
        </member>
        <member name="P:Gallio.Framework.Pattern.ITestComponentBuilder.Id">
            <summary>
            Gets the stable unique identifier of the component.
            </summary>
            <remarks>
            <para>
            The identifier must be unique across all components
            within a given test project.  It should also be stable so that the
            identifier remains valid across recompilations and code changes that
            do not alter the underlying declarations (insofar as is possible).
            </para>
            <para>
            The identifier does not refer to a specific instance of <see cref="T:Gallio.Model.Tree.TestComponent"/>,
            but rather incorporates enough information so that we can unambiguously find a
            corresponding instance in a model that has been populated.  When we rebuild
            the model, assuming the code hasn't changed too much, the objects in the model
            will have the same identifier as before.  This allows the identifier
            to be saved in project files to construct lists of components.  We can also use
            it to refer to components remotely.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Framework.Pattern.ITestComponentBuilder.Name">
            <summary>
            Gets or sets the name of the component.
            </summary>
            <seealso cref="P:Gallio.Model.Tree.TestComponent.Name"/>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="P:Gallio.Framework.Pattern.ITestComponentBuilder.CodeElement">
            <summary>
            Gets a reference to the point of definition of this test
            component in the code, or null if unknown.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Pattern.ITestBuilder.CreateChild(System.String,Gallio.Common.Reflection.ICodeElementInfo,Gallio.Framework.Pattern.ITestDataContextBuilder)">
            <summary>
            Creates a child test and returns its builder.
            </summary>
            <param name="name">The test name.</param>
            <param name="codeElement">The associated code element, or null if none.</param>
            <param name="dataContextBuilder">The data context builder for the new test.</param>
            <returns>The builder for the child test.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="name"/> or <paramref name="dataContextBuilder"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.Pattern.ITestBuilder.CreateParameter(System.String,Gallio.Common.Reflection.ICodeElementInfo,Gallio.Framework.Pattern.ITestDataContextBuilder)">
            <summary>
            Creates a test parameter and returns its builder.
            </summary>
            <param name="name">The test parameter name.</param>
            <param name="codeElement">The associated code element, or null if none.</param>
            <param name="dataContextBuilder">The data context builder for the new test parameter.</param>
            <returns>The builder for the test parameter.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="name"/> or <paramref name="dataContextBuilder"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.Pattern.ITestBuilder.GetParameter(System.String)">
            <summary>
            Gets a test parameter builder by name.
            </summary>
            <param name="name">The test parameter name.</param>
            <returns>The builder for the test parameter, or null if none.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="name"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.Pattern.ITestBuilder.AddDependency(Gallio.Model.Tree.Test)">
            <summary>
            Adds a test dependency.
            </summary>
            <param name="testDependency">The test to add as a dependency.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="testDependency"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.Pattern.ITestBuilder.ToTest">
            <summary>
            Gets the underlying test.
            </summary>
            <returns>The underlying test.</returns>
        </member>
        <member name="P:Gallio.Framework.Pattern.ITestBuilder.Kind">
            <summary>
            Gets or sets the value of the <see cref="F:Gallio.Model.MetadataKeys.TestKind"/>
            metadata entry.  (This is a convenience method.)
            </summary>
            <value>
            One of the <see cref="T:Gallio.Model.TestKinds"/> constants.
            </value>
        </member>
        <member name="P:Gallio.Framework.Pattern.ITestBuilder.ApartmentState">
            <summary>
            Gets or sets the apartment state to be used to run the test.
            </summary>
            <remarks>
            <para>
            If the apartment state is <see cref="F:System.Threading.ApartmentState.Unknown"/>
            the test will inherit the apartment state of its parent.  Otherwise
            it will run in a thread with the specified apartment state.
            </para>
            <para>
            The test runner guarantees that the root test runs with the <see cref="F:System.Threading.ApartmentState.STA"/>
            apartment state.  Consequently the apartment state only needs to be overridden to run 
            a test in some mode that may differ from that which it would ordinarily inherit.
            </para>
            </remarks>
            <value>
            The default value of this property is <see cref="F:System.Threading.ApartmentState.Unknown"/>.
            </value>
        </member>
        <member name="P:Gallio.Framework.Pattern.ITestBuilder.TimeoutFunc">
            <summary>
            Gets or sets the maximum amount of time the whole test including
            its setup, teardown and body should be permitted to run.
            </summary>
            <remarks>
            <para>
            If the test runs any longer than this, it will be aborted by the framework.
            The timeout may be null to indicate the absence of a timeout.
            </para>
            </remarks>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="value"/>
            represents a negative time span.</exception>
            <value>The timeout.  Default value is null.</value>
        </member>
        <member name="P:Gallio.Framework.Pattern.ITestBuilder.IsTestCase">
            <summary>
            Gets whether this test represents an individual test case
            as opposed to a test container such as a fixture or suite.
            </summary>
            <remarks>
            <para>
            The value of this property can be used by the test harness to avoid processing containers
            that have no test cases.  It can also be used by the reporting infrastructure
            to constrain output statistics to test cases only.
            </para>
            <para>
            Not all test cases are leaf nodes in the test tree and vice-versa.       
            </para>
            <para>
            This value is defined as a property rather than as a metadata key because it
            significantly changes the semantics of test execution.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Framework.Pattern.ITestBuilder.IsParallelizable">
            <summary>
            Gets or sets whether the test is parallelizable.
            </summary>
            <value>
            True if the test is parallelizable.  The default value of this property is <c>false</c>.
            </value>
        </member>
        <member name="P:Gallio.Framework.Pattern.ITestBuilder.Order">
            <summary>
            Gets or sets a number that defines an ordering for the test with respect to its siblings.
            </summary>
            <remarks>
            <para>
            Unless compelled otherwise by test dependencies, tests with a lower order number than
            their siblings will run before those siblings and tests with the same order number
            as their siblings with run in an arbitrary sequence with respect to those siblings.
            </para>
            <para>
            Some test frameworks may choose to ignore test order or may impose their own ordering schemes.
            </para>
            </remarks>
            <value>The test execution order with respect to siblings, initially zero.</value>
        </member>
        <member name="P:Gallio.Framework.Pattern.ITestBuilder.LocalId">
            <summary>
            Gets a locally unique identifier for this test that satisfies some specific conditions.
            </summary>
            <remarks>
            The local identifier must satisfy the following conditions:
            <para>
            <list type="bullet">
            <item>The identifier is unique among all siblings of this test belonging to the same parent.</item>
            <item>The identifier is likely to be stable across multiple sessions including
            changes and recompilations of the test projects.</item>
            <item>The identifier is non-null.</item>
            </list>
            </para>
            <para>
            The local identifier may be the same as the test's name.  However since the name is
            intended for display to end-users, it may contain irrelevant details (such as version
            numbers) that would reduce its long-term stability.  In that case, a different
            local identifier should be selected such as one based on the test's
            <see cref="P:Gallio.Model.Tree.TestComponent.CodeElement"/> and an ordering condition among siblings
            to guarantee uniqueness.
            </para>
            <para>
            The locally unique <see cref="P:Gallio.Framework.Pattern.ITestBuilder.LocalId"/> property may be used to generate the
            globally unique <see cref="P:Gallio.Model.Tree.TestComponent.Id"/> property of a test by combining
            it with the locally unique identifiers of its parents.
            </para>
            </remarks>
            <returns>The locally unique identifier.</returns>
        </member>
        <member name="P:Gallio.Framework.Pattern.ITestBuilder.LocalIdHint">
            <summary>
            Gets or sets a suggested <see cref="P:Gallio.Framework.Pattern.ITestBuilder.LocalId"/> hint, or null if none.
            </summary>
            <remarks>
            <para>
            The value returned by this method will be checked for uniqueness and amended as necessary
            to produce a truly unique <see cref="P:Gallio.Framework.Pattern.ITestBuilder.LocalId"/>.
            </para>
            </remarks>
            <value>
            The default value of this property is <c>null</c> which causes the <see cref="P:Gallio.Framework.Pattern.ITestComponentBuilder.Name"/>
            property to be used as the local id hint.
            </value>
            <returns>The local id hint.</returns>
        </member>
        <member name="P:Gallio.Framework.Pattern.ITestBuilder.TestActions">
            <summary>
            Gets the set of actions that describe the behavior of the test.
            </summary>
        </member>
        <member name="P:Gallio.Framework.Pattern.ITestBuilder.TestInstanceActions">
            <summary>
            Gets the set of actions that describe the behavior of the test's instances.
            </summary>
        </member>
        <member name="T:Gallio.Framework.Pattern.PatternTestFrameworkExtensionInfo">
            <summary>
            Provides information about a particular pattern test framework extension.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Pattern.PatternTestFrameworkExtensionInfo.#ctor(System.String,System.String)">
            <summary>
            Creates an information object.
            </summary>
            <param name="id">The unique id of the extension.</param>
            <param name="name">The display name of the extension.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="id"/> or <paramref name="name"/>
            is null.</exception>
        </member>
        <member name="P:Gallio.Framework.Pattern.PatternTestFrameworkExtensionInfo.Id">
            <summary>
            Gets the unique id of the extension.
            </summary>
        </member>
        <member name="P:Gallio.Framework.Pattern.PatternTestFrameworkExtensionInfo.Name">
            <summary>
            Gets the display name of the extension.
            </summary>
        </member>
        <member name="P:Gallio.Framework.Pattern.PatternTestFrameworkExtensionInfo.AssemblyKind">
            <summary>
            Gets or sets the extension's test kind which is used to decorate the test
            assembly test when a test assembly only contains tests that belong to one
            particular framework.  May be null if none.
            </summary>
        </member>
        <member name="T:Gallio.Framework.TestTerminatedException">
            <summary>
            This exception type is used to signal that a test has been terminated with
            a particular outcome.
            </summary>
            <remarks>
            <para>
            The exception message, if present, should explain the reason that the test was terminated.
            </para>
            </remarks>
        </member>
        <member name="T:Gallio.Framework.TestException">
            <summary>
            This exception type is an abstract base class for exceptions that are used to
            explicitly signal the outcome of a test.
            </summary>
            <remarks>
            <para>
            The test framework uses the value of the <see cref="P:Gallio.Framework.TestException.Outcome"/> property to set the test
            result instead of applying the standard behavior for unexpected exceptions.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Framework.TestException.#ctor">
            <summary>
            Creates an exception.
            </summary>
        </member>
        <member name="M:Gallio.Framework.TestException.#ctor(System.String)">
            <summary>
            Creates an exception.
            </summary>
            <param name="message">The message.</param>
        </member>
        <member name="M:Gallio.Framework.TestException.#ctor(System.String,System.Exception)">
            <summary>
            Creates an exception.
            </summary>
            <param name="message">The message.</param>
            <param name="innerException">The inner exception.</param>
        </member>
        <member name="M:Gallio.Framework.TestException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Creates an exception from serialization info.
            </summary>
            <param name="info">The serialization info.</param>
            <param name="context">The streaming context.</param>
        </member>
        <member name="M:Gallio.Framework.TestException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Framework.TestException.HasNonDefaultMessage">
            <summary>
            Returns true if the test exception has a non-default message
            </summary>
            <remarks>
            <para>
            The message parameter was not null in the constructor arguments.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Framework.TestException.Outcome">
            <summary>
            Gets the outcome of the test.
            </summary>
        </member>
        <member name="P:Gallio.Framework.TestException.ExcludeStackTrace">
            <summary>
            Returns <c>true</c> if the outcome and message (if any) should be used but the exception
            stack trace should not be logged.
            </summary>
        </member>
        <member name="M:Gallio.Framework.TestTerminatedException.#ctor(Gallio.Model.TestOutcome)">
            <summary>
            Creates a silent test exception with the specified outcome.
            </summary>
            <param name="outcome">The test outcome.</param>
        </member>
        <member name="M:Gallio.Framework.TestTerminatedException.#ctor(Gallio.Model.TestOutcome,System.String)">
            <summary>
            Creates a silent test exception with the specified outcome.
            </summary>
            <param name="outcome">The test outcome.</param>
            <param name="message">The message, or null if none.</param>
        </member>
        <member name="M:Gallio.Framework.TestTerminatedException.#ctor(Gallio.Model.TestOutcome,System.String,System.Exception)">
            <summary>
            Creates an exception.
            </summary>
            <param name="outcome">The test outcome.</param>
            <param name="message">The message, or null if none.</param>
            <param name="innerException">The inner exception, or null if none.</param>
        </member>
        <member name="M:Gallio.Framework.TestTerminatedException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Creates a exception from serialization info.
            </summary>
            <param name="info">The serialization info.</param>
            <param name="context">The streaming context.</param>
        </member>
        <member name="M:Gallio.Framework.TestTerminatedException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Framework.TestTerminatedException.Outcome">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Framework.Pattern.BaseBuilder">
            <summary>
            Abstract base class for typical builder implementations.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Pattern.BaseBuilder.AddDeferredAction(Gallio.Common.Reflection.ICodeElementInfo,System.Int32,Gallio.Common.Action)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Pattern.BaseBuilder.ApplyDeferredActions">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Pattern.BaseBuilder.GetTestModelBuilder">
            <summary>
            Gets the test model builder.
            </summary>
            <returns>The test model builder.</returns>
        </member>
        <member name="T:Gallio.Framework.Pattern.DefaultTestBuilder">
            <summary>
            Default implementation of a test model builder.
            </summary>
        </member>
        <member name="T:Gallio.Framework.Pattern.BaseTestComponentBuilder">
            <summary>
            Abstract base class for test component builders.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Pattern.BaseTestComponentBuilder.#ctor(Gallio.Framework.Pattern.ITestModelBuilder)">
            <summary>
            Creates a test component builder.
            </summary>
            <param name="testModelBuilder">The associated test model builder.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="testModelBuilder"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.Pattern.BaseTestComponentBuilder.AddMetadata(System.String,System.String)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Pattern.BaseTestComponentBuilder.ToTestComponent">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Pattern.BaseTestComponentBuilder.GetTestComponent">
            <summary>
            Gets the underlying test component.
            </summary>
            <returns>The test component.</returns>
        </member>
        <member name="M:Gallio.Framework.Pattern.BaseTestComponentBuilder.GetTestModelBuilder">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Framework.Pattern.BaseTestComponentBuilder.Id">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Framework.Pattern.BaseTestComponentBuilder.Name">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Framework.Pattern.BaseTestComponentBuilder.CodeElement">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Pattern.DefaultTestBuilder.#ctor(Gallio.Framework.Pattern.ITestModelBuilder,Gallio.Framework.Pattern.PatternTest)">
            <summary>
            Creates a test builder.
            </summary>
            <param name="testModelBuilder">The test model builder.</param>
            <param name="test">The underlying test.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="testModelBuilder"/>
            or <paramref name="test"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.Pattern.DefaultTestBuilder.CreateChild(System.String,Gallio.Common.Reflection.ICodeElementInfo,Gallio.Framework.Pattern.ITestDataContextBuilder)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Pattern.DefaultTestBuilder.CreateParameter(System.String,Gallio.Common.Reflection.ICodeElementInfo,Gallio.Framework.Pattern.ITestDataContextBuilder)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Pattern.DefaultTestBuilder.GetParameter(System.String)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Pattern.DefaultTestBuilder.AddDependency(Gallio.Model.Tree.Test)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Pattern.DefaultTestBuilder.ToTest">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Pattern.DefaultTestBuilder.GetTestComponent">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Framework.Pattern.DefaultTestBuilder.Kind">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Framework.Pattern.DefaultTestBuilder.ApartmentState">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Framework.Pattern.DefaultTestBuilder.TimeoutFunc">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Framework.Pattern.DefaultTestBuilder.IsTestCase">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Framework.Pattern.DefaultTestBuilder.IsParallelizable">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Framework.Pattern.DefaultTestBuilder.Order">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Framework.Pattern.DefaultTestBuilder.LocalId">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Framework.Pattern.DefaultTestBuilder.LocalIdHint">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Framework.Pattern.DefaultTestBuilder.TestActions">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Framework.Pattern.DefaultTestBuilder.TestInstanceActions">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Framework.Pattern.DefaultTestDataContextBuilder">
            <summary>
            Default implementation of a test data context builder.
            </summary>
        </member>
        <member name="T:Gallio.Framework.Pattern.ITestDataContextBuilder">
            <summary>
            A test data context builder applies contributions to a test data context under construction.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Pattern.ITestDataContextBuilder.DefineDataSource(System.String)">
            <summary>
            Defines a new data source within this data context if one does not exist.
            Otherwise returns the existing one.
            </summary>
            <param name="name">The data source name, or an empty string if it is anonymous.</param>
            <returns>The defined data source.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="name"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.Pattern.ITestDataContextBuilder.CreateChild">
            <summary>
            Creates a child data context.
            </summary>
            <returns>The builder for the child context.</returns>
        </member>
        <member name="M:Gallio.Framework.Pattern.ITestDataContextBuilder.ToPatternTestDataContext">
            <summary>
            Gets the underlying pattern test data context.
            </summary>
            <returns>The underlying pattern test data context.</returns>
        </member>
        <member name="P:Gallio.Framework.Pattern.ITestDataContextBuilder.ImplicitDataBindingIndexOffset">
            <summary>
            Gets or sets the offset to add to a test parameter's implicit data binding index to map it
            into the containing data context.
            </summary>
            <remarks>
            <para>
            This property is used to determine the data binding index of a test parameter that
            has not been explicitly bound.  The offsets are summed cumulatively to produce an implicit
            data binding index while traversing the chain of containing data contexts while locating the
            first anonymous data source.
            </para>
            <para>
            For example, suppose <c>Y</c> is the second parameter of a test method.  If <c>Y</c> does not
            have an explicit data binding, we will apply implicit data binding rules as follows.
            <list type="bullet">
            <item>If <c>Y</c>'s data context contains an anonymous data source, then the implicit data binding index will be 0.</item>
            <item>Otherwise, if <c>Y</c>'s containing data context contains an anonymous data source, then the implicit data
            binding index will equal the offset specified in <c>Y</c>'s data context: 1 (since it is the second parameter).</item>
            <item>Otherwise, we continue searching containing data contexts and summing their offsets until we find an
            anonymous data source.  If none is found, then data binding will fail.</item>
            </list>
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Framework.Pattern.DefaultTestDataContextBuilder.#ctor(Gallio.Framework.Pattern.ITestModelBuilder,Gallio.Framework.Pattern.PatternTestDataContext)">
            <summary>
            Creates a test data context builder.
            </summary>
            <param name="testModelBuilder">The associated test model builder.</param>
            <param name="testDataContext">The underlying test data context.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="testModelBuilder"/>
            or <paramref name="testDataContext"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.Pattern.DefaultTestDataContextBuilder.DefineDataSource(System.String)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Pattern.DefaultTestDataContextBuilder.CreateChild">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Pattern.DefaultTestDataContextBuilder.ToPatternTestDataContext">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Pattern.DefaultTestDataContextBuilder.GetTestModelBuilder">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Framework.Pattern.DefaultTestDataContextBuilder.ImplicitDataBindingIndexOffset">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Framework.Pattern.DefaultTestModelBuilder">
            <summary>
            Default implementation of a test model builder.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Pattern.DefaultTestModelBuilder.#ctor(Gallio.Common.Reflection.IReflectionPolicy,Gallio.Framework.Pattern.PatternTestModel)">
            <summary>
            Creates a test model builder.
            </summary>
            <param name="reflectionPolicy">The reflection policy.</param>
            <param name="testModel">The underlying test model.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="reflectionPolicy"/>
            or <paramref name="testModel"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.Pattern.DefaultTestModelBuilder.AddAnnotation(Gallio.Model.Tree.Annotation)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Pattern.DefaultTestModelBuilder.AddAssemblyResolver(Gallio.Runtime.Loader.IAssemblyResolver)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Pattern.DefaultTestModelBuilder.PublishExceptionAsAnnotation(Gallio.Common.Reflection.ICodeElementInfo,System.Exception)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Pattern.DefaultTestModelBuilder.ToTestModel">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Pattern.DefaultTestModelBuilder.GetTestModelBuilder">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Framework.Pattern.DefaultTestModelBuilder.ReflectionPolicy">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Framework.Pattern.DefaultTestModelBuilder.RootTestBuilder">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Framework.Pattern.DefaultTestParameterBuilder">
            <summary>
            Default implementation of a test parameter builder.
            </summary>
        </member>
        <member name="T:Gallio.Framework.Pattern.ITestParameterBuilder">
            <summary>
            A test builder applies contributions to a test under construction.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Pattern.ITestParameterBuilder.ToTestParameter">
            <summary>
            Gets the underlying test parameter.
            </summary>
            <returns>The underlying test parameter.</returns>
        </member>
        <member name="P:Gallio.Framework.Pattern.ITestParameterBuilder.TestDataContextBuilder">
            <summary>
            Gets the test data context builder for the test parameter.
            </summary>
        </member>
        <member name="P:Gallio.Framework.Pattern.ITestParameterBuilder.TestParameterActions">
            <summary>
            Gets the set of actions that describe the behavior of the test parameter.
            </summary>
        </member>
        <member name="P:Gallio.Framework.Pattern.ITestParameterBuilder.Binder">
            <summary>
            Gets or sets the data binder for the parameter.
            </summary>
            <remarks>
            <para>
            The default value is a <see cref="T:Gallio.Framework.Data.ScalarDataBinder"/> bound to the anonymous
            data source using a <see cref="T:Gallio.Framework.Data.DataBinding"/> whose path is the name of this parameter and whose
            index is the implicit index computed by the pararameter's data context.
            </para>
            </remarks>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.Pattern.DefaultTestParameterBuilder.#ctor(Gallio.Framework.Pattern.ITestModelBuilder,Gallio.Framework.Pattern.PatternTestParameter)">
            <summary>
            Creates a test parameter builder.
            </summary>
            <param name="testModelBuilder">The test model builder.</param>
            <param name="testParameter">The underlying test parameter.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="testModelBuilder"/>
            or <paramref name="testParameter"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.Pattern.DefaultTestParameterBuilder.ToTestParameter">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Pattern.DefaultTestParameterBuilder.GetTestComponent">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Framework.Pattern.DefaultTestParameterBuilder.TestDataContextBuilder">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Framework.Pattern.DefaultTestParameterBuilder.TestParameterActions">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Framework.Pattern.DefaultTestParameterBuilder.Binder">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Framework.Pattern.DeferredComponentPopulator">
            <summary>
            Populates components lazily.
            </summary>
            <remarks>
            <para>
            A populator function takes one parameter to specify a hint for the particular
            code element whose patterns should be processed to generate components.  If the hint
            is null or unrecognized then the populator should proceed to generate all remaining
            components.
            </para>
            </remarks>
            <param name="codeElementHint">The code element hint to identify the location of the
            particular components to populate, or null to populate them all.</param>
        </member>
        <member name="T:Gallio.Framework.Pattern.IPatternTestParameterHandler">
            <summary>
            A pattern test parameter handler provides the logic that implements the various
            phases of the test parameter binding lifecycle.
            </summary>
            <remarks>
            <para>
            Each method represents the behavior to be performed during a particular phase.
            Different actions are permitted during each phase.  Consult the
            documentation the appropriate method of this interface for restrictions.
            </para>
            <para>
            The phases generally run in the following order.  Some phases may be skipped
            due to exceptions or if there is no work to be done.
            <list type="bullet">
            <item>-- for each test instance --</item>
            <item><see cref="M:Gallio.Framework.Pattern.IPatternTestParameterHandler.BindTestParameter(Gallio.Framework.Pattern.PatternTestInstanceState,System.Object)"/></item>
            <item><see cref="M:Gallio.Framework.Pattern.IPatternTestParameterHandler.UnbindTestParameter(Gallio.Framework.Pattern.PatternTestInstanceState,System.Object)"/></item>
            <item>-- end --</item>
            </list>
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Framework.Pattern.IPatternTestParameterHandler.BindTestParameter(Gallio.Framework.Pattern.PatternTestInstanceState,System.Object)">
            <summary>
            Binds a value to a test parameter.
            </summary>
            <remarks>
            <para>
            The following actions are typically performed during this phase:
            <list type="bullet">
            <item>Associated a value with a slot on the test fixture or test method.</item>
            <item>Storing the object for later use during the test run.</item>
            </list>
            </para>
            <para>
            The following actions are forbidden during this phase because they would
            either go unnoticed or have undesirable side-effects upon test execution:
            <list type="bullet">
            <item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTest"/> object in any way.</item>
            <item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTestState"/> object in any way.</item>
            </list>
            </para>
            </remarks>
            <param name="testInstanceState">The test instance state, never null.</param>
            <param name="value">The value to bind to the parameter.</param>
        </member>
        <member name="M:Gallio.Framework.Pattern.IPatternTestParameterHandler.UnbindTestParameter(Gallio.Framework.Pattern.PatternTestInstanceState,System.Object)">
            <summary>
            Unbinds a test parameter.
            </summary>
            <remarks>
            <para>
            The following actions are typically performed during this phase:
            <list type="bullet">
            <item>Releasing any resources used by the test parameter.</item>
            </list>
            </para>
            <para>
            The following actions are forbidden during this phase because they would
            either go unnoticed or have undesirable side-effects upon test execution:
            <list type="bullet">
            <item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTest"/> object in any way.</item>
            <item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTestState"/> object in any way.</item>
            </list>
            </para>
            </remarks>
            <param name="testInstanceState">The test instance state, never null.</param>
            <param name="value">The value that was bound to the test parameter.</param>
        </member>
        <member name="T:Gallio.Framework.Pattern.IPatternEvaluator">
            <summary>
            A pattern evaluator maintains state that is needed to interpret patterns.  
            </summary>
            <remarks>
            <para>
            It is used by the <see cref="T:Gallio.Framework.Pattern.PatternTestDriver"/> to populate a <see cref="T:Gallio.Model.Tree.TestModel"/>
            during test enumeration.
            </para>
            </remarks>
            <seealso cref="T:Gallio.Framework.Pattern.PatternTestFramework"/>
        </member>
        <member name="M:Gallio.Framework.Pattern.IPatternEvaluator.RegisterScope(Gallio.Framework.Pattern.IPatternScope)">
            <summary>
            Registers the scope so that it can be resolved later by <see cref="M:Gallio.Framework.Pattern.IPatternEvaluator.GetScopes(Gallio.Common.Reflection.ICodeElementInfo)"/>.
            </summary>
            <param name="scope">The scope.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="scope"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.Pattern.IPatternEvaluator.GetScopes(Gallio.Common.Reflection.ICodeElementInfo)">
            <summary>
            Finds scopes that are associated with the specified <see cref="T:Gallio.Common.Reflection.ICodeElementInfo"/>
            and returns an enumeration of their <see cref="T:Gallio.Framework.Pattern.IPatternScope"/> objects.
            </summary>
            <param name="codeElement">The code element.</param>
            <returns>The enumeration of scopes.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="codeElement"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.Pattern.IPatternEvaluator.GetDeclaredTests(Gallio.Common.Reflection.ICodeElementInfo)">
            <summary>
            Finds tests that are declared by the specified <see cref="T:Gallio.Common.Reflection.ICodeElementInfo"/>.
            </summary>
            <param name="codeElement">The code element.</param>
            <returns>The enumeration of tests.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="codeElement"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.Pattern.IPatternEvaluator.GetTestParts(Gallio.Common.Reflection.ICodeElementInfo,Gallio.Framework.Pattern.IPattern)">
            <summary>
            Gets the test parts represented by a code element.
            </summary>
            <remarks>
            <para>
            If an exception occurs while enumerating the pattern attributes,
            this method returns an empty array.
            </para>
            </remarks>
            <param name="codeElement">The code element.</param>
            <param name="defaultPrimaryPattern">The default primary pattern to use, if none can be resolved
            for the code element.  May be null if none.</param>
            <returns>The test parts, or an empty array if none.</returns>
            <seealso cref="M:Gallio.Framework.Pattern.IPattern.GetTestParts(Gallio.Framework.Pattern.IPatternEvaluator,Gallio.Common.Reflection.ICodeElementInfo)"/>
        </member>
        <member name="M:Gallio.Framework.Pattern.IPatternEvaluator.Consume(Gallio.Framework.Pattern.IPatternScope,Gallio.Common.Reflection.ICodeElementInfo,System.Boolean,Gallio.Framework.Pattern.IPattern)">
            <summary>
            Consumes the specified code element.
            </summary>
            <remarks>
            <para>
            Any exceptions thrown by a pattern are caught and manifested as annotations
            associated with the code element.  <seealso cref="T:Gallio.Framework.Pattern.PatternUsageErrorException"/>
            </para>
            </remarks>
            <param name="containingScope">The containing scope.</param>
            <param name="codeElement">The code element to consume.</param>
            <param name="skipChildren">If true, instructs the primary pattern to defer populating child tests.</param>
            <param name="defaultPrimaryPattern">The default primary pattern to use, if none can be resolved
            for the code element.  May be null if none.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="containingScope"/>
            or <paramref name="codeElement"/> is null.</exception>
            <seealso cref="M:Gallio.Framework.Pattern.IPattern.Consume(Gallio.Framework.Pattern.IPatternScope,Gallio.Common.Reflection.ICodeElementInfo,System.Boolean)"/>
        </member>
        <member name="M:Gallio.Framework.Pattern.IPatternEvaluator.Process(Gallio.Framework.Pattern.IPatternScope,Gallio.Common.Reflection.ICodeElementInfo)">
            <summary>
            Processes the specified code element.
            </summary>
            <remarks>
            <para>
            Any exceptions thrown by a pattern are caught and manifested as annotations
            associated with the code element.  <seealso cref="T:Gallio.Framework.Pattern.PatternUsageErrorException"/>
            </para>
            </remarks>
            <param name="scope">The scope.</param>
            <param name="codeElement">The code element to process.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="codeElement"/> is null.</exception>
            <seealso cref="M:Gallio.Framework.Pattern.IPattern.Process(Gallio.Framework.Pattern.IPatternScope,Gallio.Common.Reflection.ICodeElementInfo)"/>
        </member>
        <member name="M:Gallio.Framework.Pattern.IPatternEvaluator.HasPatterns(Gallio.Common.Reflection.ICodeElementInfo)">
            <summary>
            Returns true if a code element has one or more associated patterns.
            </summary>
            <param name="codeElement">The code element.</param>
            <returns>True if the code element has an associated pattern.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="codeElement"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.Pattern.IPatternEvaluator.GetPatterns(Gallio.Common.Reflection.ICodeElementInfo)">
            <summary>
            Gets all patterns associated with a code element.
            </summary>
            <param name="codeElement">The code element.</param>
            <returns>The enumeration of patterns, or null if none.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="codeElement"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.Pattern.IPatternEvaluator.GetPrimaryPattern(Gallio.Common.Reflection.ICodeElementInfo)">
            <summary>
            Gets the primary pattern associated with a code element, or null if none.
            </summary>
            <param name="codeElement">The code element.</param>
            <returns>The primary pattern, or null if none.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="codeElement"/> is null.</exception>
            <exception cref="T:Gallio.Framework.Pattern.PatternUsageErrorException">Thrown if there are multiple primary patterns associated with the code element.</exception>
        </member>
        <member name="P:Gallio.Framework.Pattern.IPatternEvaluator.TestModelBuilder">
            <summary>
            Gets the builder for the test model under construction.
            </summary>
        </member>
        <member name="P:Gallio.Framework.Pattern.IPatternEvaluator.RootScope">
            <summary>
            Gets the scope of the root test.
            </summary>
            <returns>The root scope.</returns>
        </member>
        <member name="T:Gallio.Framework.Pattern.IPatternScope">
            <summary>
            A pattern scope describes the environment in which the pattern is being evaluated.
            </summary>
            <remarks>
            <para>
            A pattern is always evaluated in some scope which determines its ultimate effect
            on declarations of tests, test parameters and test data contexts.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Framework.Pattern.IPatternScope.CreateScope(Gallio.Common.Reflection.ICodeElementInfo,Gallio.Framework.Pattern.ITestBuilder,Gallio.Framework.Pattern.ITestParameterBuilder,Gallio.Framework.Pattern.ITestDataContextBuilder,System.Boolean)">
            <summary>
            Creates and registers a scope for a test component.
            </summary>
            <param name="codeElement">The code element to associate with the scope.</param>
            <param name="testBuilder">The test builder.</param>
            <param name="testParameterBuilder">The test parameter builder, or null if the scope
            is to be associated to the test only.</param>
            <param name="testDataContextBuilder">The test data context builder.</param>
            <param name="isDeclaration">If true, the scope represents the point of declaration
            of the test component with which it is associated.</param>
            <returns>The new scope.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="codeElement"/>,
            <paramref name="testBuilder"/>, <paramref name="testParameterBuilder"/>
            or <paramref name="testDataContextBuilder"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.Pattern.IPatternScope.CreateChildTestScope(System.String,Gallio.Common.Reflection.ICodeElementInfo)">
            <summary>
            Creates a child test with its own child data context derived from the
            builders of this scope.  Returns the scope of the newly created child test.
            </summary>
            <param name="name">The test name.</param>
            <param name="codeElement">The associated code element, or null if none.</param>
            <returns>The scope of the newly created child test.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="name"/> is null.</exception>
            <exception cref="T:Gallio.Framework.Pattern.PatternUsageErrorException">Thrown if <see cref="P:Gallio.Framework.Pattern.IPatternScope.CanAddChildTest"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.Pattern.IPatternScope.CreateTestParameterScope(System.String,Gallio.Common.Reflection.ICodeElementInfo)">
            <summary>
            Creates a test parameter for the test in scope with its own
            child data context derived from the builders of this scope.  Returns
            the scope of the newly created test parameter.
            </summary>
            <param name="name">The test parameter name.</param>
            <param name="codeElement">The associated code element, or null if none.</param>
            <returns>The scope of the newly created test parameter.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="name"/> is null.</exception>
            <exception cref="T:Gallio.Framework.Pattern.PatternUsageErrorException">Thrown if <see cref="P:Gallio.Framework.Pattern.IPatternScope.CanAddTestParameter"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.Pattern.IPatternScope.CreateChildTestDataContextScope(Gallio.Common.Reflection.ICodeElementInfo)">
            <summary>
            Creates a child test data context derived from the builders of this scope.
            Returns the scope of the newly created child test data context.
            </summary>
            <param name="codeElement">The associated code element, or null if none.</param>
            <returns>The scope of the newly created child test data context.</returns>
        </member>
        <member name="M:Gallio.Framework.Pattern.IPatternScope.AddDeferredComponentPopulator(Gallio.Framework.Pattern.DeferredComponentPopulator)">
            <summary>
            Adds an action to the scope that enables a pattern to lazily populate the test model
            with components generated in nested scopes.  This is used when
            <see cref="M:Gallio.Framework.Pattern.IPattern.Consume(Gallio.Framework.Pattern.IPatternScope,Gallio.Common.Reflection.ICodeElementInfo,System.Boolean)"/> is called with the option to skip children.
            </summary>
            <param name="populator">A <see cref="T:Gallio.Framework.Pattern.DeferredComponentPopulator"/> supplied by the pattern to populate
            its components lazily.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="populator"/> is null.</exception>
            <seealso cref="M:Gallio.Framework.Pattern.IPatternScope.PopulateDeferredComponents(Gallio.Common.Reflection.ICodeElementInfo)"/>
        </member>
        <member name="M:Gallio.Framework.Pattern.IPatternScope.PopulateDeferredComponents(Gallio.Common.Reflection.ICodeElementInfo)">
            <summary>
            Asks all registered deferred component populators to build components whose
            construction had previously been deferred.
            </summary>
            <param name="codeElementHint">The code element hint to identify the location of the
            particular components to populate, or null to populate them all.</param>
            <seealso cref="M:Gallio.Framework.Pattern.IPatternScope.AddDeferredComponentPopulator(Gallio.Framework.Pattern.DeferredComponentPopulator)"/>
        </member>
        <member name="M:Gallio.Framework.Pattern.IPatternScope.Consume(Gallio.Common.Reflection.ICodeElementInfo,System.Boolean,Gallio.Framework.Pattern.IPattern)">
            <summary>
            Consumes the specified code element using this scope as the containing scope.
            </summary>
            <remarks>
            <para>
            This is a convenience method that calls <see cref="M:Gallio.Framework.Pattern.IPatternEvaluator.Consume(Gallio.Framework.Pattern.IPatternScope,Gallio.Common.Reflection.ICodeElementInfo,System.Boolean,Gallio.Framework.Pattern.IPattern)"/>.
            </para>
            </remarks>
            <param name="codeElement">The code element to consume.</param>
            <param name="skipChildren">If true, instructs the primary pattern to defer populating child tests.</param>
            <param name="defaultPrimaryPattern">The default primary pattern to use, if none can be resolved
            for the code element.  May be null if none.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="codeElement"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.Pattern.IPatternScope.Process(Gallio.Common.Reflection.ICodeElementInfo)">
            <summary>
            Processes the specified code element using this scope as the current scope.
            </summary>
            <remarks>
            <para>
            This is a convenience method that calls <see cref="M:Gallio.Framework.Pattern.IPatternEvaluator.Process(Gallio.Framework.Pattern.IPatternScope,Gallio.Common.Reflection.ICodeElementInfo)"/>.
            </para>
            </remarks>
            <param name="codeElement">The code element to process.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="codeElement"/> is null.</exception>
        </member>
        <member name="P:Gallio.Framework.Pattern.IPatternScope.Evaluator">
            <summary>
            Gets the pattern evaluator.
            </summary>
        </member>
        <member name="P:Gallio.Framework.Pattern.IPatternScope.CodeElement">
            <summary>
            Gets the code element associated with the scope, or null if none.
            </summary>
        </member>
        <member name="P:Gallio.Framework.Pattern.IPatternScope.IsTestDeclaration">
            <summary>
            Returns true if the scope represents a test declaration.
            </summary>
            <remarks>
            <para>
            An arbitrary scope nested within a test declaration scope is not itself considered a
            test declaration scope unless it also represents a test declaration.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Framework.Pattern.IPatternScope.IsTestParameterDeclaration">
            <summary>
            Returns true if the scope represents a test parameter declaration.
            </summary>
            <remarks>
            <para>
            An arbitrary scope nested within a test parameter declaration scope is not itself considered a
            test parameter declaration scope unless it also represents a test parameter declaration.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Framework.Pattern.IPatternScope.CanAddChildTest">
            <summary>
            Returns true if a child test can be added to the test within scope.
            </summary>
        </member>
        <member name="P:Gallio.Framework.Pattern.IPatternScope.CanAddTestParameter">
            <summary>
            Returns true if a test parameter can be added to the test within scope.
            </summary>
        </member>
        <member name="P:Gallio.Framework.Pattern.IPatternScope.TestBuilder">
            <summary>
            Gets a builder for applying contributions to the test currently being
            constructed within this scope.  Never null.
            </summary>
        </member>
        <member name="P:Gallio.Framework.Pattern.IPatternScope.TestParameterBuilder">
            <summary>
            Gets a builder for applying contributions to the test parameter currently being
            constructed within this scope, if there is one, or null if there is no
            test parameter in scope.
            </summary>
        </member>
        <member name="P:Gallio.Framework.Pattern.IPatternScope.TestComponentBuilder">
            <summary>
            Gets a builder for applying contributions to the test component currently being
            constructed within this scope.
            </summary>
            <remarks>
            <para>
            The component may be a test or a test parameter.  It will never be null.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Framework.Pattern.IPatternScope.TestDataContextBuilder">
            <summary>
            Gets a builder for applying contributions to the current test data context within the scope.
            </summary>
            <remarks>
            <para>
            A test data context is essentially a lexically scoped environment for the declaration of
            data sources used by parameterized tests.
            </para>
            <para>
            Typically a new data context will be introduced at the point of declaration of a test
            or test parameter, but it may also be introduced by other lexical scopes.  For example,
            a test fixture constructor may declare a new test data context which provides data sources
            that can be used for data binding by the constructor's parameters (but are not visible
            to any other part of the fixture).
            </para>
            <para>
            Since there is always a test component in scope, the test data context builder can never be null.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Framework.Pattern.IPatternScope.TestModelBuilder">
            <summary>
            Gets a builder for applying contributions to the test model.
            </summary>
        </member>
        <member name="T:Gallio.Framework.Pattern.TestAssemblyExecutionParameters">
            <summary>
            Configures runtime parameters while executing tests within a test assembly.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Pattern.TestAssemblyExecutionParameters.Reset">
            <summary>
            Resets the globals to default values.
            </summary>
        </member>
        <member name="P:Gallio.Framework.Pattern.TestAssemblyExecutionParameters.DegreeOfParallelism">
            <summary>
            Specifies the maximum number of concurrent threads to use when tests are run in parallel.
            </summary>
            <value>The degree of parallelism.  Defaults to <see cref="P:System.Environment.ProcessorCount"/> or 2, whichever is greater.</value>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="value"/> is less than 1.</exception>
        </member>
        <member name="P:Gallio.Framework.Pattern.TestAssemblyExecutionParameters.DefaultTestCaseTimeout">
            <summary>
            Specifies the default test case timeout or null if none.
            </summary>
            <value>The default timeout for test cases or null if none.  Defaults to 10 minutes.</value>
        </member>
        <member name="T:Gallio.Framework.Pattern.PatternTestParameterActions">
            <summary>
            <para>
            An implementation of <see cref="T:Gallio.Framework.Pattern.IPatternTestParameterHandler"/> based on
            actions that can be sequenced and composed as chains.
            </para>
            </summary>
            <seealso cref="T:Gallio.Framework.Pattern.IPatternTestParameterHandler"/> for documentation about the behaviors themselves.
        </member>
        <member name="M:Gallio.Framework.Pattern.PatternTestParameterActions.#ctor">
            <summary>
            Creates a test parameter actions object initially configured with empty action chains
            that do nothing.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Pattern.PatternTestParameterActions.BindTestParameter(Gallio.Framework.Pattern.PatternTestInstanceState,System.Object)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Pattern.PatternTestParameterActions.UnbindTestParameter(Gallio.Framework.Pattern.PatternTestInstanceState,System.Object)">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Framework.Pattern.PatternTestParameterActions.BindTestParameterChain">
            <summary>
            Gets the chain of <see cref="M:Gallio.Framework.Pattern.IPatternTestParameterHandler.BindTestParameter(Gallio.Framework.Pattern.PatternTestInstanceState,System.Object)"/> actions.
            </summary>
            <seealso cref="M:Gallio.Framework.Pattern.IPatternTestParameterHandler.BindTestParameter(Gallio.Framework.Pattern.PatternTestInstanceState,System.Object)"/> for details about the semantics of these actions.
        </member>
        <member name="P:Gallio.Framework.Pattern.PatternTestParameterActions.UnbindTestParameterChain">
            <summary>
            Gets the chain of <see cref="M:Gallio.Framework.Pattern.IPatternTestParameterHandler.UnbindTestParameter(Gallio.Framework.Pattern.PatternTestInstanceState,System.Object)"/> actions.
            </summary>
            <seealso cref="M:Gallio.Framework.Pattern.IPatternTestParameterHandler.UnbindTestParameter(Gallio.Framework.Pattern.PatternTestInstanceState,System.Object)"/> for details about the semantics of these actions.
        </member>
        <member name="T:Gallio.Common.FuncChain`2">
            <summary>
            A function chain captures a sequence of actions to be performed as
            part of a complex multi-part process.
            </summary>
            <typeparam name="T">The function argument type.</typeparam>
            <typeparam name="TResult">The function result type.</typeparam>
        </member>
        <member name="M:Gallio.Common.FuncChain`2.#ctor(Gallio.Common.Func{`0,`1})">
            <summary>
            Creates a function chain.
            </summary>
            <param name="func">The initial function.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="func"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.FuncChain`2.Around(Gallio.Common.FuncDecorator{`0,`1})">
            <summary>
            Registers a function decorator to perform around all other actions
            currently in the chain.  The contained part of the chain
            is passed in as a function to the decorator that the decorator
            can choose to run (or not) as needed.
            </summary>
            <remarks>
            <para>
            The value of <see cref="P:Gallio.Common.FuncChain`2.Func"/> will be set to a new instance
            that performs the specified <paramref name="decorator"/> around
            the current <see cref="P:Gallio.Common.FuncChain`2.Func"/>.
            </para>
            </remarks>
            <param name="decorator">The decorator to register.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="decorator"/> is null.</exception>
        </member>
        <member name="P:Gallio.Common.FuncChain`2.Func">
            <summary>
            Gets or sets a representation of the chain as a single function.
            </summary>
            <remarks>
            <para>
            The function is progressively augmented as new contributions are
            registered <see cref="M:Gallio.Common.FuncChain`2.Around(Gallio.Common.FuncDecorator{`0,`1})"/>.  By default the action is whatever was
            passed into the constructor.
            </para>
            </remarks>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="T:Gallio.Common.FuncDecorator`2">
            <summary>
            Represents a delegate that decorates a function.
            </summary>
            <typeparam name="T">The type of object the function is performed upon.</typeparam>
            <typeparam name="TResult">The type of the function result.</typeparam>
            <param name="obj">The object to act upon.</param>
            <param name="func">The function to decorate which should be called in
            the middle of applying the decoration.</param>
        </member>
        <member name="T:Gallio.Framework.Assertions.AssertionContext">
            <summary>
            Describes the context in which an assertion is being evaluated.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Assertions.AssertionContext.SubmitFailure(Gallio.Framework.Assertions.AssertionFailure)">
            <summary>
            Submits an assertion failure.
            </summary>
            <remarks>
            <para>
            The behavior of this method depends upon the current setting of
            <see cref="P:Gallio.Framework.Assertions.AssertionContext.AssertionFailureBehavior"/>.  Typically this method will
            throw an <see cref="T:Gallio.Framework.Assertions.AssertionFailureException"/> but it might do
            other things.  Do not assume that it will throw an exception!
            </para>
            </remarks>
            <param name="failure">The assertion failure.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="failure"/>
            is null.</exception>
        </member>
        <member name="M:Gallio.Framework.Assertions.AssertionContext.CaptureFailures(Gallio.Common.Action,Gallio.Framework.Assertions.AssertionFailureBehavior,System.Boolean)">
            <summary>
            Performs an action and returns an array containing the assertion failures
            that were observed within the block.
            </summary>
            <remarks>
            <para>
            If the action throws an exception it is reported as an assertion failure
            unless the exception is a <see cref="T:Gallio.Framework.TestException"/> (except <see cref="T:Gallio.Framework.Assertions.AssertionFailureException"/>)
            in which case the exception is rethrown by this method.  This behavior enables special
            test exceptions such as <see cref="T:Gallio.Framework.TestTerminatedException"/> to be used to terminate
            the test at any point instead of being reported as assertion failures.
            </para>
            <para>
            The set of failures captured will depend on the setting of <paramref name="assertionFailureBehavior"/>.
            <list type="bullet">
            <item>If set to <see cref="F:Gallio.Framework.Assertions.AssertionFailureBehavior.LogAndThrow"/> or 
            <see cref="F:Gallio.Framework.Assertions.AssertionFailureBehavior.Throw"/>, then only
            the first failure will be captured since execution will be immediately aborted when it happens.</item>
            <item>If set to <see cref="F:Gallio.Framework.Assertions.AssertionFailureBehavior.Log"/> or
            <see cref="F:Gallio.Framework.Assertions.AssertionFailureBehavior.CaptureAndContinue"/>, then all
            failures will be captured until the block terminates or throws an exception for some other reason.</item>
            <item>If set to <see cref="F:Gallio.Framework.Assertions.AssertionFailureBehavior.Discard"/>, then no failures
            will be captured since they will all be ignored!</item>
            </list>
            </para>
            </remarks>
            <param name="action">The action to invoke.</param>
            <param name="assertionFailureBehavior">The assertion failure behavior to use while
            executing the block.</param>
            <param name="captureExceptionAsAssertionFailure">Specifies whether to represent an exception
            as an assertion failure, otherwise it is rethrown.</param>
            <returns>The array of failures, may be empty if none.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="action"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.Assertions.AssertionContext.GetPendingFailures">
            <summary>
            Gets the pending failures within the current assertion scope.
            </summary>
            <returns>The pending failures, or an empty array if none.</returns>
        </member>
        <member name="P:Gallio.Framework.Assertions.AssertionContext.CurrentContext">
            <summary>
            Gets the current assertion context, or null if there is no current context.
            </summary>
        </member>
        <member name="P:Gallio.Framework.Assertions.AssertionContext.TestContext">
            <summary>
            Gets the associated test context.
            </summary>
        </member>
        <member name="P:Gallio.Framework.Assertions.AssertionContext.AssertionFailureBehavior">
            <summary>
            Gets the current assertion failure behavior.
            </summary>
            <remarks>
            <para>
            The value of this property may change during invocations of <see cref="M:Gallio.Framework.Assertions.AssertionContext.CaptureFailures(Gallio.Common.Action,Gallio.Framework.Assertions.AssertionFailureBehavior,System.Boolean)"/>.
            </para>
            </remarks>
        </member>
        <member name="T:Gallio.Framework.Assertions.AssertionException">
            <summary>
            The exception type used by the Gallio assertion framework to signal assertion failures.
            </summary>
        </member>
        <member name="T:Gallio.Framework.TestFailedException">
            <summary>
            This exception type is used to signal that a test has failed to satisfy
            some predetermined condition established by the test author.
            </summary>
            <remarks>
            <para>
            For example, an assertion failure may be signaled using a <see cref="T:Gallio.Framework.TestFailedException"/>
            to distinguish it from other application or runtime errors that a test might encounter
            at runtime.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Framework.TestFailedException.#ctor">
            <summary>
            Creates an exception.
            </summary>
        </member>
        <member name="M:Gallio.Framework.TestFailedException.#ctor(System.String)">
            <summary>
            Creates an exception.
            </summary>
            <param name="message">The message.</param>
        </member>
        <member name="M:Gallio.Framework.TestFailedException.#ctor(System.String,System.Exception)">
            <summary>
            Creates an exception.
            </summary>
            <param name="message">The message.</param>
            <param name="innerException">The inner exception.</param>
        </member>
        <member name="M:Gallio.Framework.TestFailedException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Creates an exception from serialization info.
            </summary>
            <param name="info">The serialization info.</param>
            <param name="context">The streaming context.</param>
        </member>
        <member name="P:Gallio.Framework.TestFailedException.Outcome">
            <summary>
            Returns <see cref="P:Gallio.Model.TestOutcome.Failed"/>.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Assertions.AssertionException.#ctor">
            <summary>
            Creates an exception.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Assertions.AssertionException.#ctor(System.String)">
            <summary>
            Creates an exception.
            </summary>
            <param name="message">The message.</param>
        </member>
        <member name="M:Gallio.Framework.Assertions.AssertionException.#ctor(System.String,System.Exception)">
            <summary>
            Creates an exception.
            </summary>
            <param name="message">The message.</param>
            <param name="innerException">The inner exception.</param>
        </member>
        <member name="M:Gallio.Framework.Assertions.AssertionException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Creates an exception from serialization info.
            </summary>
            <param name="info">The serialization info.</param>
            <param name="context">The streaming context.</param>
        </member>
        <member name="T:Gallio.Framework.Assertions.AssertionFailure">
            <summary>
            An assertion failure is an immutable description of a failed assertion and its
            cause.  It takes into account information about labeled values such as the expected
            and actual value.
            </summary>
            <remarks>
            <para>
            Use an <see cref="T:Gallio.Framework.Assertions.AssertionFailureBuilder"/> to generate an instance of this type.
            </para>
            </remarks>
            <seealso cref="T:Gallio.Framework.Assertions.AssertionFailureBuilder"/>
        </member>
        <member name="F:Gallio.Framework.Assertions.AssertionFailure.MaxLabelLengthBeforeTruncation">
            <summary>
            Gets the maximum length of label that can be presented before truncation occurs.
            </summary>
            <value>100</value>
        </member>
        <member name="F:Gallio.Framework.Assertions.AssertionFailure.MaxFormattedValueLength">
            <summary>
            Gets the maximum length of formatted value that can be presented before truncation occurs.
            </summary>
            <value>2000</value>
        </member>
        <member name="M:Gallio.Framework.Assertions.AssertionFailure.#ctor(System.String,System.String,Gallio.Common.Diagnostics.StackTraceData,System.Collections.Generic.IList{Gallio.Framework.Assertions.AssertionFailure.LabeledValue},System.Collections.Generic.IList{Gallio.Common.Diagnostics.ExceptionData},System.Collections.Generic.IList{Gallio.Framework.Assertions.AssertionFailure})">
            <summary>
            Creates an assertion failure object.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Assertions.AssertionFailure.WriteTo(Gallio.Common.Markup.MarkupStreamWriter)">
            <summary>
            Writes the assertion failure to a test log stream.
            </summary>
            <param name="writer">The test log stream.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="writer"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.Assertions.AssertionFailure.ToString">
            <summary>
            Formats the failure as a string.
            </summary>
            <returns>The formatted string.</returns>
        </member>
        <member name="M:Gallio.Framework.Assertions.AssertionFailure.WriteDetails(Gallio.Common.Markup.MarkupStreamWriter)">
            <summary>
            Writes the details about the assertion failure to the structured text writer.
            </summary>
            <param name="writer">The structured text writer, not null.</param>
        </member>
        <member name="P:Gallio.Framework.Assertions.AssertionFailure.Description">
            <summary>
            Gets the description of the assertion failure.
            </summary>
        </member>
        <member name="P:Gallio.Framework.Assertions.AssertionFailure.Message">
            <summary>
            Gets the user-supplied message about the assertion failure,
            or null if none.
            </summary>
        </member>
        <member name="P:Gallio.Framework.Assertions.AssertionFailure.StackTrace">
            <summary>
            Get the stack track of the failure, or null if none.
            </summary>
        </member>
        <member name="P:Gallio.Framework.Assertions.AssertionFailure.LabeledValues">
            <summary>
            Gets formatted representations of labeled values as key/value pairs.
            </summary>
        </member>
        <member name="P:Gallio.Framework.Assertions.AssertionFailure.Exceptions">
            <summary>
            Gets information about the exceptions.
            </summary>
        </member>
        <member name="P:Gallio.Framework.Assertions.AssertionFailure.InnerFailures">
            <summary>
            Gets the nested assertion failures that contributed to the composite assertion
            failure described by this instance.
            </summary>
        </member>
        <member name="T:Gallio.Framework.Assertions.AssertionFailure.LabeledValue">
            <summary>
            A labeled value describes a named assertion parameter.
            </summary>
            <remarks>
            <para>
            The label indicates the purpose of the value, such as "Expected Value".
            The value itself should be formatted to emphasize structural characteristics.
            </para>
            <para>
            For additional emphasis, such as for comparison purposes (ie. diffs), the value may
            be formatted as structured text to include highlights and other markup.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Framework.Assertions.AssertionFailure.LabeledValue.#ctor(System.String,System.String)">
            <summary>
            Creates a labeled value with plain text.
            </summary>
            <param name="label">The label.</param>
            <param name="formattedValue">The formatted value as plain text.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="label"/> or
            <paramref name="formattedValue"/> is null.</exception>
            <exception cref="T:System.ArgumentException">Thrown if <paramref name="label"/> is empty.</exception>
        </member>
        <member name="M:Gallio.Framework.Assertions.AssertionFailure.LabeledValue.#ctor(System.String,Gallio.Common.Markup.StructuredText)">
            <summary>
            Creates a labeled value with structured text.
            </summary>
            <param name="label">The label.</param>
            <param name="formattedValue">The formatted value as structured text.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="label"/> or
            <paramref name="formattedValue"/> is null.</exception>
            <exception cref="T:System.ArgumentException">Thrown if <paramref name="label"/> is empty.</exception>
        </member>
        <member name="M:Gallio.Framework.Assertions.AssertionFailure.LabeledValue.ToString">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Framework.Assertions.AssertionFailure.LabeledValue.Label">
            <summary>
            Gets the label.
            </summary>
        </member>
        <member name="P:Gallio.Framework.Assertions.AssertionFailure.LabeledValue.FormattedValue">
            <summary>
            Gets the formatted value as structured text.
            </summary>
        </member>
        <member name="T:Gallio.Framework.Assertions.AssertionFailureBehavior">
            <summary>
            Specifies the behavior that should take place when a <see cref="T:Gallio.Framework.Assertions.AssertionFailure"/>
            is submitted to the <see cref="T:Gallio.Framework.Assertions.AssertionContext"/>.
            </summary>
            <remarks>
            <para>
            There are three orthogonal dimensions to the assertion failure behavior:
            <list type="bullet">
            <item><see cref="F:Gallio.Framework.Assertions.AssertionFailureBehavior.Log"/> / No-<see cref="F:Gallio.Framework.Assertions.AssertionFailureBehavior.Log"/>: Log the failure when reported, or do not log it.</item>
            <item><see cref="F:Gallio.Framework.Assertions.AssertionFailureBehavior.Throw"/> / No-<see cref="F:Gallio.Framework.Assertions.AssertionFailureBehavior.Throw"/>: Throw an exception to abort computation, or allow it to continue</item>
            <item><see cref="F:Gallio.Framework.Assertions.AssertionFailureBehavior.Discard"/> / No-<see cref="F:Gallio.Framework.Assertions.AssertionFailureBehavior.Discard"/> (aka. <see cref="F:Gallio.Framework.Assertions.AssertionFailureBehavior.CaptureAndContinue"/>): Discard the failure when finished reporting it, or capture it in a list for further processing</item>
            </list>
            </para>
            </remarks>
        </member>
        <member name="F:Gallio.Framework.Assertions.AssertionFailureBehavior.Log">
            <summary>
            When an assertion failure is reported, capture it in a list, log it, and allow
            the computation to continue.
            </summary>
            <value>1</value>
        </member>
        <member name="F:Gallio.Framework.Assertions.AssertionFailureBehavior.Throw">
            <summary>
            When an assertion failure is reported, capture it in a list, then throw an
            <see cref="T:Gallio.Framework.Assertions.AssertionFailureException"/> to immediately abort the current computation.
            </summary>
            <value>2</value>
        </member>
        <member name="F:Gallio.Framework.Assertions.AssertionFailureBehavior.LogAndThrow">
            <summary>
            When an assertion failure is reported, capture it in a list, log it, then throw an
            <see cref="T:Gallio.Framework.Assertions.AssertionFailureException"/> to immediately abort the current computation.
            </summary>
            <remarks>
            <para>
            This is the default behavior for assertion contexts.
            </para>
            </remarks>
            <value>3</value>
        </member>
        <member name="F:Gallio.Framework.Assertions.AssertionFailureBehavior.Discard">
            <summary>
            When an assertion failure is reported, discard it (instead of capturing it in a list)
            and allow the current computation to continue.
            </summary>
            <value>4</value>
        </member>
        <member name="F:Gallio.Framework.Assertions.AssertionFailureBehavior.CaptureAndContinue">
            <summary>
            When an assertion failure is reported, capture it in a list and allow the current
            computation to continue.
            </summary>
            <remarks>
            <para>
            This is the opposite of <see cref="F:Gallio.Framework.Assertions.AssertionFailureBehavior.Discard"/>, and is an alias for the case where none
            of the other flags are specified.
            </para>
            </remarks>
            <value>0</value>
        </member>
        <member name="T:Gallio.Framework.Assertions.AssertionFailureBuilder">
            <summary>
            An assertion failure builder is used to construct a complete description
            of an assertion failure that has occurred.  It takes into account information about
            the expected and actual value, as well as additional labeled values and exceptions.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Assertions.AssertionFailureBuilder.#ctor(System.String)">
            <summary>
            Creates an assertion failure builder with the default formatter.
            </summary>
            <param name="description">The description of the failure.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="description"/>
            is null.</exception>
        </member>
        <member name="M:Gallio.Framework.Assertions.AssertionFailureBuilder.#ctor(System.String,Gallio.Runtime.Formatting.IFormatter)">
            <summary>
            Creates an assertion failure builder with the specified formatter.
            </summary>
            <param name="description">The description of the failure.</param>
            <param name="formatter">The formatter to use.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="description"/> or
            <paramref name="formatter"/>  is null.</exception>
        </member>
        <member name="M:Gallio.Framework.Assertions.AssertionFailureBuilder.SetMessage(System.String)">
            <summary>
            Sets the user-supplied assertion failure message.
            </summary>
            <param name="message">The user-supplied assertion failure message, or null if none.</param>
            <returns>The builder, to allow for fluent method chaining.</returns>
        </member>
        <member name="M:Gallio.Framework.Assertions.AssertionFailureBuilder.SetMessage(System.String,System.Object[])">
            <summary>
            Sets the user-supplied assertion failure message to a formatted value.
            </summary>
            <param name="messageFormat">The user-supplied assertion failure message format
            string, or null if none.</param>
            <param name="messageArgs">The format arguments, or null or empty if none.</param>
            <returns>The builder, to allow for fluent method chaining.</returns>
        </member>
        <member name="M:Gallio.Framework.Assertions.AssertionFailureBuilder.SetStackTrace(Gallio.Common.Diagnostics.StackTraceData)">
            <summary>
            Sets the stack trace.
            </summary>
            <param name="stackTrace">The stack trace, or null if none.</param>
            <returns>The builder, to allow for fluent method chaining.</returns>
        </member>
        <member name="M:Gallio.Framework.Assertions.AssertionFailureBuilder.AddRawExpectedValue(System.Object)">
            <summary>
            Adds the raw expected value to be formatted using <see cref="P:Gallio.Framework.Assertions.AssertionFailureBuilder.Formatter"/>.
            </summary>
            <remarks>
            <para>
            The order in which this method is called determines the order in which this
            value will appear relative to other labeled values.
            </para>
            <para>
            This is a convenience method for setting a labeled value called "Expected Value".
            </para>
            </remarks>
            <param name="expectedValue">The expected value.</param>
            <returns>The builder, to allow for fluent method chaining.</returns>
        </member>
        <member name="M:Gallio.Framework.Assertions.AssertionFailureBuilder.AddRawActualValue(System.Object)">
            <summary>
            Adds the raw actual value to be formatted using <see cref="P:Gallio.Framework.Assertions.AssertionFailureBuilder.Formatter"/>.
            </summary>
            <remarks>
            <para>
            The order in which this method is called determines the order in which this
            value will appear relative to other labeled values.
            </para>
            <para>
            This is a convenience method for setting a labeled value called "Actual Value".
            </para>
            </remarks>
            <param name="actualValue">The actual value.</param>
            <returns>The builder, to allow for fluent method chaining.</returns>
        </member>
        <member name="M:Gallio.Framework.Assertions.AssertionFailureBuilder.AddRawExpectedAndActualValuesWithDiffs(System.Object,System.Object)">
            <summary>
            Adds the raw expected and actual values to be formatted using <see cref="P:Gallio.Framework.Assertions.AssertionFailureBuilder.Formatter"/>
            and includes formatting of their differences.
            </summary>
            <remarks>
            <para>
            The order in which this method is called determines the order in which the
            values will appear relative to other labeled values.
            </para>
            <para>
            This is a convenience method for setting a pair of labeled values called "Expected Value"
            and "Actual Value" with diffs.
            </para>
            </remarks>
            <param name="expectedValue">The expected value.</param>
            <param name="actualValue">The actual value.</param>
            <returns>The builder, to allow for fluent method chaining.</returns>
        </member>
        <member name="M:Gallio.Framework.Assertions.AssertionFailureBuilder.AddRawLabeledValuesWithDiffs(System.String,System.Object,System.String,System.Object)">
            <summary>
            Adds two raw labeled values formatted using <see cref="P:Gallio.Framework.Assertions.AssertionFailureBuilder.Formatter"/> and includes
            formatting of their differences.
            </summary>
            <remarks>
            <para>
            The order in which this method is called determines the order in which the
            values will appear relative to other labeled values.
            </para>
            </remarks>
            <param name="leftLabel">The left label.</param>
            <param name="leftValue">The left value.</param>
            <param name="rightLabel">The right label.</param>
            <param name="rightValue">The right value.</param>
            <returns>The builder, to allow for fluent method chaining.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="leftLabel"/> or
            <paramref name="rightLabel"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.Assertions.AssertionFailureBuilder.AddRawLabeledValue(System.String,System.Object)">
            <summary>
            Adds a raw labeled value to be formatted using <see cref="P:Gallio.Framework.Assertions.AssertionFailureBuilder.Formatter"/>.
            </summary>
            <remarks>
            <para>
            The order in which this method is called determines the order in which this
            labeled value will appear relative to other labeled values.
            </para>
            </remarks>
            <param name="label">The label.</param>
            <param name="value">The raw unformatted value.</param>
            <returns>The builder, to allow for fluent method chaining.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="label"/> is null.</exception>
            <exception cref="T:System.ArgumentException">Thrown if <paramref name="label"/> is empty.</exception>
        </member>
        <member name="M:Gallio.Framework.Assertions.AssertionFailureBuilder.AddLabeledValue(System.String,System.String)">
            <summary>
            Adds a labeled value as plain text.
            </summary>
            <remarks>
            <para>
            The order in which this method is called determines the order in which this
            labeled value will appear relative to other labeled values.
            </para>
            </remarks>
            <param name="label">The label.</param>
            <param name="formattedValue">The formatted value.</param>
            <returns>The builder, to allow for fluent method chaining.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="label"/> or <paramref name="formattedValue"/> is null.</exception>
            <exception cref="T:System.ArgumentException">Thrown if <paramref name="label"/> is empty.</exception>
        </member>
        <member name="M:Gallio.Framework.Assertions.AssertionFailureBuilder.AddLabeledValue(System.String,Gallio.Common.Markup.StructuredText)">
            <summary>
            Adds a labeled value as structured text.
            </summary>
            <remarks>
            <para>
            The order in which this method is called determines the order in which this
            labeled value will appear relative to other labeled values.
            </para>
            </remarks>
            <param name="label">The label.</param>
            <param name="formattedValue">The formatted value as structured text.</param>
            <returns>The builder, to allow for fluent method chaining.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="label"/> or <paramref name="formattedValue"/> is null.</exception>
            <exception cref="T:System.ArgumentException">Thrown if <paramref name="label"/> is empty.</exception>
        </member>
        <member name="M:Gallio.Framework.Assertions.AssertionFailureBuilder.AddLabeledValue(Gallio.Framework.Assertions.AssertionFailure.LabeledValue)">
            <summary>
            Adds a labeled value.
            </summary>
            <remarks>
            <para>
            The order in which this method is called determines the order in which this
            value will appear relative to other labeled values.
            </para>
            </remarks>
            <param name="labeledValue">The labeled value.</param>
            <returns>The builder, to allow for fluent method chaining.</returns>
        </member>
        <member name="M:Gallio.Framework.Assertions.AssertionFailureBuilder.AddException(System.Exception)">
            <summary>
            Adds an exception to the assertion failure.
            </summary>
            <param name="ex">The exception to add.</param>
            <returns>The builder, to allow for fluent method chaining.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="ex"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.Assertions.AssertionFailureBuilder.AddException(Gallio.Common.Diagnostics.ExceptionData)">
            <summary>
            Adds an exception to the assertion failure.
            </summary>
            <param name="ex">The exception data to add.</param>
            <returns>The builder, to allow for fluent method chaining.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="ex"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.Assertions.AssertionFailureBuilder.AddInnerFailure(Gallio.Framework.Assertions.AssertionFailure)">
            <summary>
            Adds a nested assertion failure that contributed to the composite assertion failure
            described by this instance.
            </summary>
            <param name="innerFailure">The inner assertion failure to add.</param>
            <returns>The builder, to allow for fluent method chaining.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="innerFailure"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.Assertions.AssertionFailureBuilder.AddInnerFailures(System.Collections.Generic.IEnumerable{Gallio.Framework.Assertions.AssertionFailure})">
            <summary>
            Adds an enumeration of nested assertion failures that contributed to the composite
            assertion failure described by this instance.
            </summary>
            <param name="innerFailures">The enumeration of inner assertion failures to add.</param>
            <returns>The builder, to allow for fluent method chaining.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="innerFailures"/> is null or
            contains a null.</exception>
        </member>
        <member name="M:Gallio.Framework.Assertions.AssertionFailureBuilder.If(System.Boolean,System.Action{Gallio.Framework.Assertions.AssertionFailureBuilder})">
            <summary>
            Executes an action on the assertion failure builder if the specified condition is true.
            </summary>
            <param name="condition">The condition to evaluate.</param>
            <param name="build">The build action to execute if the condition is true.</param>
            <returns>The builder, to allow for fluent method chaining.</returns>
        </member>
        <member name="M:Gallio.Framework.Assertions.AssertionFailureBuilder.ToAssertionFailure">
            <summary>
            Generates an immutable object that describes the failure.
            </summary>
            <returns>The assertion failure.</returns>
        </member>
        <member name="M:Gallio.Framework.Assertions.AssertionFailureBuilder.CreateAssertionFailure(System.String,System.String,Gallio.Common.Diagnostics.StackTraceData,System.Collections.Generic.IList{Gallio.Framework.Assertions.AssertionFailure.LabeledValue},System.Collections.Generic.IList{Gallio.Common.Diagnostics.ExceptionData},System.Collections.Generic.IList{Gallio.Framework.Assertions.AssertionFailure})">
            <summary>
            Creates an assertion failure object.
            </summary>
            <remarks>
            <para>
            Subclasses may override this method to define custom extended assertion
            failure objects.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Framework.Assertions.AssertionFailureBuilder.Formatter">
            <summary>
            Gets the formatted used by the builder.
            </summary>
        </member>
        <member name="T:Gallio.Framework.Assertions.AssertionFailureException">
            <summary>
            An exception type that wraps a <see cref="T:Gallio.Framework.Assertions.AssertionFailure"/>.
            </summary>
            <remarks>
            <para>
            This exception is used in two ways:
            <list type="bullet">
            <item>The exception may be "silent" when it is used to cause a test to terminate due to
            an assertion failure that has already been logged or otherwise conveyed to the user.</item>
            <item>Otherwise the exception will be reported the user in the typical manner.</item>
            </list>
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Framework.Assertions.AssertionFailureException.#ctor(Gallio.Framework.Assertions.AssertionFailure,System.Boolean)">
            <summary>
            Creates an exception for a given assertion failure.
            </summary>
            <param name="failure">The assertion failure.</param>
            <param name="silent">True if the assertion failure exception should not be logged because
            the information it contains has already been conveyed to the user.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="failure"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.Assertions.AssertionFailureException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Creates an exception from serialization info.
            </summary>
            <param name="info">The serialization info.</param>
            <param name="context">The streaming context.</param>
        </member>
        <member name="M:Gallio.Framework.Assertions.AssertionFailureException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Framework.Assertions.AssertionFailureException.Failure">
            <summary>
            Gets the associated assertion failure, never null.
            </summary>
        </member>
        <member name="P:Gallio.Framework.Assertions.AssertionFailureException.IsSilent">
            <summary>
            Returns <c>true</c> if the assertion failure exception should not be logged because
            the information it contains has already been conveyed to the user.
            </summary>
        </member>
        <member name="P:Gallio.Framework.Assertions.AssertionFailureException.Message">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Framework.Assertions.AssertionFailureException.ExcludeStackTrace">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Framework.Assertions.AssertionHelper">
            <summary>
            Provides utilities to assist with the implementation of new asserts.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Assertions.AssertionHelper.Verify(Gallio.Common.Func{Gallio.Framework.Assertions.AssertionFailure})">
            <summary>
            Verifies that an assertion succeeded.
            </summary>
            <remarks>
            <para>
            The assertion function should return null to indicate that the assertion has passed
            or <see cref="T:Gallio.Framework.Assertions.AssertionFailure"/> to indicate that it has failed.
            </para>
            <para>
            If the assertion function throws an exception it is reported as an assertion failure
            unless the exception is a <see cref="T:Gallio.Framework.TestException"/> (except <see cref="T:Gallio.Framework.Assertions.AssertionFailureException"/>)
            in which case the exception is rethrown by this method.  This behavior enables special
            test exceptions such as <see cref="T:Gallio.Framework.TestTerminatedException"/> to be used to terminate
            the test at any point instead of being reported as assertion failures.
            </para>
            <para>
            When an assertion failure is detected, it is submitted to <see cref="M:Gallio.Framework.Assertions.AssertionContext.SubmitFailure(Gallio.Framework.Assertions.AssertionFailure)"/>
            which may choose to throw a <see cref="T:Gallio.Framework.Assertions.AssertionFailureException"/> or do something else.
            </para>
            <para>
            Using this method enables the system to track statistics about assertions
            and to ensure that assertion failures are reported uniformly.
            </para>
            <para>
            It is important to note that not all failures will result in a <see cref="T:Gallio.Framework.Assertions.AssertionFailureException"/>
            being thrown.  Refer to <see cref="M:Gallio.Framework.Assertions.AssertionContext.SubmitFailure(Gallio.Framework.Assertions.AssertionFailure)"/> for details.
            </para>
            </remarks>
            <param name="assertionFunc">The assertion function to evaluate.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="assertionFunc"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.Assertions.AssertionHelper.Fail(Gallio.Framework.Assertions.AssertionFailure)">
            <summary>
            Submits a failure if the assertion failure object is non-null.
            </summary>
            <param name="failure">Failure to be submited, or null if none.</param>
        </member>
        <member name="M:Gallio.Framework.Assertions.AssertionHelper.Eval(Gallio.Common.Action)">
            <summary>
            Performs an action and returns an array containing the assertion failures
            that were observed within the block.  If the block throws an exception, it
            is reified as an assertion failure.
            </summary>
            <remarks>
            <para>
            If the action throws an exception it is reported as an assertion failure
            unless the exception is a <see cref="T:Gallio.Framework.TestException"/> (except <see cref="T:Gallio.Framework.Assertions.AssertionFailureException"/>)
            in which case the exception is rethrown by this method.  This behavior enables special
            test exceptions such as <see cref="T:Gallio.Framework.TestTerminatedException"/> to be used to terminate
            the test at any point instead of being reported as assertion failures.
            </para>
            <para>
            The assertion failure behavior while the action runs is <see cref="F:Gallio.Framework.Assertions.AssertionFailureBehavior.Throw"/>
            so the action terminates on the first failure.  The assertion failure itself is returned
            but it is not logged.
            </para>
            <para>
            This method is very useful for composing assertions because it enables assertions to be
            evaluated, and, when they fail, the failure can be recorded as an inner assertion failure
            of some larger composite assertion.  For example, this makes it possible to create an assertion
            over a collection of items by composing an assertion over a single item.
            </para>
            </remarks>
            <param name="action">The action to invoke.</param>
            <returns>The array of failures, may be empty if none.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="action"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.Assertions.AssertionHelper.Eval(Gallio.Common.Action,Gallio.Framework.Assertions.AssertionFailureBehavior)">
            <summary>
            Performs an action and returns an array containing the assertion failures
            that were observed within the block.
            </summary>
            <remarks>
            <para>
            If the action throws an exception it is reported as an assertion failure
            unless the exception is a <see cref="T:Gallio.Framework.TestException"/> (except <see cref="T:Gallio.Framework.Assertions.AssertionFailureException"/>)
            in which case the exception is rethrown by this method.  This behavior enables special
            test exceptions such as <see cref="T:Gallio.Framework.TestTerminatedException"/> to be used to terminate
            the test at any point instead of being reported as assertion failures.
            </para>
            </remarks>
            <param name="action">The action to invoke.</param>
            <param name="assertionFailureBehavior">The assertion failure behavior to use while the action runs.</param>
            <returns>The array of failures, may be empty if none.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="action"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Thrown if there is no current assertion context.</exception>
        </member>
        <member name="M:Gallio.Framework.Assertions.AssertionHelper.Explain(Gallio.Common.Action,Gallio.Framework.Assertions.AssertionFailureExplanation)">
            <summary>
            Performs an action and combines the possible assertion failures
            that were observed within the block, into a single outer failure with
            a common explanation.
            </summary>
            <param name="action">The action to invoke.</param>
            <param name="explanation">A function that takes an array of inner failures and
            returns a single outer failure with a common explanation.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="action"/> is null.</exception>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="explanation"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.Assertions.AssertionHelper.Explain(Gallio.Common.Action,Gallio.Framework.Assertions.AssertionFailureBehavior,Gallio.Framework.Assertions.AssertionFailureExplanation)">
            <summary>
            Performs an action and combines the possible assertion failures
            that were observed within the block, into a single outer failure with
            a common explanation.
            </summary>
            <param name="action">The action to invoke.</param>
            <param name="assertionFailureBehavior">The assertion failure behavior to use while the action runs.</param>
            <param name="explanation">A function that takes an array of inner failures and
            returns a single outer failure with a common explanation.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="action"/> is null.</exception>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="explanation"/> is null.</exception>
        </member>
        <member name="T:Gallio.Framework.Data.BaseDataBinder">
            <summary>
            Abstract base class for <see cref="T:Gallio.Framework.Data.IDataBinder"/> that validates
            input arguments before passing them on to the implementation.
            </summary>
        </member>
        <member name="T:Gallio.Framework.Data.IDataBinder">
            <summary>
            A data binder specifies how to produce values that are suitable for data binding
            in some context.
            </summary>
            <remarks>
            <para>
            The typical <see cref="T:Gallio.Framework.Data.IDataBinder"/> lifecycle is as follows:
            <list type="bullet">
            <item>First, a <see cref="T:Gallio.Framework.Data.DataBindingContext"/> is created.</item>
            <item>Next the client calls <see cref="M:Gallio.Framework.Data.IDataBinder.Register(Gallio.Framework.Data.DataBindingContext,Gallio.Framework.Data.IDataSourceResolver)"/> for each
            <see cref="T:Gallio.Framework.Data.IDataBinder"/>, supplying the <see cref="T:Gallio.Framework.Data.DataBindingContext"/>
            and a <see cref="T:Gallio.Framework.Data.IDataSourceResolver"/> for resolving data sources.</item>
            <item>Then the client calls <see cref="M:Gallio.Framework.Data.DataBindingContext.GetItems(System.Boolean)"/> and
            begins enumerating over the items.</item>
            <item>For each item, the client calls <see cref="M:Gallio.Framework.Data.IDataAccessor.GetValue(Gallio.Framework.Data.IDataItem)"/>
            using the <see cref="T:Gallio.Framework.Data.IDataAccessor"/> produced by the <see cref="T:Gallio.Framework.Data.IDataBinder"/>s
            to obtain the bound values.</item>
            <item>When finished with an item, the client disposes it.</item>
            </list>
            </para>
            <para>
            The lifecycle may also be explained in terms of three phases from the perspective
            of a <see cref="T:Gallio.Framework.Data.IDataBinder"/>.
            <list type="bullet">
            <item>
            <strong>Prebinding</strong> : The <see cref="M:Gallio.Framework.Data.IDataBinder.Register(Gallio.Framework.Data.DataBindingContext,Gallio.Framework.Data.IDataSourceResolver)"/> method is called to register
            interest in particular <see cref="T:Gallio.Framework.Data.IDataSet"/>s with the <see cref="T:Gallio.Framework.Data.DataBindingContext"/>.
            </item>
            <item>
            <strong>Binding</strong> : The <see cref="M:Gallio.Framework.Data.IDataAccessor.GetValue(Gallio.Framework.Data.IDataItem)"/> method is called to obtain
            bound values from a <see cref="T:Gallio.Framework.Data.IDataItem"/>.
            </item>
            <item>
            <strong>Unbinding</strong> : The <see cref="T:Gallio.Framework.Data.IDataItem"/>'s <see cref="M:System.IDisposable.Dispose"/> method
            is called to release resources used by the bound values.
            </item>
            </list>
            </para>
            <para>
            Several data binders may be composed to generate complex values that
            are produced using contributions from other data binders.  For example,
            a simple data binder might select a single value from a data source and
            convert it to the right time.  A composite data binder may then use the
            values produced by several of these simple data binders to initialize
            the fields of a composite object.  Thus a composite data binder facilitates
            the production of relatively complex object graphs that are generated from
            primitive data binding units.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Framework.Data.IDataBinder.Register(Gallio.Framework.Data.DataBindingContext,Gallio.Framework.Data.IDataSourceResolver)">
            <summary>
            Registers the <see cref="T:Gallio.Framework.Data.IDataBinder"/>'s requests to query particular
            <see cref="T:Gallio.Framework.Data.IDataSet"/>s with the <see cref="T:Gallio.Framework.Data.DataBindingContext"/>.
            </summary>
            <param name="context">The data binding context.</param>
            <param name="resolver">The data source resolver.</param>
            <returns>The data binding accessor to use for obtaining bound values
            from <see cref="T:Gallio.Framework.Data.IDataItem"/>s produced by the <see cref="T:Gallio.Framework.Data.DataBindingContext"/>.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="context"/> or <paramref name="resolver"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.Data.BaseDataBinder.Register(Gallio.Framework.Data.DataBindingContext,Gallio.Framework.Data.IDataSourceResolver)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Data.BaseDataBinder.RegisterImpl(Gallio.Framework.Data.DataBindingContext,Gallio.Framework.Data.IDataSourceResolver)">
            <summary>
            Implementation of <see cref="M:Gallio.Framework.Data.BaseDataBinder.Register(Gallio.Framework.Data.DataBindingContext,Gallio.Framework.Data.IDataSourceResolver)"/>.
            </summary>
            <param name="context">The data binding context, not null.</param>
            <param name="resolver">The data source resolver, not null.</param>
            <returns>The data binding accessor.</returns>
        </member>
        <member name="T:Gallio.Framework.Data.BaseDataAccessor">
            <summary>
            A base implementation of <see cref="T:Gallio.Framework.Data.IDataAccessor"/> that
            performs argument validation.
            </summary>
        </member>
        <member name="T:Gallio.Framework.Data.IDataAccessor">
            <summary>
            A data accessor extracts a value from a <see cref="T:Gallio.Framework.Data.IDataItem"/>.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Data.IDataAccessor.GetValue(Gallio.Framework.Data.IDataItem)">
            <summary>
            Gets a value derived from the <see cref="T:Gallio.Framework.Data.IDataItem"/>.
            </summary>
            <param name="item">The data item.</param>
            <returns>The value.</returns>
            <exception cref="T:Gallio.Framework.Data.DataBindingException">Thrown if the data binding fails.</exception>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="item"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.Data.BaseDataAccessor.GetValue(Gallio.Framework.Data.IDataItem)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Data.BaseDataAccessor.GetValueImpl(Gallio.Framework.Data.IDataItem)">
            <summary>
            Internal implementation of <see cref="M:Gallio.Framework.Data.BaseDataAccessor.GetValue(Gallio.Framework.Data.IDataItem)"/> after argument
            validation has been performed.
            </summary>
            <param name="item">The data item, not null.</param>
            <returns>The value.</returns>
            <exception cref="T:Gallio.Framework.Data.DataBindingException">Thrown if the data binding fails.</exception>
        </member>
        <member name="T:Gallio.Framework.Data.ConstantDataAccessor">
            <summary>
            An implementation of <see cref="T:Gallio.Framework.Data.IDataAccessor"/> that
            returns a constant value, ignoring the data item it is passed.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Data.ConstantDataAccessor.#ctor(System.Object)">
            <summary>
            Creates a data accessor that returns a specified constant value.
            </summary>
            <param name="value">The constant value to be returned by <see cref="M:Gallio.Framework.Data.IDataAccessor.GetValue(Gallio.Framework.Data.IDataItem)"/>.</param>
        </member>
        <member name="M:Gallio.Framework.Data.ConstantDataAccessor.GetValueImpl(Gallio.Framework.Data.IDataItem)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Framework.Data.DataBindingContext">
            <summary>
            A <see cref="T:Gallio.Framework.Data.DataBindingContext"/> tracks a list of <see cref="T:Gallio.Framework.Data.IDataSet"/>s and
            <see cref="T:Gallio.Framework.Data.DataBinding"/>s that are used to produce <see cref="T:Gallio.Framework.Data.IDataItem"/>s.
            </summary>
            <remarks>
            <para>
            In typical usage, a <see cref="T:Gallio.Framework.Data.IDataBinder"/> registers interest in obtaining
            data from a particular <see cref="T:Gallio.Framework.Data.IDataSet"/> by providing a corresponding <see cref="T:Gallio.Framework.Data.DataBinding"/>.
            The <see cref="T:Gallio.Framework.Data.DataBindingContext"/> then adds the requested <see cref="T:Gallio.Framework.Data.IDataSet"/>
            to its <see cref="P:Gallio.Framework.Data.DataBindingContext.DataSets"/> list and returns a <see cref="T:Gallio.Framework.Data.IDataAccessor"/>.
            When <see cref="M:Gallio.Framework.Data.DataBindingContext.GetItems(System.Boolean)"/> is called, the <see cref="T:Gallio.Framework.Data.DataBindingContext"/> produces
            an enumeration of <see cref="T:Gallio.Framework.Data.IDataItem"/>.  Data-bound values can then
            be obtained from the <see cref="T:Gallio.Framework.Data.IDataItem"/> via the <see cref="M:Gallio.Framework.Data.IDataAccessor.GetValue(Gallio.Framework.Data.IDataItem)"/>
            method of each accessor.
            </para>
            </remarks>
            <seealso cref="T:Gallio.Framework.Data.IDataBinder"/>
        </member>
        <member name="M:Gallio.Framework.Data.DataBindingContext.#ctor(Gallio.Runtime.Conversions.IConverter)">
            <summary>
            Creates a data binding context.
            </summary>
            <param name="converter">The converter.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="converter"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.Data.DataBindingContext.RegisterBinding(Gallio.Framework.Data.IDataSet,Gallio.Framework.Data.DataBinding)">
            <summary>
            Registers a data binding for a given data set and adds the data set
            to the list of data sets to be enumerated during data binding.
            Returns a <see cref="T:Gallio.Framework.Data.IDataAccessor"/> that may be used to 
            retrieve the values associated with the binding.
            </summary>
            <remarks>
            <para>
            A <see cref="T:Gallio.Framework.Data.IDataBinder"/> uses this method to register interest
            in querying a particular <see cref="T:Gallio.Framework.Data.IDataSet"/>.  It must do so
            before <see cref="M:Gallio.Framework.Data.DataBindingContext.GetItems(System.Boolean)"/> is called to ensure that the <see cref="T:Gallio.Framework.Data.IDataSet"/>
            is included in the enumeration.
            </para>
            </remarks>
            <param name="dataSet">The data set.</param>
            <param name="binding">The data binding.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="dataSet"/> or <paramref name="binding"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.Data.DataBindingContext.GetItems(System.Boolean)">
            <summary>
            Gets an enumeration of <see cref="T:Gallio.Framework.Data.IDataItem"/>s.
            </summary>
            <remarks>
            <para>
            The contents of each item may be inspected using a <see cref="T:Gallio.Framework.Data.IDataAccessor"/>
            as returned by <see cref="M:Gallio.Framework.Data.DataBindingContext.RegisterBinding(Gallio.Framework.Data.IDataSet,Gallio.Framework.Data.DataBinding)"/>.  When the client is finished with
            an item, it should dispose it by calling the <see cref="M:System.IDisposable.Dispose"/>
            method of the <see cref="T:Gallio.Framework.Data.IDataItem"/>.
            </para>
            <para>
            A client typically registers its <see cref="T:Gallio.Framework.Data.IDataBinder"/>s with the
            <see cref="T:Gallio.Framework.Data.DataBindingContext"/> then enters a loop to enumerate the items.
            For each item, the client will call <see cref="M:Gallio.Framework.Data.IDataAccessor.GetValue(Gallio.Framework.Data.IDataItem)"/>
            to retrieve the values of interest.  When it is finished with an item, it
            disposes it and proceeds on to the next one or stops.  In this manner, a
            client may apply multiple <see cref="T:Gallio.Framework.Data.IDataBinder"/>s within the same
            <see cref="T:Gallio.Framework.Data.DataBindingContext"/>.
            </para>
            <para>
            If no data bindings have been registered (<see cref="P:Gallio.Framework.Data.DataBindingContext.HasBindings"/> is false),
            this method returns exactly one data item consisting of a <see cref="T:Gallio.Framework.Data.NullDataItem"/>.
            </para>
            </remarks>
            <param name="includeDynamicItems">If true, includes items that may be dynamically
            generated in the result set.  Otherwise excludes such items and only returns
            those that are statically known a priori.</param>
            <returns>The enumeration of data items.</returns>
        </member>
        <member name="P:Gallio.Framework.Data.DataBindingContext.Converter">
            <summary>
            Gets the converter service.
            </summary>
            <remarks>
            <para>
            The data binding context does not use the converter itself, but it may be
            used by data binders to perform any required internal conversions.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Framework.Data.DataBindingContext.HasBindings">
            <summary>
            Returns true if the data binding context contains registered data bindings.
            </summary>
            <remarks>
            <para>
            If the context contains no data bindings then by definition it also contains
            no data sets.  In the absence of bindings, <see cref="M:Gallio.Framework.Data.DataBindingContext.GetItems(System.Boolean)"/> will produce
            exactly one <see cref="T:Gallio.Framework.Data.IDataItem"/> (a <see cref="T:Gallio.Framework.Data.NullDataItem"/>) and no data
            binding work will actually need to be performed by the client.  Consequently a
            client may choose to treat this situation as a special case and may adopt a different
            (possibly simpler) algorithm in response.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Framework.Data.DataBindingContext.DataSets">
            <summary>
            Gets the immutable list of data sets to be enumerated during data binding.
            </summary>
            <remarks>
            <para>
            These are the <see cref="T:Gallio.Framework.Data.IDataSet"/>s from which the raw data for binding will
            be retrieved.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Framework.Data.DataBindingContext.Strategy">
            <summary>
            Gets or sets the <see cref="T:Gallio.Framework.Data.IJoinStrategy"/> to use for combining the
            <see cref="P:Gallio.Framework.Data.DataBindingContext.DataSets"/> together.
            By default the strategy is <see cref="T:Gallio.Framework.Data.CombinatorialJoinStrategy"/>.
            </summary>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="T:Gallio.Framework.Data.DataRow">
            <summary>
            A data row is a simple immutable value type that encpasulates an
            array of values along with associated metadata for use in data binding expressions.
            It presents a fluent interface that users may find more convenient than
            other <see cref="T:Gallio.Framework.Data.IDataItem"/> implementations.
            </summary>
            <remarks>
            <para>
            The data in a <see cref="T:Gallio.Framework.Data.DataRow"/> is always considered dynamic.
            </para>
            </remarks>
        </member>
        <member name="T:Gallio.Framework.Data.BaseDataItem">
            <summary>
            Abstract base class for data items.
            </summary>
        </member>
        <member name="T:Gallio.Framework.Data.IDataItem">
            <summary>
            A data item is an opaque representation of a collection of values
            and metadata that may be retrieved using data bindings that encode
            the appropriate lookup rules into the item.
            </summary>
            <remarks>
            <para>
            Data items may have very different forms:
            <list type="bullet">
            <item>Scalar-like items: Items that always yield a single value, possibly a constant</item>
            <item>Row-like items: Items that yield several values in response to index-based
            data bindings or named column paths</item>
            <item>Structured items: Items that yield values by binding to paths within the item
            or by resolving custom data binding expressions</item>
            </list>
            </para>
            </remarks>
            <seealso cref="T:Gallio.Framework.Data.IDataAccessor"/>
        </member>
        <member name="M:Gallio.Framework.Data.IDataItem.PopulateMetadata(Gallio.Common.Collections.PropertyBag)">
            <summary>
            Populates the specified metadata map with key/value pairs associated with
            the data item, if any.
            </summary>
            <remarks>
            <para>
            For example, the metadata may contain a description that serves
            as documentation of the contents of the data item or of the test
            scenario that is exercised by the contents of the data item.
            This metadata may be injected into test instances created with
            the contents of this data item.
            </para>
            </remarks>
            <param name="map">The metadata map.</param>
        </member>
        <member name="M:Gallio.Framework.Data.IDataItem.GetValue(Gallio.Framework.Data.DataBinding)">
            <summary>
            Gets the value of the specified binding.
            </summary>
            <param name="binding">The data binding, never null.</param>
            <returns>The value.</returns>
            <exception cref="T:Gallio.Framework.Data.DataBindingException">Thrown if the <paramref name="binding"/>
            cannot be resolved or if its value cannot be obtained.</exception>
        </member>
        <member name="M:Gallio.Framework.Data.IDataItem.GetBindingsForInformalDescription">
            <summary>
            Gets an enumeration of the data bindings that may be queried to informally describe
            its contents.  The enumeration of bindings may not be complete.
            </summary>
            <returns>The enumeration of bindings.</returns>
        </member>
        <member name="P:Gallio.Framework.Data.IDataItem.IsDynamic">
            <summary>
            Returns true if the item contains data that is obtained dynamically from sources
            whose content may change over time or may be expensive to query ahead of time.
            </summary>
            <remarks>
            <para>
            For example, data obtained from a database should be considered dynamic.
            On the other hand, data obtained from declarative metadata defined as part
            of the test should be considered static.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Framework.Data.BaseDataItem.PopulateMetadata(Gallio.Common.Collections.PropertyBag)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Data.BaseDataItem.GetValue(Gallio.Framework.Data.DataBinding)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Data.BaseDataItem.GetBindingsForInformalDescription">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Data.BaseDataItem.GetValueImpl(Gallio.Framework.Data.DataBinding)">
            <summary>
            Implements <see cref="M:Gallio.Framework.Data.BaseDataItem.GetValue(Gallio.Framework.Data.DataBinding)"/>.
            </summary>
            <param name="binding">The binding, never null.</param>
            <returns>The associated value.</returns>
        </member>
        <member name="M:Gallio.Framework.Data.BaseDataItem.PopulateMetadataImpl(Gallio.Common.Collections.PropertyBag)">
            <summary>
            Implements <see cref="M:Gallio.Framework.Data.BaseDataItem.PopulateMetadata(Gallio.Common.Collections.PropertyBag)"/>.
            </summary>
            <param name="map">The metadata map to populate, never null.</param>
        </member>
        <member name="P:Gallio.Framework.Data.BaseDataItem.IsDynamic">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Data.DataRow.#ctor(System.Object[])">
            <summary>
            Creates a data row with the specified array of values.
            </summary>
            <param name="values">The array of values.</param>
        </member>
        <member name="M:Gallio.Framework.Data.DataRow.WithMetadata(System.String,System.String)">
            <summary>
            Returns an augmented data row with added metadata.
            </summary>
            <remarks>
            <para>
            The original data row is not modified.
            </para>
            </remarks>
            <param name="key">The metadata key.</param>
            <param name="value">The metadata value.</param>
            <returns>The augmented data row.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="key"/>
            or <paramref name="value"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.Data.DataRow.WithMetadata(Gallio.Common.Collections.PropertyBag)">
            <summary>
            Returns an augmented data row with added metadata from the
            specified metadata map.
            </summary>
            <remarks>
            <para>
            The original data row is not modified!
            </para>
            </remarks>
            <param name="map">The metadata map.</param>
            <returns>The augmented data row.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="map"/>
            is null.</exception>
        </member>
        <member name="M:Gallio.Framework.Data.DataRow.PopulateMetadataImpl(Gallio.Common.Collections.PropertyBag)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Data.DataRow.GetBindingsForInformalDescription">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Data.DataRow.GetValueImpl(Gallio.Framework.Data.DataBinding)">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Framework.Data.DataRow.IsDynamic">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Framework.Data.DataItemUtils">
            <summary>
            Utilities for <see cref="T:Gallio.Framework.Data.IDataItem"/>.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Data.DataItemUtils.GetMetadata(Gallio.Framework.Data.IDataItem)">
            <summary>
            Gets the metadata associated with a data item.
            </summary>
            <param name="dataItem">The data item.</param>
            <returns>The associated metadata.</returns>
        </member>
        <member name="T:Gallio.Framework.Data.FactoryDataSet">
            <summary>
            A factory data set generates data items by invoking a factory delegate
            and interpreting its output in accordance with the factory kind.
            </summary>
            <remarks>
            <para>
            Multiple different interpretations are supported.  Refer to the documentation
            of the <see cref="T:Gallio.Framework.Data.FactoryKind"/> enumeration for more details about each kind.
            </para>
            </remarks>
        </member>
        <member name="T:Gallio.Framework.Data.BaseDataSet">
            <summary>
            Abstract base class for <see cref="T:Gallio.Framework.Data.IDataSet"/> that validates
            input arguments before passing them on to the implementation.
            </summary>
        </member>
        <member name="T:Gallio.Framework.Data.IDataSet">
            <summary>
            A data set provides data items for data binding and describes whether
            is supports particular bindings.
            </summary>
        </member>
        <member name="T:Gallio.Framework.Data.IDataProvider">
            <summary>
            A data provider generates an enumeration of <see cref="T:Gallio.Framework.Data.IDataItem"/>s
            given a collection of <see cref="T:Gallio.Framework.Data.DataBinding"/>s to satisfy.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Data.IDataProvider.GetItems(System.Collections.Generic.ICollection{Gallio.Framework.Data.DataBinding},System.Boolean)">
            <summary>
            Gets an enumeration of data items that can supply values for a given collection of bindings.
            It should produce items even if some of the requested bindings cannot be fulfilled.
            </summary>
            <param name="bindings">The bindings that are requested.</param>
            <param name="includeDynamicItems">If true, includes items that may be dynamically
            generated in the result set.  Otherwise excludes such items and only returns
            those that are statically known a priori.</param>
            <returns>The enumeration of data items.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="bindings"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.Data.IDataSet.CanBind(Gallio.Framework.Data.DataBinding)">
            <summary>
            Returns true if the data set can provide a value for the specified binding.
            </summary>
            <param name="binding">The binding.</param>
            <returns>True if the data set can provide a value for the binding.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="binding"/> is null.</exception>
        </member>
        <member name="P:Gallio.Framework.Data.IDataSet.ColumnCount">
            <summary>
            Gets the number of columns in an indexed data set.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Data.BaseDataSet.CanBind(Gallio.Framework.Data.DataBinding)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Data.BaseDataSet.GetItems(System.Collections.Generic.ICollection{Gallio.Framework.Data.DataBinding},System.Boolean)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Data.BaseDataSet.CanBindImpl(Gallio.Framework.Data.DataBinding)">
            <summary>
            Determines whether a binding can be satisfied by the data set.
            </summary>
            <param name="binding">The data binding, not null.</param>
            <returns>True if the binding can be satisfied.</returns>
        </member>
        <member name="M:Gallio.Framework.Data.BaseDataSet.GetItemsImpl(System.Collections.Generic.ICollection{Gallio.Framework.Data.DataBinding},System.Boolean)">
            <summary>
            Enumerates the data items in the data set.
            </summary>
            <param name="bindings">The data bindings, not null.</param>
            <param name="includeDynamicItems">If true, includes dynamic items.</param>
            <returns>The enumeration of data items in the combined data set.</returns>
        </member>
        <member name="P:Gallio.Framework.Data.BaseDataSet.ColumnCount">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Data.FactoryDataSet.#ctor(Gallio.Common.Func{System.Collections.IEnumerable},Gallio.Framework.Data.FactoryKind,System.Int32)">
            <summary>
            Creates a factory data set.
            </summary>
            <param name="factory">The factory delegate.</param>
            <param name="factoryKind">The kind of factory.</param>
            <param name="columnCount">The number of columns in the data items produced
            by the factory or 0 if unknown.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="factory"/> is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="factoryKind"/>
            is invalid or if <paramref name="columnCount"/> is less than 0.</exception>
        </member>
        <member name="M:Gallio.Framework.Data.FactoryDataSet.CanBindImpl(Gallio.Framework.Data.DataBinding)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Data.FactoryDataSet.GetItemsImpl(System.Collections.Generic.ICollection{Gallio.Framework.Data.DataBinding},System.Boolean)">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Framework.Data.FactoryDataSet.ColumnCount">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Framework.Data.FactoryKind">
            <summary>
            Specifies the kind of factory member referenced by <see cref="T:Gallio.Framework.Data.FactoryDataSet"/>.
            </summary>
            <remarks>
            <para>
            Each kind of factory expresses its contents by returning enumerations of data sets,
            data items, object arrays and single objects.
            </para>
            <para>
            The kind of a factory may be automatically determined or it may be explicitly
            specified in cases where it may be ambiguous.
            </para>
            </remarks>
        </member>
        <member name="F:Gallio.Framework.Data.FactoryKind.Auto">
            <summary>
            Automatically determines the type of factory based on the type of element
            returned by the enumeration.
            </summary>
            <remarks>
            <para>
            <list type="bullet">
            <item>If the element is a <see cref="T:Gallio.Framework.Data.IDataSet"/> then it is processed in the
            same manner as <see cref="F:Gallio.Framework.Data.FactoryKind.DataSet"/>.</item>
            <item>If the element is a <see cref="T:Gallio.Framework.Data.IDataItem"/> (such as <see cref="F:Gallio.Framework.Data.FactoryKind.DataItem"/>,
            <see cref="T:Gallio.Framework.Data.ScalarDataItem`1"/> or <see cref="T:Gallio.Framework.Data.ListDataItem`1"/>) then it is 
            processed in the same manner as <see cref="F:Gallio.Framework.Data.FactoryKind.DataItem"/>.</item>
            <item>If the element is an array then it is processed in the same manner as
            <see cref="F:Gallio.Framework.Data.FactoryKind.ObjectArray"/>.</item>
            <item>Otherwise the element is process in the same manner as <see cref="F:Gallio.Framework.Data.FactoryKind.Object"/>.</item>
            </list>
            </para>
            <para>
            Refer to the other factory kinds for usage examples.
            </para>
            </remarks>
        </member>
        <member name="F:Gallio.Framework.Data.FactoryKind.DataSet">
            <summary>
            Specifies that the factory returns an enumeration <see cref="T:Gallio.Framework.Data.IDataSet"/>s
            whose items are to be consumed.
            </summary>
            <example>
            <code><![CDATA[
            public IEnumerable<IDataSet> MyFactory
            {
                get
                {
                    yield return new MyCustomDataSet(1);
                    yield return new MyCustomDataSet(2);
                }
            }
            
            [Test, Factory("MyFactory", Kind=FactoryKind.DataSet)]
            public void MyTest(object value)
            {
                // test logic...
            }
            ]]></code>
            </example>
        </member>
        <member name="F:Gallio.Framework.Data.FactoryKind.DataItem">
            <summary>
            Specifies that the factory returns an enumeration of <see cref="T:Gallio.Framework.Data.IDataItem"/>s
            (such as <see cref="T:Gallio.Framework.Data.DataRow"/>, <see cref="T:Gallio.Framework.Data.ScalarDataItem`1"/>, or <see cref="T:Gallio.Framework.Data.ListDataItem`1"/>).
            </summary>
            <example>
            <code><![CDATA[
            public IEnumerable<IDataItem> MyFactory
            {
                get
                {
                    yield return new DataRow(1);
                    yield return new DataRow(42)
                        .WithMetadata(MetadataKeys.ExpectedException, typeof(CustomException).FullName);
                }
            }
            
            [Test, Factory("MyFactory", Kind=FactoryKind.DataItem)]
            public void MyTest(int value)
            {
                // test logic...
            }
            ]]></code>
            </example>
        </member>
        <member name="F:Gallio.Framework.Data.FactoryKind.ObjectArray">
            <summary>
            Specifies that the factory returns an enumeration of object arrays
            that describe successive items.
            </summary>
            <example>
            <code><![CDATA[
            public IEnumerable<object[]> MyFactory
            {
                get
                {
                    yield return new object[] { "abc", 123 };
                    yield return new object[] { "def", 456 };
                }
            }
            
            [Test, Factory("MyFactory", Kind=FactoryKind.ObjectArray)]
            public void MyTest(string value, int count)
            {
                // test logic...
            }
            ]]></code>
            </example>
        </member>
        <member name="F:Gallio.Framework.Data.FactoryKind.Object">
            <summary>
            Specifies that the factory returns an enumeration of single object values.
            </summary>
            <example>
            <code><![CDATA[
            public IEnumerable<string> MyFactory
            {
                get
                {
                    yield return "abc";
                    yield return "def";
                }
            }
            
            [Test, Factory("MyFactory", Kind=FactoryKind.Object)]
            public void MyTest(string value)
            {
                // test logic...
            }
            ]]></code>
            </example>
        </member>
        <member name="T:Gallio.Framework.Data.ObjectDataBinder">
            <summary>
            An object data binder creates objects and binds values to its slots such as
            generic type parameters, constructor parameters, fields and properties.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Data.ObjectDataBinder.#ctor(Gallio.Common.Reflection.ITypeInfo)">
            <summary>
            Creates an object data binder initially without slot binders.
            </summary>
            <param name="type">The type.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="type"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.Data.ObjectDataBinder.SetSlotBinder(Gallio.Common.Reflection.ISlotInfo,Gallio.Framework.Data.IDataBinder)">
            <summary>
            Sets the binder for a slot.
            </summary>
            <param name="slot">The slot.</param>
            <param name="binder">The binder.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="slot"/>
            or <paramref name="binder"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.Data.ObjectDataBinder.RegisterImpl(Gallio.Framework.Data.DataBindingContext,Gallio.Framework.Data.IDataSourceResolver)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Framework.Data.BoundDataAccessor">
            <summary>
            A <see cref="T:Gallio.Framework.Data.IDataAccessor"/> that simply accesses a value contained
            by a data item using a particular <see cref="T:Gallio.Framework.Data.DataBinding"/>.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Data.BoundDataAccessor.#ctor(Gallio.Framework.Data.DataBinding)">
            <summary>
            Creates a bound data accessor.
            </summary>
            <param name="binding">The binding to query.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="binding"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.Data.BoundDataAccessor.GetValueImpl(Gallio.Framework.Data.IDataItem)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Framework.Data.ScalarDataBinder">
            <summary>
            A scalar data binder queries a specified data source with a data binding
            and converts the resulting value to the requested type.
            It does nothing during unbinding.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Data.ScalarDataBinder.#ctor(Gallio.Framework.Data.DataBinding,System.String)">
            <summary>
            Creates a scalar data binder.
            </summary>
            <param name="binding">The data binding.</param>
            <param name="sourceName">The data source name to query, or an empty string if it is anonymous.</param>
        </member>
        <member name="M:Gallio.Framework.Data.ScalarDataBinder.RegisterImpl(Gallio.Framework.Data.DataBindingContext,Gallio.Framework.Data.IDataSourceResolver)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Framework.Data.SimpleDataItem">
            <summary>
            An implementation of <see cref="T:Gallio.Framework.Data.IDataItem"/> that stores the dynamic flag
            and metadata.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Data.SimpleDataItem.#ctor(System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.String}},System.Boolean)">
            <summary>
            Creates a data item.
            </summary>
            <param name="metadataPairs">The metadata key/value pairs for the item, or null if none.</param>
            <param name="isDynamic">True if the item is dynamic.</param>
        </member>
        <member name="M:Gallio.Framework.Data.SimpleDataItem.PopulateMetadataImpl(Gallio.Common.Collections.PropertyBag)">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Framework.Data.SimpleDataItem.IsDynamic">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Framework.DefaultComparisonSemantics">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.DefaultComparisonSemantics.#ctor(Gallio.Runtime.Extensibility.IExtensionPoints)">
            <summary>
            Constructor.
            </summary>
            <param name="extensionPoints"></param>
        </member>
        <member name="M:Gallio.Framework.DefaultComparisonSemantics.Same``1(``0,``0)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.DefaultComparisonSemantics.Equals(System.Object,System.Object)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.DefaultComparisonSemantics.Equals``1(``0,``0)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.DefaultComparisonSemantics.Compare``1(``0,``0)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.DefaultComparisonSemantics.IsSimpleEnumerableType(System.Type)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.DefaultComparisonSemantics.ApproximatelyEqual``2(``0,``0,``1)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.DefaultComparisonSemantics.GetSubtractionFunc``2">
            <summary>
            Gets a function for subtracting values of a given type.
            </summary>
            <typeparam name="TValue">The type of values to be compared.</typeparam>
            <typeparam name="TDifference">The type of the difference produced when the values are
            subtracted, for numeric types this is the same as <typeparamref name="TValue"/> but it
            may differ for other types.</typeparam>
            <returns>The subtraction function.</returns>
            <exception cref="T:System.InvalidOperationException">Thrown if no subtraction function exists
            or if the difference type is incorrect.</exception>
        </member>
        <member name="T:Gallio.Framework.Pattern.ProcessIsolation">
            <summary>
            The process isolation object saves global process-level context
            information when it is created and restores it when it is disposed.
            </summary>
            <remarks>
            <para>
            The following context information is saved and restored:
            <list type="bullet">
            <item>The current working directory</item>
            </list>
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Framework.Pattern.ProcessIsolation.#ctor">
            <summary>
            Saves global process state to be subsequently restored when disposed.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Pattern.ProcessIsolation.Dispose">
            <summary>
            Restores the saved process state.
            </summary>
        </member>
        <member name="T:Gallio.Framework.Pattern.TestAction">
            <summary>
            Performs one primitive action of a test and returns its outcome.
            </summary>
            <returns>The outcome of the action.</returns>
        </member>
        <member name="T:Gallio.Framework.SubtractionFunc`2">
            <summary>
            Subtracts the right value from the left and returns the difference.
            </summary>
            <typeparam name="TValue">The type of values to be compared.</typeparam>
            <typeparam name="TDifference">The type of the difference produced when the values are
            subtracted, for numeric types this is the same as <typeparamref name="TValue"/> but it
            may differ for other types.</typeparam>
            <param name="left">The left value.</param>
            <param name="right">The right value.</param>
            <returns>The difference when the right value is subtracted from the left.</returns>
        </member>
        <member name="T:Gallio.Model.DefaultTestFrameworkManager">
            <summary>
            Default implementation of a test framework manager.
            </summary>
        </member>
        <member name="T:Gallio.Model.ITestFrameworkManager">
            <summary>
            Provides services based on the installed set of test frameworks.
            </summary>
        </member>
        <member name="M:Gallio.Model.ITestFrameworkManager.GetTestDriver(Gallio.Model.TestFrameworkSelector,Gallio.Runtime.Logging.ILogger)">
            <summary>
            Gets an aggregate test driver for selected frameworks.
            </summary>
            <param name="selector">The test framework selector.</param>
            <param name="logger">The logger for the test driver.</param>
            <returns>The test driver.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if 
            <paramref name="selector"/> or <paramref name="logger"/> is null.</exception>
        </member>
        <member name="M:Gallio.Model.ITestFrameworkManager.SelectTestFrameworksForFiles(Gallio.Model.TestFrameworkSelector,System.Collections.Generic.ICollection{System.IO.FileInfo})">
            <summary>
            Selects the test frameworks to use for a collection of files.
            </summary>
            <param name="selector">The test framework selector.</param>
            <param name="files">The test files.</param>
            <returns>The map of test framework selections to their associated test files.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="selector"/>
            or <paramref name="files"/> is null or contains null.</exception>
        </member>
        <member name="M:Gallio.Model.ITestFrameworkManager.SelectTestFrameworksForCodeElements(Gallio.Model.TestFrameworkSelector,System.Collections.Generic.ICollection{Gallio.Common.Reflection.ICodeElementInfo})">
            <summary>
            Selects the test frameworks to use for a collection of code elements.
            </summary>
            <param name="selector">The test framework selector.</param>
            <param name="codeElements">The code elements.</param>
            <returns>The map of test framework selections to their associated code elements.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="selector"/>
            or <paramref name="codeElements"/> is null or contains null.</exception>
        </member>
        <member name="P:Gallio.Model.ITestFrameworkManager.TestFrameworkHandles">
            <summary>
            Gets handles for all registered test frameworks.
            </summary>
        </member>
        <member name="P:Gallio.Model.ITestFrameworkManager.FallbackTestFrameworkHandle">
            <summary>
            Gets the handle of the fallback test framework used when no other
            framework supports a given test file.
            </summary>
        </member>
        <member name="M:Gallio.Model.DefaultTestFrameworkManager.#ctor(Gallio.Runtime.Extensibility.ComponentHandle{Gallio.Model.ITestFramework,Gallio.Model.TestFrameworkTraits}[],Gallio.Runtime.Extensibility.ComponentHandle{Gallio.Model.ITestFramework,Gallio.Model.TestFrameworkTraits},Gallio.Runtime.FileTypes.IFileTypeManager,Gallio.Runtime.Logging.ILogger)">
            <summary>
            Creates a test framework manager.
            </summary>
            <param name="testFrameworkHandles">The test framework handles.</param>
            <param name="fallbackTestFrameworkHandle">The fallback test framework handle.</param>
            <param name="fileTypeManager">The file type manager.</param>
            <param name="logger">The logger.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="testFrameworkHandles"/>, <paramref name="fallbackTestFrameworkHandle"/> or <paramref name="fileTypeManager "/> or <paramref name="logger"/>is null.</exception>
        </member>
        <member name="M:Gallio.Model.DefaultTestFrameworkManager.GetTestDriver(Gallio.Model.TestFrameworkSelector,Gallio.Runtime.Logging.ILogger)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.DefaultTestFrameworkManager.SelectTestFrameworksForFiles(Gallio.Model.TestFrameworkSelector,System.Collections.Generic.ICollection{System.IO.FileInfo})">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.DefaultTestFrameworkManager.SelectTestFrameworksForCodeElements(Gallio.Model.TestFrameworkSelector,System.Collections.Generic.ICollection{Gallio.Common.Reflection.ICodeElementInfo})">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Model.DefaultTestFrameworkManager.TestFrameworkHandles">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Model.DefaultTestFrameworkManager.FallbackTestFrameworkHandle">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Model.Filters.FilterRule`1">
            <summary>
            Specifies an inclusion or exclusion filter rule.
            </summary>
        </member>
        <member name="M:Gallio.Model.Filters.FilterRule`1.#ctor(Gallio.Model.Filters.FilterRuleType,Gallio.Model.Filters.Filter{`0})">
            <summary>
            Creates a filter rule.
            </summary>
            <param name="ruleType">The rule type: inclusion or exclusion.</param>
            <param name="filter">The filter.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="filter"/> is null.</exception>
        </member>
        <member name="P:Gallio.Model.Filters.FilterRule`1.RuleType">
            <summary>
            Gets the filter rule type: inclusion or exclusion.
            </summary>
        </member>
        <member name="P:Gallio.Model.Filters.FilterRule`1.Filter">
            <summary>
            Gets the filter.
            </summary>
        </member>
        <member name="T:Gallio.Model.Filters.FilterRuleType">
            <summary>
            Specifies whether a filter rule is an inclusion or exclusion rule.
            </summary>
            <seealso cref="T:Gallio.Model.Filters.FilterRule`1"/>
        </member>
        <member name="F:Gallio.Model.Filters.FilterRuleType.Inclusion">
            <summary>
            The filter rule is an inclusion rule.
            </summary>
        </member>
        <member name="F:Gallio.Model.Filters.FilterRuleType.Exclusion">
            <summary>
            The filter rule is an exclusion rule.
            </summary>
        </member>
        <member name="T:Gallio.Model.Filters.FilterSet`1">
            <summary>
            A filterset combines zero or more filters as a sequence of inclusion and exclusion rules.
            </summary>
        </member>
        <member name="M:Gallio.Model.Filters.FilterSet`1.#ctor(Gallio.Model.Filters.Filter{`0})">
            <summary>
            Creates a filter set consisting of a single inclusion filter.
            </summary>
            <param name="inclusionFilter">The inclusion filter.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="inclusionFilter"/> is null.</exception>
        </member>
        <member name="M:Gallio.Model.Filters.FilterSet`1.#ctor(System.Collections.Generic.ICollection{Gallio.Model.Filters.FilterRule{`0}})">
            <summary>
            Creates a filter set consisting of a collection of rules.
            </summary>
            <param name="rules">The filter rules.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="rules"/> is null.</exception>
        </member>
        <member name="M:Gallio.Model.Filters.FilterSet`1.Evaluate(`0)">
            <summary>
            Evaluates the rules of this filter set and indicates whether the item is included, excluded
            or not matched by the list of rules.
            </summary>
            <param name="item">The item.</param>
            <returns>The result.</returns>
        </member>
        <member name="M:Gallio.Model.Filters.FilterSet`1.ToFilterSetExpr">
            <summary>
            Formats the filter set to a string suitable for parsing by <see cref="T:Gallio.Model.Filters.FilterParser`1"/>.
            </summary>
            <remarks>
            <para>
            The empty filter is represented by an empty string.
            </para>
            </remarks>
            <returns>The formatted filter set expression.</returns>
        </member>
        <member name="M:Gallio.Model.Filters.FilterSet`1.ToString">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Model.Filters.FilterSet`1.Empty">
            <summary>
            Returns an empty filter set.
            </summary>
            <remarks>
            <para>
            An empty filter set neither includes nor excludes any values on its own.
            However when filtering tests, Gallio applies an implicit inclusion rule when
            none is otherwise specified so the net effect if that all tests will be
            included (although "explicit" tests will not be selected explicitly so they
            will not run).
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Model.Filters.FilterSet`1.Rules">
            <summary>
            Gets the read-only list of filter rules.
            </summary>
        </member>
        <member name="P:Gallio.Model.Filters.FilterSet`1.IsEmpty">
            <summary>
            Returns true if the filter set is empty.
            </summary>
        </member>
        <member name="P:Gallio.Model.Filters.FilterSet`1.HasInclusionRules">
            <summary>
            Returns true if the filter set has at least one inclusion rule.
            </summary>
        </member>
        <member name="T:Gallio.Model.Filters.FilterSetResult">
            <summary>
            Specifies whether a filter set includes, excludes or does not match a particular item.
            </summary>
        </member>
        <member name="F:Gallio.Model.Filters.FilterSetResult.Unmatched">
            <summary>
            The filter set neither includes nor excludes the item.
            </summary>
        </member>
        <member name="F:Gallio.Model.Filters.FilterSetResult.Include">
            <summary>
            The filter set includes the item.
            </summary>
        </member>
        <member name="F:Gallio.Model.Filters.FilterSetResult.Exclude">
            <summary>
            The filter set excludes the item.
            </summary>
        </member>
        <member name="T:Gallio.Model.Commands.DefaultTestOrderStrategy">
            <summary>
            Defines the test ordering strategy.
            </summary>
            <remarks>
            <para>
            This default strategy first compares test by explicit ordering (using <see cref="P:Gallio.Model.Tree.Test.Order"/>)
            then defines an implicit ordering by name (using <see cref="P:Gallio.Model.Tree.TestComponent.Name"/>).
            </para>
            <para>
            Why implicitly order tests by name instead of randomly?
            </para>
            <para>
            It is my belief that ordering tests by name significantly eases test result interpretation
            because the test results are produced in a meaningful and predictable order.  If the implicit
            order is known, then it's easier for a tester to guage test progress by inspecting the name
            of the currently executing test (in addition to using cues provided by progress monitors, of course).
            Related tests also tend to have similar names or share a common prefix so sorting by name
            can effectively cluster these tests together thereby providing feedback about related topics
            around the same time.
            </para>
            <para>
            A tester may of course take advantage of this known ordering to produce tests that are
            dependent upon one another without making that clear in the code by specifying explicit test
            dependencies or ordering.  When a test is renamed, the implicit ordering will change, possibly
            causing other tests to fail.  However, it is not Gallio's objective to police
            testers, who may well adopt any number of inadvisable practices to meet their ends.
            </para>
            <para>
            Nevertheless, any test framework is still free to produce a random ordering of independent tests.
            It suffices for the framework to initialize the <see cref="P:Gallio.Model.Tree.Test.Order"/> property of each of its
            testsw to a distinct random number. Problem solved.
            </para>
            <para>
            Perhaps someday we can also offer the user a global choice among alternative test ordering strategies.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Model.Commands.DefaultTestOrderStrategy.Compare(Gallio.Model.Tree.Test,Gallio.Model.Tree.Test)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Model.Filters.FilterParseException">
            <summary>
            The type of exception thrown when a filter cannot be parsed.
            </summary>
        </member>
        <member name="M:Gallio.Model.Filters.FilterParseException.#ctor">
            <summary>
            Creates an exception.
            </summary>
        </member>
        <member name="M:Gallio.Model.Filters.FilterParseException.#ctor(System.String)">
            <summary>
            Creates an exception.
            </summary>
            <param name="message">The message.</param>
        </member>
        <member name="M:Gallio.Model.Filters.FilterParseException.#ctor(System.String,System.Exception)">
            <summary>
            Creates an exception.
            </summary>
            <param name="message">The message.</param>
            <param name="innerException">The inner exception.</param>
        </member>
        <member name="M:Gallio.Model.Filters.FilterParseException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Creates an exception from serialization info.
            </summary>
            <param name="info">The serialization info.</param>
            <param name="context">The streaming context.</param>
        </member>
        <member name="T:Gallio.Model.TestFrameworkTraits">
            <summary>
            Describes traits of an <see cref="T:Gallio.Model.ITestFramework"/> component.
            </summary>
        </member>
        <member name="M:Gallio.Model.TestFrameworkTraits.#ctor(System.String)">
            <summary>
            Creates test framework traits.
            </summary>
            <param name="name">The framework's display name.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="name"/> is null.</exception>
        </member>
        <member name="M:Gallio.Model.TestFrameworkTraits.IsFrameworkCompatibleWithAssemblyReferences(System.Collections.Generic.IEnumerable{System.Reflection.AssemblyName})">
            <summary>
            Returns true if at least one of the assembly references is in <see cref="P:Gallio.Model.TestFrameworkTraits.FrameworkAssemblies"/>.
            </summary>
            <param name="assemblyReferences">The assembly references.</param>
            <returns>True if the framework is compatible.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="assemblyReferences"/> is null.</exception>
        </member>
        <member name="M:Gallio.Model.TestFrameworkTraits.IsFrameworkCompatibleWithFileType(Gallio.Runtime.FileTypes.FileType,Gallio.Runtime.FileTypes.IFileTypeManager)">
            <summary>
            Returns true if the file type is the same or a subtype of one of those specified by <see cref="P:Gallio.Model.TestFrameworkTraits.FileTypes"/>.
            </summary>
            <param name="fileType">The file type.</param>
            <param name="fileTypeManager">The file type manager used to resolve file type ids to file types.</param>
            <returns>True if the framework is compatible.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="fileType"/> or <paramref name="fileTypeManager"/> is null.</exception>
        </member>
        <member name="P:Gallio.Model.TestFrameworkTraits.Name">
            <summary>
            Gets the framework's display name.
            </summary>
        </member>
        <member name="P:Gallio.Model.TestFrameworkTraits.Icon">
            <summary>
            Gets or sets the framework's icon, or null if none.
            </summary>
        </member>
        <member name="P:Gallio.Model.TestFrameworkTraits.Version">
            <summary>
            The version of the test framework.
            </summary>
        </member>
        <member name="P:Gallio.Model.TestFrameworkTraits.FrameworkAssemblies">
            <summary>
            Gets or sets the list of framework assembly signatures that are recognized and supported
            by this framework component.
            </summary>
            <remarks>
            <para>
            The framework manager consults this list to determine whether the framework component
            should participate in test exploration.  If none of the named framework assemblies are found
            among the test assembly references then the framework component will not be instantiated
            during test exploration in order to improve performance.
            </para>
            <para>
            Refer to <see cref="M:Gallio.Common.Reflection.AssemblySignature.Parse(System.String)"/> for a description of the format of an assembly signature.
            </para>
            </remarks>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="P:Gallio.Model.TestFrameworkTraits.FileTypes">
            <summary>
            Gets or sets the list of file types ids recognized by the framework as test files.
            </summary>
            <remarks>
            <para>
            The framework manager consults this list to determine whether the framework component
            should participate in test exploration.  If none of the file types match the files
            specified by the test source then the framework component will not be instantiated
            during test exploration in order to improve performance.
            </para>
            <para>
            For .Net-based test frameworks, the list of file types should probably include "Assembly"
            or one of its subtypes.
            </para>
            </remarks>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="T:Gallio.Model.TestPackage">
            <summary>
            A test package specifies the test files, assemblies, and configuration options
            that govern test execution.
            </summary>
        </member>
        <member name="M:Gallio.Model.TestPackage.#ctor">
            <summary>
            Creates an empty test package.
            </summary>
        </member>
        <member name="M:Gallio.Model.TestPackage.Copy">
            <summary>
            Creates a copy of the test package.
            </summary>
            <returns>The new copy.</returns>
        </member>
        <member name="M:Gallio.Model.TestPackage.MergeWith(Gallio.Model.TestPackage)">
            <summary>
            Merges the specified package to the current one.
            </summary>
            <param name="other">The other package to be merged.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="other"/> is null.</exception>
        </member>
        <member name="M:Gallio.Model.TestPackage.ResetApplicationBaseDirectory">
            <summary>
            Resets <see cref="P:Gallio.Model.TestPackage.ApplicationBaseDirectory"/> to its default value and sets <see cref="P:Gallio.Model.TestPackage.IsApplicationBaseDirectorySpecified"/> to false.
            </summary>
        </member>
        <member name="M:Gallio.Model.TestPackage.ResetDebuggerSetup">
            <summary>
            Resets <see cref="P:Gallio.Model.TestPackage.DebuggerSetup"/> to its default value and sets <see cref="P:Gallio.Model.TestPackage.IsDebuggerSetupSpecified"/> to false.
            </summary>
        </member>
        <member name="M:Gallio.Model.TestPackage.ResetRuntimeVersion">
            <summary>
            Resets <see cref="P:Gallio.Model.TestPackage.RuntimeVersion"/> to its default value and sets <see cref="P:Gallio.Model.TestPackage.IsRuntimeVersionSpecified"/> to false.
            </summary>
        </member>
        <member name="M:Gallio.Model.TestPackage.ResetTestFrameworkOptions">
            <summary>
            Resets <see cref="P:Gallio.Model.TestPackage.TestFrameworkOptions"/> to its default value and sets <see cref="P:Gallio.Model.TestPackage.IsTestFrameworkOptionsSpecified"/> to false.
            </summary>
        </member>
        <member name="M:Gallio.Model.TestPackage.ResetTestFrameworkFallbackMode">
            <summary>
            Resets <see cref="P:Gallio.Model.TestPackage.TestFrameworkFallbackMode"/> to its default value and sets <see cref="P:Gallio.Model.TestPackage.IsTestFrameworkFallbackModeSpecified"/> to false.
            </summary>
        </member>
        <member name="M:Gallio.Model.TestPackage.ResetShadowCopy">
            <summary>
            Resets <see cref="P:Gallio.Model.TestPackage.ShadowCopy"/> to its default value and sets <see cref="P:Gallio.Model.TestPackage.IsShadowCopySpecified"/> to false.
            </summary>
        </member>
        <member name="M:Gallio.Model.TestPackage.ResetReportDirectory">
            <summary>
            Resets <see cref="P:Gallio.Model.TestPackage.WorkingDirectory"/> to its default value and sets <see cref="P:Gallio.Model.TestPackage.IsWorkingDirectorySpecified"/> to false.
            </summary>
        </member>
        <member name="M:Gallio.Model.TestPackage.ClearFiles">
            <summary>
            Clears the list of test files.
            </summary>
        </member>
        <member name="M:Gallio.Model.TestPackage.AddFile(System.IO.FileInfo)">
            <summary>
            Adds a test file if it is not already in the test package.
            </summary>
            <param name="file">The file to add.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="file"/> is null.</exception>
        </member>
        <member name="M:Gallio.Model.TestPackage.RemoveFile(System.IO.FileInfo)">
            <summary>
            Removes a test file.
            </summary>
            <param name="file">The file to remove.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="file"/> is null.</exception>
        </member>
        <member name="M:Gallio.Model.TestPackage.ClearHintDirectories">
            <summary>
            Clears the list of hint directories.
            </summary>
        </member>
        <member name="M:Gallio.Model.TestPackage.AddHintDirectory(System.IO.DirectoryInfo)">
            <summary>
            Adds a hint directory if it is not already in the test package.
            </summary>
            <param name="directory">The directory to add.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="directory"/> is null.</exception>
        </member>
        <member name="M:Gallio.Model.TestPackage.RemoveHintDirectory(System.IO.DirectoryInfo)">
            <summary>
            Removes a hint directory.
            </summary>
            <param name="directory">The directory to remove.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="directory"/> is null.</exception>
        </member>
        <member name="M:Gallio.Model.TestPackage.ClearTestExcludedFrameworkIds">
            <summary>
            Clears the list of excluded test framework ids.
            </summary>
        </member>
        <member name="M:Gallio.Model.TestPackage.AddExcludedTestFrameworkId(System.String)">
            <summary>
            Adds an excluded test framework id if it is not already in the test package.
            </summary>
            <param name="testFrameworkId">The test framework id to add.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="testFrameworkId"/> is null.</exception>
        </member>
        <member name="M:Gallio.Model.TestPackage.RemoveExcludedTestFrameworkId(System.String)">
            <summary>
            Removes an excluded test framework id.
            </summary>
            <param name="testFrameworkId">The test framework id to remove.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="testFrameworkId"/> is null.</exception>
        </member>
        <member name="M:Gallio.Model.TestPackage.ClearProperties">
            <summary>
            Clears the collection of properties.
            </summary>
        </member>
        <member name="M:Gallio.Model.TestPackage.AddProperty(System.String,System.String)">
            <summary>
            Adds a property key/value pair.
            </summary>
            <param name="key">The property key.</param>
            <param name="value">The property value.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="key"/> or <paramref name="value"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Thrown if <paramref name="key"/> is already in the property set.</exception>
        </member>
        <member name="M:Gallio.Model.TestPackage.RemoveProperty(System.String)">
            <summary>
            Removes a property key/value pair.
            </summary>
            <param name="key">The property key.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="key"/> is null.</exception>
        </member>
        <member name="M:Gallio.Model.TestPackage.CreateHostSetup">
            <summary>
            Creates a host setup based on the package properties.
            </summary>
            <returns>The host setup.</returns>
        </member>
        <member name="M:Gallio.Model.TestPackage.CreateTestFrameworkSelector">
            <summary>
            Creates a test framework selector based on the package properties.
            </summary>
            <remarks>
            Considers the <see cref="P:Gallio.Model.TestPackage.TestFrameworkOptions"/>, <see cref="P:Gallio.Model.TestPackage.TestFrameworkFallbackMode"/>,
            and <see cref="P:Gallio.Model.TestPackage.ExcludedTestFrameworkIds"/>.
            </remarks>
            <returns>The test framework selector.</returns>
        </member>
        <member name="M:Gallio.Model.TestPackage.ApplyOverlay(Gallio.Model.TestPackage)">
            <summary>
            Applies the settings of another test package as an overlay on top of this one.
            </summary>
            <remarks>
            <para>
            Overrides scalar settings (such as <see cref="P:Gallio.Model.TestPackage.ApplicationBaseDirectory"/>) with those of
            the overlay when they are specified (such as when <see cref="P:Gallio.Model.TestPackage.IsApplicationBaseDirectorySpecified"/> is true).
            Merges aggregate settings (such as lists of files).
            </para>
            </remarks>
            <param name="overlay">The test package to overlay on top of this one.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="overlay"/> is null.</exception>
        </member>
        <member name="P:Gallio.Model.TestPackage.UseSynchronousMessaging">
            <summary>
            Gets or sets an option that describes whether the test runner will use synchronous or asynchronous messaging when reporting up through the test process.
            </summary>
        </member>
        <member name="P:Gallio.Model.TestPackage.IsUseSynchronousMessagingSpecified">
            <summary>
            Gets whether use synchronous messaging has been specified
            </summary>
        </member>
        <member name="P:Gallio.Model.TestPackage.Files">
            <summary>
            Gets the read-only list of test files.
            </summary>
        </member>
        <member name="P:Gallio.Model.TestPackage.HintDirectories">
            <summary>
            Gets the read-only list of hint directories used to resolve test assemblies and other files.
            </summary>
        </member>
        <member name="P:Gallio.Model.TestPackage.ExcludedTestFrameworkIds">
            <summary>
            Gets the read-only list of test framework IDs that are to be excluded from the test
            exploration process.
            </summary>
        </member>
        <member name="P:Gallio.Model.TestPackage.Properties">
            <summary>
            Gets a read-only collection of properties for the test runner.
            </summary>
        </member>
        <member name="P:Gallio.Model.TestPackage.TestFrameworkOptions">
            <summary>
            Gets or sets the test framework options.
            </summary>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="P:Gallio.Model.TestPackage.IsTestFrameworkOptionsSpecified">
            <summary>
            Returns true if <see cref="P:Gallio.Model.TestPackage.TestFrameworkOptions"/> has been set explicitly.
            </summary>
        </member>
        <member name="P:Gallio.Model.TestPackage.TestFrameworkFallbackMode">
            <summary>
            Gets or sets the test framework fallback mode.
            </summary>
            <value>The test framework fallback mode.  Default is <c>TestFrameworkFallbackMode.Default</c>.</value>
        </member>
        <member name="P:Gallio.Model.TestPackage.IsTestFrameworkFallbackModeSpecified">
            <summary>
            Returns true if <see cref="P:Gallio.Model.TestPackage.TestFrameworkFallbackMode"/> has been set explicitly.
            </summary>
        </member>
        <member name="P:Gallio.Model.TestPackage.ShadowCopy">
            <summary>
            Gets or sets whether assembly shadow copying is enabled.
            </summary>
            <value>True if shadow copying is enabled.  Default is <c>false</c>.</value>
        </member>
        <member name="P:Gallio.Model.TestPackage.IsShadowCopySpecified">
            <summary>
            Returns true if <see cref="P:Gallio.Model.TestPackage.ShadowCopy"/> has been set explicitly.
            </summary>
        </member>
        <member name="P:Gallio.Model.TestPackage.DebuggerSetup">
            <summary>
            Gets or sets the debugger setup options, or null if not debugging.
            </summary>
            <value>The debugger setup options.  Default is <c>null</c>.</value>
        </member>
        <member name="P:Gallio.Model.TestPackage.IsDebuggerSetupSpecified">
            <summary>
            Returns true if <see cref="P:Gallio.Model.TestPackage.DebuggerSetup"/> has been set explicitly.
            </summary>
        </member>
        <member name="P:Gallio.Model.TestPackage.ApplicationBaseDirectory">
            <summary>
            Gets or sets the application base directory, or null to use the directory
            containing each group of test files or some other suitable default chosen by the test framework.
            </summary>
            <value>
            The application base directory.  Default is <c>null</c>.
            </value>
        </member>
        <member name="P:Gallio.Model.TestPackage.IsApplicationBaseDirectorySpecified">
            <summary>
            Returns true if <see cref="P:Gallio.Model.TestPackage.ApplicationBaseDirectory"/> has been set explicitly.
            </summary>
        </member>
        <member name="P:Gallio.Model.TestPackage.WorkingDirectory">
            <summary>
            Gets or sets the working directory, or null to use the directory containing
            each group of test files or some other suitable default chosen by the test framework.
            </summary>
            <value>
            The working directory.  Default is <c>null</c>.
            </value>
        </member>
        <member name="P:Gallio.Model.TestPackage.IsWorkingDirectorySpecified">
            <summary>
            Returns true if <see cref="P:Gallio.Model.TestPackage.WorkingDirectory"/> has been set explicitly.
            </summary>
        </member>
        <member name="P:Gallio.Model.TestPackage.RuntimeVersion">
            <summary>
            Gets or sets the .Net runtime version, or null to auto-detect.
            </summary>
            <value>The runtime version, eg. "v2.0.50727".  Default is <c>null</c>.</value>
        </member>
        <member name="P:Gallio.Model.TestPackage.IsRuntimeVersionSpecified">
            <summary>
            Returns true if <see cref="P:Gallio.Model.TestPackage.RuntimeVersion"/> has been set explicitly.
            </summary>
        </member>
        <member name="T:Gallio.Common.Pair`2">
            <summary>
            An immutable record that holds two values.
            </summary>
            <typeparam name="TFirst">The type of the first value.</typeparam>
            <typeparam name="TSecond">The type of the second value.</typeparam>
        </member>
        <member name="M:Gallio.Common.Pair`2.#ctor(`0,`1)">
            <summary>
            Creates a pair.
            </summary>
            <param name="first">The first value.</param>
            <param name="second">The second value.</param>
        </member>
        <member name="P:Gallio.Common.Pair`2.First">
            <summary>
            Gets the first value.
            </summary>
        </member>
        <member name="P:Gallio.Common.Pair`2.Second">
            <summary>
            Gets the second value.
            </summary>
        </member>
        <member name="T:Gallio.Common.Platform.DotNetFrameworkSupport">
            <summary>
            Provides support for working with different versions of the .Net framework.
            </summary>
        </member>
        <member name="P:Gallio.Common.Platform.DotNetFrameworkSupport.FrameworkVersion">
            <summary>
            Gets the .Net framework version installed and currently running.
            </summary>
            <returns>The framework version.</returns>
        </member>
        <member name="T:Gallio.Common.Platform.DotNetRuntimeType">
            <summary>
            Specifies the .Net runtime type.
            </summary>
            <seealso cref="T:Gallio.Common.Platform.DotNetRuntimeSupport"/>
        </member>
        <member name="F:Gallio.Common.Platform.DotNetRuntimeType.CLR">
            <summary>
            Using the Microsoft CLR.
            </summary>
        </member>
        <member name="F:Gallio.Common.Platform.DotNetRuntimeType.Mono">
            <summary>
            Using the Mono runtime.
            </summary>
        </member>
        <member name="T:Gallio.Runner.Events.TestDiscoveredEventArgs">
            <summary>
            Arguments for an event raised to signal that a test was discovered and added to the test model.
            </summary>
        </member>
        <member name="M:Gallio.Runner.Events.TestDiscoveredEventArgs.#ctor(Gallio.Runner.Reports.Schema.Report,Gallio.Model.Schema.TestData)">
            <summary>
            Initializes the event arguments.
            </summary>
            <param name="report">The report.</param>
            <param name="test">The test at the top of the subtree that was added.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="report"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runner.Events.TestDiscoveredEventArgs.Report">
            <summary>
            Gets the report.
            </summary>
        </member>
        <member name="P:Gallio.Runner.Events.TestDiscoveredEventArgs.Test">
            <summary>
            Gets the test at the top of the subtree that was merged.
            </summary>
        </member>
        <member name="T:Gallio.Runner.Events.AnnotationDiscoveredEventArgs">
            <summary>
            Arguments for an event raised to signal that an annotation has been discovered and
            added to the test model.
            </summary>
        </member>
        <member name="M:Gallio.Runner.Events.AnnotationDiscoveredEventArgs.#ctor(Gallio.Runner.Reports.Schema.Report,Gallio.Model.Schema.AnnotationData)">
            <summary>
            Initializes the event arguments.
            </summary>
            <param name="report">The report.</param>
            <param name="annotation">The annotation that was added.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="report"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runner.Events.AnnotationDiscoveredEventArgs.Report">
            <summary>
            Gets the report.
            </summary>
        </member>
        <member name="P:Gallio.Runner.Events.AnnotationDiscoveredEventArgs.Annotation">
            <summary>
            Gets the annotation that was added.
            </summary>
        </member>
        <member name="T:Gallio.Runner.Events.DisposeFinishedEventArgs">
            <summary>
            Arguments for an event raised to indicate that the test runner disposal has finished.
            </summary>
        </member>
        <member name="T:Gallio.Runner.OperationFinishedEventArgs">
            <summary>
            Base arguments for events raised to indicate the completion of an operation.
            </summary>
        </member>
        <member name="M:Gallio.Runner.OperationFinishedEventArgs.#ctor(System.Boolean)">
            <summary>
            Initializes the event arguments.
            </summary>
            <param name="success">True if the operation completed successfully.</param>
        </member>
        <member name="P:Gallio.Runner.OperationFinishedEventArgs.Success">
            <summary>
            Returns true if the operation completed successfully.
            </summary>
        </member>
        <member name="M:Gallio.Runner.Events.DisposeFinishedEventArgs.#ctor(System.Boolean)">
            <summary>
            Initializes the event arguments.
            </summary>
            <param name="success">True if the disposal was completed successfully.</param>
        </member>
        <member name="T:Gallio.Runner.Events.DisposeStartedEventArgs">
            <summary>
            Arguments for an event raised to indicate that the test runner disposal has started.
            </summary>
        </member>
        <member name="M:Gallio.Runner.Events.DisposeStartedEventArgs.#ctor">
            <summary>
            Initializes the event arguments.
            </summary>
        </member>
        <member name="T:Gallio.Runner.Events.ExploreFinishedEventArgs">
            <summary>
            Arguments for an event raised to indicate that test exploration has finished.
            </summary>
        </member>
        <member name="M:Gallio.Runner.Events.ExploreFinishedEventArgs.#ctor(System.Boolean,Gallio.Runner.Reports.Schema.Report)">
            <summary>
            Initializes the event arguments.
            </summary>
            <param name="success">True if test exploration was successful.</param>
            <param name="report">The report, including test model data on success.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="report"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runner.Events.ExploreFinishedEventArgs.Report">
            <summary>
            Gets the report, including test model data on success.
            </summary>
        </member>
        <member name="T:Gallio.Runner.Events.ExploreStartedEventArgs">
            <summary>
            Arguments for an event raised to indicate that test exploration has started.
            </summary>
        </member>
        <member name="M:Gallio.Runner.Events.ExploreStartedEventArgs.#ctor(Gallio.Model.TestPackage,Gallio.Model.TestExplorationOptions,Gallio.Common.Concurrency.LockBox{Gallio.Runner.Reports.Schema.Report})">
            <summary>
            Initializes the event arguments.
            </summary>
            <param name="testPackage">The test package configuration.</param>
            <param name="testExplorationOptions">The test exploration options.</param>
            <param name="reportLockBox">The report lock-box which may be used to access the report asynchronously during execution.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="testPackage"/>
            or <paramref name="testExplorationOptions"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runner.Events.ExploreStartedEventArgs.TestPackage">
            <summary>
            Gets the test package.
            </summary>
        </member>
        <member name="P:Gallio.Runner.Events.ExploreStartedEventArgs.TestExplorationOptions">
            <summary>
            Gets the test exploration options.
            </summary>
        </member>
        <member name="P:Gallio.Runner.Events.ExploreStartedEventArgs.ReportLockBox">
            <summary>
            Gets the report lock-box which may be used to access the report asynchronously during execution.
            </summary>
        </member>
        <member name="T:Gallio.Runner.Events.TestStepLogStreamBeginMarkerBlockEventArgs">
            <summary>
            Arguments for an event raised to indicate that a marker block has been started within a test step log stream.
            </summary>
        </member>
        <member name="T:Gallio.Runner.Events.TestStepLogStreamEventArgs">
            <summary>
            Base arguments for an event raised to indicate that a test step log stream has been modified in some way.
            </summary>
        </member>
        <member name="T:Gallio.Runner.Events.TestStepEventArgs">
            <summary>
            Base arguments for an event raised to provide information about a test step.
            </summary>
        </member>
        <member name="M:Gallio.Runner.Events.TestStepEventArgs.#ctor(Gallio.Runner.Reports.Schema.Report,Gallio.Model.Schema.TestData,Gallio.Runner.Reports.Schema.TestStepRun)">
            <summary>
            Initializes the event arguments.
            </summary>
            <param name="report">The report.</param>
            <param name="test">The test data.</param>
            <param name="testStepRun">The test step run.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="report"/>, <paramref name="test"/>
            or <paramref name="testStepRun"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runner.Events.TestStepEventArgs.GetStepKind">
            <summary>
            Gets the kind of step described using the <see cref="F:Gallio.Model.MetadataKeys.TestKind"/> metadata key.
            </summary>
            <returns>The step kind.</returns>
        </member>
        <member name="P:Gallio.Runner.Events.TestStepEventArgs.Report">
            <summary>
            Gets the report.
            </summary>
        </member>
        <member name="P:Gallio.Runner.Events.TestStepEventArgs.Test">
            <summary>
            Gets the test data of the test that contains the test step.
            </summary>
        </member>
        <member name="P:Gallio.Runner.Events.TestStepEventArgs.TestStepRun">
            <summary>
            Gets the test step run.
            </summary>
        </member>
        <member name="M:Gallio.Runner.Events.TestStepLogStreamEventArgs.#ctor(Gallio.Runner.Reports.Schema.Report,Gallio.Model.Schema.TestData,Gallio.Runner.Reports.Schema.TestStepRun,System.String)">
            <summary>
            Initializes the event arguments.
            </summary>
            <param name="report">The report.</param>
            <param name="test">The test data.</param>
            <param name="testStepRun">The test step run.</param>
            <param name="logStreamName">The log stream name.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="report"/>, <paramref name="test"/>
            <paramref name="testStepRun"/> or <paramref name="logStreamName"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runner.Events.TestStepLogStreamEventArgs.LogStreamName">
            <summary>
            Gets the log stream name.
            </summary>
        </member>
        <member name="M:Gallio.Runner.Events.TestStepLogStreamBeginMarkerBlockEventArgs.#ctor(Gallio.Runner.Reports.Schema.Report,Gallio.Model.Schema.TestData,Gallio.Runner.Reports.Schema.TestStepRun,System.String,Gallio.Common.Markup.Marker)">
            <summary>
            Initializes the event arguments.
            </summary>
            <param name="report">The report.</param>
            <param name="test">The test data.</param>
            <param name="testStepRun">The test step run.</param>
            <param name="logStreamName">The log stream name.</param>
            <param name="marker">The marker.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="report"/>, <paramref name="test"/>
            <paramref name="testStepRun"/> or <paramref name="logStreamName"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runner.Events.TestStepLogStreamBeginMarkerBlockEventArgs.Marker">
            <summary>
            Gets the marker.
            </summary>
        </member>
        <member name="T:Gallio.Runner.Extensions.ITestRunnerExtension">
            <summary>
            A test runner extension plugs augments the behavior of a <see cref="T:Gallio.Runner.ITestRunner"/>
            by attaching new behaviors to its event handlers.
            </summary>
            <remarks>
            <para>
            Typical extension use-cases:
            <list type="bullet">
            <item>Custom logging by listening for events of interest and writing messages
            to a file or to another location.</item>
            <item>Custom configuration of test package loading, test exploration
            and test execution options by listening for the starting events of the phase
            and modifying the options in place.</item>
            </list>
            </para>
            <para>
            More complex extensions such as integration of new test frameworks are typically
            performed by plugins because new runtime services must be registered to support them.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Runner.Extensions.ITestRunnerExtension.Install(Gallio.Runner.Events.ITestRunnerEvents,Gallio.Runtime.Logging.ILogger)">
            <summary>
            Installs the extension into a test runner.
            </summary>
            <param name="events">The test runner events, not null.</param>
            <param name="logger">The logger, not null.</param>
        </member>
        <member name="P:Gallio.Runner.Extensions.ITestRunnerExtension.Parameters">
            <summary>
            Gets or sets configuration parameters for the extension.
            </summary>
        </member>
        <member name="T:Gallio.Runner.Extensions.TestRunnerExtension">
            <summary>
            Abstract implementation of a test runner extension.
            <seealso cref="T:Gallio.Runner.Extensions.ITestRunnerExtension"/> for more details.
            </summary>
        </member>
        <member name="M:Gallio.Runner.Extensions.TestRunnerExtension.Install(Gallio.Runner.Events.ITestRunnerEvents,Gallio.Runtime.Logging.ILogger)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runner.Extensions.TestRunnerExtension.Initialize">
            <summary>
            Initializes the extension as part of extension installation.
            </summary>
        </member>
        <member name="P:Gallio.Runner.Extensions.TestRunnerExtension.Events">
            <summary>
            Gets the test runner event extension point.
            </summary>
        </member>
        <member name="P:Gallio.Runner.Extensions.TestRunnerExtension.Logger">
            <summary>
            Gets the logger.
            </summary>
        </member>
        <member name="P:Gallio.Runner.Extensions.TestRunnerExtension.Parameters">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runner.Extensions.TestRunnerExtensionUtils">
            <summary>
            Provides utilities for manipulating test runner extensions.
            </summary>
        </member>
        <member name="M:Gallio.Runner.Extensions.TestRunnerExtensionUtils.CreateExtensionFromSpecification(System.String)">
            <summary>
            Creates an extension from its specification.
            </summary>
            <remarks>
            <para>
            An extension specification has the form "[Namespace.]Type,Assembly[;Parameters]".
            The extension class must implement <see cref="T:Gallio.Runner.Extensions.ITestRunnerExtension"/>.  The namespace may be omitted
            if the assembly contains exactly one class with the specified name.  The parameter string is passed
            to the extension exactly as written.
            </para>
            <para>
            Examples:
            <list type="bullet">
            <item>"MyExtensions.MyExtension,MyExtensions.dll;Parameter1,Parameter2"</item>
            <item>"CustomLogger,MyExtensions"</item>
            </list>
            </para>
            </remarks>
            <param name="extensionSpecification">The extension specification.</param>
            <returns>The extension.</returns>
            <exception cref="T:Gallio.Runner.RunnerException">Thrown if the extension cannot be instantiated and configured.</exception>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="extensionSpecification"/> is null.</exception>
        </member>
        <member name="T:Gallio.Runner.DefaultTestRunner">
            <summary>
            A default implementation of <see cref="T:Gallio.Runner.ITestRunner"/>.
            </summary>
        </member>
        <member name="T:Gallio.Runner.ITestRunner">
            <summary>
            A test runner provides the basic functionality for loading, exploring and running tests.
            </summary>
            <remarks>
            <para>
            It abstracts away most concerns having to do with the execution of tests
            in isolated (possibly remote) domains.
            </para>
            <para>
            The basic usage pattern of a test runner is as follows:
            <list type="bullet">
            <item>As a precondition, ensure that the runtime environment has been initialized.</item>
            <item>Create the test runner.</item>
            <item>Add event handlers and register extensions.  <seealso cref="P:Gallio.Runner.ITestRunner.Events"/>, <seealso cref="M:Gallio.Runner.ITestRunner.RegisterExtension(Gallio.Runner.Extensions.ITestRunnerExtension)"/></item>
            <item>Initialize the runner.  <seealso cref="M:Gallio.Runner.ITestRunner.Initialize(Gallio.Runner.TestRunnerOptions,Gallio.Runtime.Logging.ILogger,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)"/></item>
            <item>Explore and/or Run the tests.  <seealso cref="M:Gallio.Runner.ITestRunner.Explore(Gallio.Model.TestPackage,Gallio.Model.TestExplorationOptions,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)"/> and <seealso cref="M:Gallio.Runner.ITestRunner.Run(Gallio.Model.TestPackage,Gallio.Model.TestExplorationOptions,Gallio.Model.TestExecutionOptions,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)"/></item>
            <item>Dispose the test runner.  <seealso cref="M:Gallio.Runner.ITestRunner.Dispose(Gallio.Runtime.ProgressMonitoring.IProgressMonitor)"/></item>
            <item>Save or format the report contents as required using the reporting APIs.</item>
            </list>
            </para>
            <para>
            Multiple test runs may be performed between initialization and disposal of the test runner.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Runner.ITestRunner.RegisterExtension(Gallio.Runner.Extensions.ITestRunnerExtension)">
            <summary>
            Registers a test runner extension.
            </summary>
            <remarks>
            <para>
            The extension should already have been configured before this method
            is called.  Its <see cref="M:Gallio.Runner.Extensions.ITestRunnerExtension.Install(Gallio.Runner.Events.ITestRunnerEvents,Gallio.Runtime.Logging.ILogger)"/> method will be
            called to register the extension with the test runner as part of the initialization
            of the test runner.
            </para>
            </remarks>
            <param name="extension">The test runner extension to register.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="extension"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Thrown if the test runner has already been initialized.</exception>
        </member>
        <member name="M:Gallio.Runner.ITestRunner.Initialize(Gallio.Runner.TestRunnerOptions,Gallio.Runtime.Logging.ILogger,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
            <summary>
            Initializes the test runner.
            </summary>
            <param name="testRunnerOptions">The test runner options.</param>
            <param name="logger">The logger.</param>
            <param name="progressMonitor">The progress monitor.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="testRunnerOptions"/>,
            <paramref name="logger"/> or <paramref name="progressMonitor"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Thrown if the runner is already initialized.</exception>
            <exception cref="T:System.ObjectDisposedException">Thrown if the runner has been disposed.</exception>
        </member>
        <member name="M:Gallio.Runner.ITestRunner.Explore(Gallio.Model.TestPackage,Gallio.Model.TestExplorationOptions,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
            <summary>
            Explores tests in a test package.
            </summary>
            <remarks>
            <para>
            Returns a report that contains test package and test model information only.
            </para>
            </remarks>
            <param name="testPackage">The test package.</param>
            <param name="testExplorationOptions">The test exploration options.</param>
            <param name="progressMonitor">The progress monitor.</param>
            <returns>The test report.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="testPackage"/>,
            <paramref name="testExplorationOptions"/>, or <paramref name="progressMonitor"/> is null.</exception>
            <exception cref="T:Gallio.Runner.RunnerException">Thrown if the operation failed.</exception>
            <exception cref="T:System.ObjectDisposedException">Thrown if the runner has been disposed.</exception>
        </member>
        <member name="M:Gallio.Runner.ITestRunner.Run(Gallio.Model.TestPackage,Gallio.Model.TestExplorationOptions,Gallio.Model.TestExecutionOptions,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
            <summary>
            Explores and runs tests in a test package.
            </summary>
            <remarks>
            <para>
            Returns a report that contains test package, test model and test run data.
            </para>
            </remarks>
            <param name="testPackage">The test package.</param>
            <param name="testExplorationOptions">The test exploration options.</param>
            <param name="testExecutionOptions">The test execution options.</param>
            <param name="progressMonitor">The progress monitor.</param>
            <returns>The test report.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="testPackage"/>,
            <paramref name="testExplorationOptions"/>, <paramref name="testExecutionOptions"/>, or <paramref name="progressMonitor"/> is null.</exception>
            <exception cref="T:Gallio.Runner.RunnerException">Thrown if the operation failed.</exception>
            <exception cref="T:System.ObjectDisposedException">Thrown if the runner has been disposed.</exception>
        </member>
        <member name="M:Gallio.Runner.ITestRunner.Dispose(Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
            <summary>
            Disposes the test runner.  Does nothing if already disposed or if not initialized.
            </summary>
            <param name="progressMonitor">The progress monitor.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="progressMonitor"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runner.ITestRunner.Events">
            <summary>
            Gets the event dispatcher for the test runner.
            </summary>
        </member>
        <member name="M:Gallio.Runner.DefaultTestRunner.#ctor(Gallio.Model.Isolation.ITestIsolationProvider,Gallio.Model.ITestFrameworkManager)">
            <summary>
            Creates a test runner.
            </summary>
            <param name="testIsolationProvider">The test isolation provider.</param>
            <param name="testFrameworkManager">The test framework manager.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="testIsolationProvider"/> 
            or <paramref name="testFrameworkManager"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runner.DefaultTestRunner.RegisterExtension(Gallio.Runner.Extensions.ITestRunnerExtension)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runner.DefaultTestRunner.Initialize(Gallio.Runner.TestRunnerOptions,Gallio.Runtime.Logging.ILogger,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runner.DefaultTestRunner.Explore(Gallio.Model.TestPackage,Gallio.Model.TestExplorationOptions,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runner.DefaultTestRunner.Run(Gallio.Model.TestPackage,Gallio.Model.TestExplorationOptions,Gallio.Model.TestExecutionOptions,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runner.DefaultTestRunner.Dispose(Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Runner.DefaultTestRunner.Logger">
            <summary>
            Gets the logger, or null if the test runner has not been initialized.
            </summary>
        </member>
        <member name="P:Gallio.Runner.DefaultTestRunner.TestRunnerOptions">
            <summary>
            Gets the test runner options, or null if the test runner has not been initialized.
            </summary>
        </member>
        <member name="P:Gallio.Runner.DefaultTestRunner.Events">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runner.DefaultTestRunner.Listener.PromoteToTestCaseIfStepAppearsToHaveBlockedChildrenFromRunning(Gallio.Runner.DefaultTestRunner.Listener.TestStepState)">
            <summary>
            In some situations, we may receive a report that a test step representing an
            inner node of the test tree failed and therefore prevented other test cases
            from running.  When this happens, we automatically promote the test step to
            behave as if it were a test case and report the failure.
            </summary>
            <remarks>
            This is really a hack to make up for the fact that most of the information
            presented to users is about test cases rather than test suites and other inner
            nodes of the test tree.  Because test cases can be constructed dynamically,
            we have a bit of a problem counting and presenting them when inner nodes fail.
            I hope someday we come up with a better solution to this issue with our test model.
            Perhaps we could introduce a "blocked" status.
            -- Jeff.
            </remarks>
        </member>
        <member name="T:Gallio.Runner.Events.InitializeFinishedEventArgs">
            <summary>
            Arguments for an event raised to indicate that the test runner initialization has finished.
            </summary>
        </member>
        <member name="M:Gallio.Runner.Events.InitializeFinishedEventArgs.#ctor(System.Boolean)">
            <summary>
            Initializes the event arguments.
            </summary>
            <param name="success">True if the test runner was successfully initialized.</param>
        </member>
        <member name="T:Gallio.Runner.Events.InitializeStartedEventArgs">
            <summary>
            Arguments for an event raised to indicate that the test runner initialization has started.
            </summary>
        </member>
        <member name="M:Gallio.Runner.Events.InitializeStartedEventArgs.#ctor(Gallio.Runner.TestRunnerOptions)">
            <summary>
            Initializes the event arguments.
            </summary>
            <param name="options">The test runner options.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="options"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runner.Events.InitializeStartedEventArgs.Options">
            <summary>
            Gets the test runner options.
            </summary>
        </member>
        <member name="T:Gallio.Runner.Events.ITestRunnerEvents">
            <summary>
            Declares all of the events that may be raised by a <see cref="T:Gallio.Runner.ITestRunner"/>.
            </summary>
        </member>
        <member name="E:Gallio.Runner.Events.ITestRunnerEvents.LogEntrySubmitted">
            <summary>
            The event raised to indicate that a log message was written by the test runner.
            </summary>
            <remarks>
            <para>
            The runner automatically writes out these log messages to the logger with which it
            is initialized.  These events are raised to allow other subscribers to receive
            log messages as well.
            </para>
            </remarks>
        </member>
        <member name="E:Gallio.Runner.Events.ITestRunnerEvents.MessageReceived">
            <summary>
            The event raised to indicate that a raw message was received by the test runner.
            </summary>
        </member>
        <member name="E:Gallio.Runner.Events.ITestRunnerEvents.InitializeStarted">
            <summary>
            The event raised to indicate that the test runner initialization has started.
            </summary>
        </member>
        <member name="E:Gallio.Runner.Events.ITestRunnerEvents.InitializeFinished">
            <summary>
            The event raised to indicate that the test runner initialization has finished.
            </summary>
        </member>
        <member name="E:Gallio.Runner.Events.ITestRunnerEvents.DisposeStarted">
            <summary>
            The event raised to indicate that the test runner disposal has started.
            </summary>
        </member>
        <member name="E:Gallio.Runner.Events.ITestRunnerEvents.DisposeFinished">
            <summary>
            The event raised to indicate that the test runner disposal has finished.
            </summary>
        </member>
        <member name="E:Gallio.Runner.Events.ITestRunnerEvents.ExploreStarted">
            <summary>
            The event raised to indicate that test exploration has started.
            </summary>
        </member>
        <member name="E:Gallio.Runner.Events.ITestRunnerEvents.ExploreFinished">
            <summary>
            The event raised to indicate that test exploration has finished.
            </summary>
        </member>
        <member name="E:Gallio.Runner.Events.ITestRunnerEvents.RunStarted">
            <summary>
            The event raised to indicate that test execution has started.
            </summary>
        </member>
        <member name="E:Gallio.Runner.Events.ITestRunnerEvents.RunFinished">
            <summary>
            The event raised to indicate that test execution has finished.
            </summary>
        </member>
        <member name="E:Gallio.Runner.Events.ITestRunnerEvents.TestDiscovered">
            <summary>
            The event raised to indicate that a subtree of tests was merged into the test model.
            </summary>
        </member>
        <member name="E:Gallio.Runner.Events.ITestRunnerEvents.AnnotationDiscovered">
            <summary>
            The event raised to indicate that an annotation was added to the test model.
            </summary>
        </member>
        <member name="E:Gallio.Runner.Events.ITestRunnerEvents.TestStepStarted">
            <summary>
            The event raised to indicate that a test step has started execution.
            </summary>
        </member>
        <member name="E:Gallio.Runner.Events.ITestRunnerEvents.TestStepFinished">
            <summary>
            The event raised to indicate that a test step has finished execution.
            </summary>
        </member>
        <member name="E:Gallio.Runner.Events.ITestRunnerEvents.TestStepLifecyclePhaseChanged">
            <summary>
            The event raised to indicate that a test step has entered a new lifecycle phase.
            </summary>
        </member>
        <member name="E:Gallio.Runner.Events.ITestRunnerEvents.TestStepMetadataAdded">
            <summary>
            The event raised to indicate that a test step dynamically added metadata to itself.
            </summary>
        </member>
        <member name="E:Gallio.Runner.Events.ITestRunnerEvents.TestStepLogAttach">
            <summary>
            The event raised to indicate that an attachment has been added to a test step log.
            </summary>
        </member>
        <member name="E:Gallio.Runner.Events.ITestRunnerEvents.TestStepLogStreamWrite">
            <summary>
            The event raised to indicate that text has been written to a test step log stream.
            </summary>
        </member>
        <member name="E:Gallio.Runner.Events.ITestRunnerEvents.TestStepLogStreamEmbed">
            <summary>
            The event raised to indicate that an attachment has been embedded into a test step log stream.
            </summary>
        </member>
        <member name="E:Gallio.Runner.Events.ITestRunnerEvents.TestStepLogStreamBeginSectionBlock">
            <summary>
            The event raised to indicate that a section has been started within a test step log stream.
            </summary>
        </member>
        <member name="E:Gallio.Runner.Events.ITestRunnerEvents.TestStepLogStreamBeginMarkerBlock">
            <summary>
            The event raised to indicate that a marker has been started within a test step log stream.
            </summary>
        </member>
        <member name="E:Gallio.Runner.Events.ITestRunnerEvents.TestStepLogStreamEndBlock">
            <summary>
            The event raised to indicate that a block has finished within a test step log stream.
            </summary>
        </member>
        <member name="T:Gallio.Runner.Events.RunFinishedEventArgs">
            <summary>
            Arguments for an event raised to indicate that test execution has finished.
            </summary>
        </member>
        <member name="M:Gallio.Runner.Events.RunFinishedEventArgs.#ctor(System.Boolean,Gallio.Runner.Reports.Schema.Report)">
            <summary>
            Initializes the event arguments.
            </summary>
            <param name="success">True if test execution was successful.</param>
            <param name="report">The report, including test package run data on success.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="report"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runner.Events.RunFinishedEventArgs.Report">
            <summary>
            Gets the report, including test package run data on success.
            </summary>
        </member>
        <member name="T:Gallio.Runner.Events.MessageReceivedEventArgs">
            <summary>
            Arguments for an event raised when a raw message is received.
            </summary>
        </member>
        <member name="M:Gallio.Runner.Events.MessageReceivedEventArgs.#ctor(Gallio.Common.Messaging.Message)">
            <summary>
            Initializes the event arguments.
            </summary>
            <param name="message">The message that was received.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="message"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runner.Events.MessageReceivedEventArgs.Message">
            <summary>
            Gets the message that was received.
            </summary>
        </member>
        <member name="T:Gallio.Runner.Reports.Schema.LogEntry">
            <summary>
            Describes a log entry for reporting purposes.
            </summary>
        </member>
        <member name="P:Gallio.Runner.Reports.Schema.LogEntry.Severity">
            <summary>
            Gets or sets the log message severity.
            </summary>
        </member>
        <member name="P:Gallio.Runner.Reports.Schema.LogEntry.Message">
            <summary>
            Gets or sets the log message.
            </summary>
        </member>
        <member name="P:Gallio.Runner.Reports.Schema.LogEntry.Details">
            <summary>
            Gets or sets the log message details, such as an exception.
            </summary>
        </member>
        <member name="T:Gallio.Runner.Reports.ReportFormatterOptions">
            <summary>
            Provides options to report formatters.
            </summary>
        </member>
        <member name="M:Gallio.Runner.Reports.ReportFormatterOptions.#ctor">
            <summary>
            Creates a default set of options.
            </summary>
        </member>
        <member name="M:Gallio.Runner.Reports.ReportFormatterOptions.ClearProperties">
            <summary>
            Clears the collection of properties.
            </summary>
        </member>
        <member name="M:Gallio.Runner.Reports.ReportFormatterOptions.AddProperty(System.String,System.String)">
            <summary>
            Adds a property key/value pair.
            </summary>
            <param name="key">The property key.</param>
            <param name="value">The property value.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="key"/> or <paramref name="value"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Thrown if <paramref name="key"/> is already in the property set.</exception>
        </member>
        <member name="M:Gallio.Runner.Reports.ReportFormatterOptions.RemoveProperty(System.String)">
            <summary>
            Removes a property key/value pair.
            </summary>
            <param name="key">The property key.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="key"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runner.Reports.ReportFormatterOptions.Copy">
            <summary>
            Creates a copy of the options.
            </summary>
            <returns>The copy.</returns>
        </member>
        <member name="P:Gallio.Runner.Reports.ReportFormatterOptions.Properties">
            <summary>
            Gets a read-only collection of configuration properties for the report formatter.
            </summary>
        </member>
        <member name="T:Gallio.Runner.Reports.ReportFormatterTraits">
            <summary>
            Describes traits of an <see cref="T:Gallio.Runner.Reports.IReportFormatter"/> component.
            </summary>
        </member>
        <member name="M:Gallio.Runner.Reports.ReportFormatterTraits.#ctor(System.String,System.String)">
            <summary>
            Creates report formatter traits.
            </summary>
            <param name="name">The unique name of the report format.</param>
            <param name="description">The description of report format.</param>
        </member>
        <member name="P:Gallio.Runner.Reports.ReportFormatterTraits.Name">
            <summary>
            Gets the unique name of the report format.
            </summary>
        </member>
        <member name="P:Gallio.Runner.Reports.ReportFormatterTraits.Description">
            <summary>
            Gets the description of the report format.
            </summary>
        </member>
        <member name="T:Gallio.Runner.TestRunnerFactoryTraits">
            <summary>
            Describes traits of an <see cref="T:Gallio.Runner.ITestRunnerFactory"/> component.
            </summary>
        </member>
        <member name="M:Gallio.Runner.TestRunnerFactoryTraits.#ctor(System.String,System.String)">
            <summary>
            Creates test runner factory traits.
            </summary>
            <param name="name">The unique name of the kind of test runner created by the factory.</param>
            <param name="description">The description of test runner created by the factory.</param>
        </member>
        <member name="P:Gallio.Runner.TestRunnerFactoryTraits.Name">
            <summary>
            Gets the unique name of the kind of test runner created by the factory.
            </summary>
        </member>
        <member name="P:Gallio.Runner.TestRunnerFactoryTraits.Description">
            <summary>
            Gets the description of test runner created by the factory.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.Conversions.ArrayToArrayConversionRule">
            <summary>
            Converts arrays from one-dimensional arrays of one element type to another.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Conversions.ArrayToArrayConversionRule.GetConversionCost(System.Type,System.Type,Gallio.Runtime.Conversions.IConverter)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Conversions.ArrayToArrayConversionRule.Convert(System.Object,System.Type,Gallio.Runtime.Conversions.IConverter,System.Boolean)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runtime.Conversions.BaseConverter">
            <summary>
            An abstract base class implementation of <see cref="T:Gallio.Runtime.Conversions.IConverter"/>
            that mostly validates arguments and provides a default implement for
            <see cref="M:Gallio.Runtime.Conversions.BaseConverter.CanConvert(System.Type,System.Type)"/> based on <see cref="M:Gallio.Runtime.Conversions.BaseConverter.GetConversionCost(System.Type,System.Type)"/>.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.Conversions.IConverter">
            <summary>
            A converter converts a value from a source type to a target type.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Conversions.IConverter.CanConvert(System.Type,System.Type)">
            <summary>
            Determines whether the converter can convert a value of type <paramref name="sourceType"/>
            to type <paramref name="targetType"/>.
            </summary>
            <param name="sourceType">The source type.</param>
            <param name="targetType">The target type.</param>
            <returns>True if the converter supports this conversion.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="sourceType"/> or
            <paramref name="targetType"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Conversions.IConverter.GetConversionCost(System.Type,System.Type)">
            <summary>
            Gets the cost of converting a value of type <paramref name="sourceType"/>
            to type <paramref name="targetType"/>.
            </summary>
            <param name="sourceType">The source type.</param>
            <param name="targetType">The target type.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="sourceType"/> or
            <paramref name="targetType"/> is null.</exception>
            <returns>The conversion cost.</returns>
        </member>
        <member name="M:Gallio.Runtime.Conversions.IConverter.Convert(System.Object,System.Type)">
            <summary>
            Converts the value <paramref name="sourceValue"/> to type <paramref name="targetType"/>.
            </summary>
            <param name="sourceValue">The value to convert.</param>
            <param name="targetType">The target type.</param>
            <returns>The converted value.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="targetType"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Thrown the requested conversion was not supported.</exception>
        </member>
        <member name="M:Gallio.Runtime.Conversions.BaseConverter.CanConvert(System.Type,System.Type)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Conversions.BaseConverter.GetConversionCost(System.Type,System.Type)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Conversions.BaseConverter.Convert(System.Object,System.Type)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Conversions.BaseConverter.CanConvertImpl(System.Type,System.Type)">
            <summary>
            Implements <see cref="M:Gallio.Runtime.Conversions.BaseConverter.CanConvert(System.Type,System.Type)"/>.
            </summary>
            <remarks>
            <para>
            The default implementation returns <c>true</c> if <see cref="M:Gallio.Runtime.Conversions.BaseConverter.GetConversionCostImpl(System.Type,System.Type)"/>
            returns a valid conversion cost.
            </para>
            </remarks>
            <param name="sourceType">The source type, never null.</param>
            <param name="targetType">The target type, never null.</param>
            <returns>True if the conversion is supported.</returns>
        </member>
        <member name="M:Gallio.Runtime.Conversions.BaseConverter.GetConversionCostImpl(System.Type,System.Type)">
            <summary>
            Implements <see cref="M:Gallio.Runtime.Conversions.BaseConverter.GetConversionCost(System.Type,System.Type)"/>.
            </summary>
            <param name="sourceType">The source type, never null.</param>
            <param name="targetType">The target type, never null.</param>
            <returns>The conversion cost.</returns>
        </member>
        <member name="M:Gallio.Runtime.Conversions.BaseConverter.ConvertImpl(System.Object,System.Type)">
            <summary>
            Implements <see cref="M:Gallio.Runtime.Conversions.BaseConverter.Convert(System.Object,System.Type)"/>
            </summary>
            <param name="sourceValue">The source value.</param>
            <param name="targetType">The target type, never null.</param>
            <returns>The converted value.</returns>
        </member>
        <member name="T:Gallio.Runtime.Conversions.ConversionCost">
            <summary>
            Describes the relative cost of performing a conversion so that different
            conversions can be ranked by cost.  
            </summary>
            <remarks>
            <para>
            A typical direct conversion should have
            a cost of one. Lossy conversions should be more costly.
            </para>
            </remarks>
        </member>
        <member name="F:Gallio.Runtime.Conversions.ConversionCost.Zero">
            <summary>
            The conversion has zero cost because no work is required.
            </summary>
            <value>The associated cost value is 0.</value>
        </member>
        <member name="F:Gallio.Runtime.Conversions.ConversionCost.Best">
            <summary>
            The conversion is the best possible conversion available.
            </summary>
            <remarks>
            <para>
            Built-in conversions should not use this value.  It should be reserved for
            user-created conversions that are intended to override the built-in conversions.
            </para>
            </remarks>
            <value>The associated cost value is 1.</value>
        </member>
        <member name="F:Gallio.Runtime.Conversions.ConversionCost.Typical">
            <summary>
            The conversion costs a typical amount of work to perform.
            </summary>
            <remarks>
            <para>
            It may yet be trumped by a conversion that costs less.
            </para>
            </remarks>
            <value>The associated cost value is 1000.</value>
        </member>
        <member name="F:Gallio.Runtime.Conversions.ConversionCost.Default">
            <summary>
            The conversion is a poor default choice.  It costs a sufficient number of units
            of work to perform to ensure that a non-default conversion will be chosen if possible.
            </summary>
            <value>The associated cost value is 1000000.</value>
        </member>
        <member name="F:Gallio.Runtime.Conversions.ConversionCost.Maximum">
            <summary>
            The conversion costs the maximum possible amount of work to perform.
            </summary>
            <value>The associated cost value is 1000000000.</value>
        </member>
        <member name="F:Gallio.Runtime.Conversions.ConversionCost.Invalid">
            <summary>
            The conversion is not supported.
            </summary>
            <value>The associated cost value is <see cref="F:System.Int32.MaxValue"/>.</value>
        </member>
        <member name="M:Gallio.Runtime.Conversions.ConversionCost.#ctor(System.Int32)">
            <summary>
            Creates a conversion cost.
            </summary>
            <param name="value">The number of units of work required by the conversion.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="value"/> is negative.</exception>
        </member>
        <member name="M:Gallio.Runtime.Conversions.ConversionCost.CompareTo(Gallio.Runtime.Conversions.ConversionCost)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Conversions.ConversionCost.Add(Gallio.Runtime.Conversions.ConversionCost)">
            <summary>
            Adds this conversion cost with the other and returns the sum.
            </summary>
            <param name="other">The other conversion cost.</param>
            <returns>The summed conversion cost.</returns>
        </member>
        <member name="M:Gallio.Runtime.Conversions.ConversionCost.ToString">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Runtime.Conversions.ConversionCost.Value">
            <summary>
            Gets the cost value.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.Conversions.ConversionCost.IsInvalid">
            <summary>
            Returns true if the conversion is not supported.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.Conversions.ConvertibleToConvertibleConversionRule">
            <summary>
            Converts values among <see cref="T:System.IConvertible"/> types.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Conversions.ConvertibleToConvertibleConversionRule.GetConversionCost(System.Type,System.Type,Gallio.Runtime.Conversions.IConverter)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Conversions.ConvertibleToConvertibleConversionRule.Convert(System.Object,System.Type,Gallio.Runtime.Conversions.IConverter,System.Boolean)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runtime.Conversions.Converter">
            <summary>
            Service locator for <see cref="T:Gallio.Runtime.Conversions.IConverter"/>.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.Conversions.Converter.Instance">
            <summary>
            Gets the global converter singleton.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.Conversions.NullConverter">
            <summary>
            A null implementation of a converter that does not actually support
            converting values.
            </summary>
            <remarks>
            <para>
            Consequently <see cref="M:Gallio.Runtime.Conversions.IConverter.CanConvert(System.Type,System.Type)"/> returns
            false whenever a conversion would be required.
            </para>
            </remarks>
        </member>
        <member name="F:Gallio.Runtime.Conversions.NullConverter.Instance">
            <summary>
            Gets a singleton instance of the null converter.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Conversions.NullConverter.GetConversionCostImpl(System.Type,System.Type)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Conversions.NullConverter.ConvertImpl(System.Object,System.Type)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runtime.Conversions.ObjectToStringConversionRule">
            <summary>
            Converts an <see cref="T:System.Object"/> into a <see cref="T:System.String"/> using <see cref="M:System.Object.ToString"/>.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Conversions.ObjectToStringConversionRule.GetConversionCost(System.Type,System.Type,Gallio.Runtime.Conversions.IConverter)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Conversions.ObjectToStringConversionRule.Convert(System.Object,System.Type,Gallio.Runtime.Conversions.IConverter,System.Boolean)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runtime.Conversions.RuleBasedConverter">
            <summary>
            A rule-based converter uses a set of <see cref="T:Gallio.Runtime.Conversions.IConversionRule"/>s to
            perform conversions.
            </summary>
            <remarks>
            <para>
            It caches the best path it determines for each conversion
            so that it only needs to compute the conversion cost once.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Runtime.Conversions.RuleBasedConverter.#ctor(Gallio.Runtime.Extensibility.IExtensionPoints,Gallio.Runtime.Conversions.IConversionRule[])">
            <summary>
            Creates a rule-based converter.
            </summary>
            <param name="extensionPoints">The entry point for framework extensions.</param>
            <param name="rules">The rules to use.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="rules"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Conversions.RuleBasedConverter.GetConversionCostImpl(System.Type,System.Type)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Conversions.RuleBasedConverter.ConvertImpl(System.Object,System.Type)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runtime.Conversions.StringToXmlDocumentConversionRule">
            <summary>
            Converts a <see cref="T:System.String"/> into an <see cref="T:System.Xml.XmlDocument"/> assuming
            the string is valid xml.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Conversions.StringToXmlDocumentConversionRule.GetConversionCost(System.Type,System.Type,Gallio.Runtime.Conversions.IConverter)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Conversions.StringToXmlDocumentConversionRule.Convert(System.Object,System.Type,Gallio.Runtime.Conversions.IConverter,System.Boolean)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runtime.Conversions.XPathNavigableToXPathNavigatorConversionRule">
            <summary>
            Converts <see cref="T:System.Xml.XPath.IXPathNavigable"/> objects to <see cref="T:System.Xml.XPath.XPathNavigator"/> objects.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Conversions.XPathNavigableToXPathNavigatorConversionRule.GetConversionCost(System.Type,System.Type,Gallio.Runtime.Conversions.IConverter)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Conversions.XPathNavigableToXPathNavigatorConversionRule.Convert(System.Object,System.Type,Gallio.Runtime.Conversions.IConverter,System.Boolean)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runtime.Conversions.XPathNavigatorToStringConversionRule">
            <summary>
            Converts an <see cref="T:System.Xml.XPath.XPathNavigator"/> into a <see cref="T:System.String"/> by value or outer xml.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Conversions.XPathNavigatorToStringConversionRule.GetConversionCost(System.Type,System.Type,Gallio.Runtime.Conversions.IConverter)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Conversions.XPathNavigatorToStringConversionRule.Convert(System.Object,System.Type,Gallio.Runtime.Conversions.IConverter,System.Boolean)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runtime.Conversions.XPathNavigatorToXmlSerializableTypeConversionRule">
            <summary>
            Converts <see cref="T:System.Xml.XPath.XPathNavigator"/> objects to XML serializable
            objects that have the <see cref="T:System.Xml.Serialization.XmlTypeAttribute"/>.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Conversions.XPathNavigatorToXmlSerializableTypeConversionRule.GetConversionCost(System.Type,System.Type,Gallio.Runtime.Conversions.IConverter)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Conversions.XPathNavigatorToXmlSerializableTypeConversionRule.Convert(System.Object,System.Type,Gallio.Runtime.Conversions.IConverter,System.Boolean)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runtime.Debugging.AttachDebuggerResult">
            <summary>
            Describes different possible outcomes from attaching a debugger to a process.
            </summary>
        </member>
        <member name="F:Gallio.Runtime.Debugging.AttachDebuggerResult.CouldNotAttach">
            <summary>
            The debugger could not attach to the process.
            </summary>
        </member>
        <member name="F:Gallio.Runtime.Debugging.AttachDebuggerResult.AlreadyAttached">
            <summary>
            The debugger was already attached to the process.
            </summary>
        </member>
        <member name="F:Gallio.Runtime.Debugging.AttachDebuggerResult.Attached">
            <summary>
            The debugger has just been attached to the process.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.Debugging.DefaultDebuggerManager">
            <summary>
            Default implementation of a debugger manager.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.Debugging.IDebuggerManager">
            <summary>
            Obtains a reference to a debugger.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Debugging.IDebuggerManager.GetDebugger(Gallio.Runtime.Debugging.DebuggerSetup,Gallio.Runtime.Logging.ILogger)">
            <summary>
            Gets a debugger.
            </summary>
            <param name="debuggerSetup">The debugger setup options.</param>
            <param name="logger">The logger for writing progress and failure messages.</param>
            <returns>The debugger.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="debuggerSetup"/> or <paramref name="logger"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Debugging.DefaultDebuggerManager.GetDebugger(Gallio.Runtime.Debugging.DebuggerSetup,Gallio.Runtime.Logging.ILogger)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runtime.Debugging.DetachDebuggerResult">
            <summary>
            Describes different possible outcomes from detaching a debugger from a process.
            </summary>
        </member>
        <member name="F:Gallio.Runtime.Debugging.DetachDebuggerResult.CouldNotDetach">
            <summary>
            The debugger could not be detached from the process and remains attached.
            </summary>
        </member>
        <member name="F:Gallio.Runtime.Debugging.DetachDebuggerResult.AlreadyDetached">
            <summary>
            The debugger was already detached from the process.
            </summary>
        </member>
        <member name="F:Gallio.Runtime.Debugging.DetachDebuggerResult.Detached">
            <summary>
            The debugger has just been detached from the process.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.Debugging.IDebugger">
            <summary>
            Provides control over a debugger.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Debugging.IDebugger.IsAttachedToProcess(System.Diagnostics.Process)">
            <summary>
            Returns true if the debugger is attached to a process.
            </summary>
            <param name="process">The process to which the debugger should be attached.</param>
            <returns>True if the debugger is already attached.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="process"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Debugging.IDebugger.AttachToProcess(System.Diagnostics.Process)">
            <summary>
            Attaches the debugger to a process.
            </summary>
            <param name="process">The process to which the debugger should be attached.</param>
            <returns>A result code to indicate whether the debugger was attached.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="process"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Debugging.IDebugger.DetachFromProcess(System.Diagnostics.Process)">
            <summary>
            Detaches the debugger from a process.
            </summary>
            <remarks>
            <para>
            Does nothing if the process was not attached.
            </para>
            </remarks>
            <param name="process">The process from which the debugger should be detached.</param>
            <returns>A result code to indicate whether the debugger was detached.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="process"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Debugging.IDebugger.LaunchProcess(System.Diagnostics.ProcessStartInfo)">
            <summary>
            Launches a process and attaches the debugger.
            </summary>
            <param name="processStartInfo">The process start information.</param>
            <returns>The process that was started, or null if the process could not be launched with the debugger.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="processStartInfo"/> is null.</exception>
        </member>
        <member name="T:Gallio.Runtime.Debugging.NullDebugger">
            <summary>
            A null implementation of a debugger.  All services return do nothing results.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Debugging.NullDebugger.IsAttachedToProcess(System.Diagnostics.Process)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Debugging.NullDebugger.AttachToProcess(System.Diagnostics.Process)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Debugging.NullDebugger.DetachFromProcess(System.Diagnostics.Process)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Debugging.NullDebugger.LaunchProcess(System.Diagnostics.ProcessStartInfo)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Common.Reflection.AssemblyBinding">
            <summary>
            An assembly binding specifies the name and location of an assembly as well
            as some properties to control how the .Net assembly loader resolves
            particular assembly versions.
            </summary>
        </member>
        <member name="M:Gallio.Common.Reflection.AssemblyBinding.#ctor(System.Reflection.AssemblyName)">
            <summary>
            Creates an assembly binding with the specified assembly name.
            </summary>
            <param name="assemblyName">The assembly name.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="assemblyName"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Reflection.AssemblyBinding.#ctor(System.Reflection.Assembly)">
            <summary>
            Creates an assembly binding using the name and codebase of the specified assembly.
            </summary>
            <param name="assembly">The assembly.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="assembly"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Reflection.AssemblyBinding.AddBindingRedirect(Gallio.Common.Reflection.AssemblyBinding.BindingRedirect)">
            <summary>
            Adds a binding redirect.
            </summary>
            <param name="bindingRedirect">The binding redirect to add.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="bindingRedirect"/> is null.</exception>
        </member>
        <member name="P:Gallio.Common.Reflection.AssemblyBinding.AssemblyName">
            <summary>
            Gets the assembly name.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.AssemblyBinding.CodeBase">
            <summary>
            Gets or sets the assembly codebase, or null if unknown.
            </summary>
            <exception cref="T:System.ArgumentException">Thrown if <paramref name="value"/>
            is not null and is not an absolute Uri.</exception>
        </member>
        <member name="P:Gallio.Common.Reflection.AssemblyBinding.QualifyPartialName">
            <summary>
            Gets or sets whether the assembly full name should be used to qualify all partial
            name references to the assembly.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.AssemblyBinding.ApplyPublisherPolicy">
            <summary>
            Gets or sets whether to apply the assembly publisher policy.  Default is <c>true</c>.
            </summary>
        </member>
        <member name="P:Gallio.Common.Reflection.AssemblyBinding.BindingRedirects">
            <summary>
            Gets the mutable list of assembly binding redirects.
            </summary>
        </member>
        <member name="T:Gallio.Common.Reflection.AssemblyBinding.BindingRedirect">
            <summary>
            Specifies an old version range for an assembly binding redirect.
            </summary>
        </member>
        <member name="M:Gallio.Common.Reflection.AssemblyBinding.BindingRedirect.#ctor(System.String)">
            <summary>
            Creates an assembly binding redirect.
            </summary>
            <remarks>
            <para>
            Accepts a version number like "1.2.3.4" or a range like "1.0.0.0-1.1.65535.65535".
            </para>
            </remarks>
            <param name="oldVersion">The old assembly version number or range.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="oldVersion"/> is null.</exception>
            <exception cref="T:System.ArgumentException">Thrown if <paramref name="oldVersion"/> is not a valid version or version range.</exception>
        </member>
        <member name="P:Gallio.Common.Reflection.AssemblyBinding.BindingRedirect.OldVersion">
            <summary>
            Gets the old assembly version number or range.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.Extensibility.CachingPluginLoader">
            <summary>
            A caching plugin loader.
            </summary>
            <remarks>
            <para>
            The cache alleviates the need to search, load and preprocess individual plugin files
            by storing an aggregate summary of the plugin files into the per-user local
            application data path based on a hash of the plugin paths and preprocessor constants.
            </para>
            </remarks>
        </member>
        <member name="T:Gallio.Runtime.Extensibility.PluginLoader">
            <summary>
            Loads plugins by recursively scanning plugin paths in the file system
            for *.plugin files that contain plugin metadata.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.Extensibility.IPluginLoader">
            <summary>
            Populates a plugin catalog with plugin metadata.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.IPluginLoader.AddPluginPath(System.String)">
            <summary>
            Adds a plugin path.
            </summary>
            <remarks>
            <para>
            If the plugin path refers to a specific plugin file, it will be loaded when
            the catalog is populated.  Otherwise if the plugin path refers to a directory,
            then the directory will be scanned for *.plugin files when the catalog is
            populated.
            </para>
            </remarks>
            <param name="pluginPath">The plugin path to add.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="pluginPath"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.IPluginLoader.AddPluginXml(System.String,System.IO.DirectoryInfo)">
            <summary>
            Adds a plugin definition as XML.
            </summary>
            <param name="pluginXml">The plugin xml.</param>
            <param name="baseDirectory">The plugin base directory.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="pluginXml"/>
            or <paramref name="baseDirectory"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.IPluginLoader.DefinePreprocessorConstant(System.String)">
            <summary>
            Defines a constant to be used by the preprocessor.
            </summary>
            <param name="constant">The constant name.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="constant"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.IPluginLoader.PopulateCatalog(Gallio.Runtime.Extensibility.IPluginCatalog,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
            <summary>
            Populates a catalog with plugin metadata derived from the currently
            registered plugin data sources.
            </summary>
            <param name="catalog">The plugin catalog to populate.</param>
            <param name="progressMonitor"></param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="catalog"/>
            is null.</exception>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.IPluginLoader.InstallationId">
            <summary>
            Gets or sets the installation id.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.PluginLoader.#ctor">
            <summary>
            Creates a file system plugin loader.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.PluginLoader.AddPluginPath(System.String)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Extensibility.PluginLoader.AddPluginXml(System.String,System.IO.DirectoryInfo)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Extensibility.PluginLoader.DefinePreprocessorConstant(System.String)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Extensibility.PluginLoader.PopulateCatalog(Gallio.Runtime.Extensibility.IPluginCatalog,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Extensibility.PluginLoader.LoadPlugins(Gallio.Runtime.Extensibility.PluginLoader.PluginCallback,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
            <summary>
            Loads plugins by recursively searching the plugin paths for *.plugin files.
            </summary>
            <param name="pluginCallback">A function that receives plugin metadata as it
              becomes available, not null.</param>
            <param name="progressMonitor"></param>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.PluginLoader.InstallationId">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Runtime.Extensibility.PluginLoader.PluginPaths">
            <summary>
            Gets the list of plugin paths.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.PluginLoader.InitialPreprocessorConstants">
            <summary>
            Gets the collection of initial preprocessor constants.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.Extensibility.PluginLoader.PluginCallback">
            <summary>
            The plugin callback type used by <see cref="M:Gallio.Runtime.Extensibility.PluginLoader.LoadPlugins(Gallio.Runtime.Extensibility.PluginLoader.PluginCallback,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)"/>.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.CachingPluginLoader.#ctor">
            <summary>
            Creates a caching plugin loader.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.CachingPluginLoader.ClearCurrentUserPluginCache">
            <summary>
            Clears the plugin cache belonging to the current user.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.CachingPluginLoader.LoadPlugins(Gallio.Runtime.Extensibility.PluginLoader.PluginCallback,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runtime.Extensibility.ComponentRegistration">
            <summary>
            Provides information used to register a component.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.ComponentRegistration.#ctor(Gallio.Runtime.Extensibility.IPluginDescriptor,Gallio.Runtime.Extensibility.IServiceDescriptor,System.String,Gallio.Common.Reflection.TypeName)">
            <summary>
            Creates a component registration.
            </summary>
            <param name="plugin">The plugin to which the component will belong.</param>
            <param name="service">The service implemented by the component.</param>
            <param name="componentId">The component id.</param>
            <param name="componentTypeName">The component type name, or null to use the default component type specified by the service.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="plugin"/>, <paramref name="service"/>,
            <paramref name="componentId"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.ComponentRegistration.Plugin">
            <summary>
            Gets or sets the plugin to which the component will belong.
            </summary>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.ComponentRegistration.Service">
            <summary>
            Gets or sets the service implemented by the component.
            </summary>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.ComponentRegistration.ComponentId">
            <summary>
            Gets or sets the component id.
            </summary>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.ComponentRegistration.ComponentTypeName">
            <summary>
            Gets or sets the component type name, or null to use the default component type specified by the service.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.ComponentRegistration.ComponentProperties">
            <summary>
            Gets or sets the component properties.
            </summary>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.ComponentRegistration.ComponentHandlerFactory">
            <summary>
            Gets or sets the component handler factory.
            </summary>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.ComponentRegistration.TraitsProperties">
            <summary>
            Gets or sets the traits properties.
            </summary>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="T:Gallio.Runtime.Extensibility.DefaultObjectDependencyResolver">
            <summary>
            Resolves object dependencies that are discovered during dependency injection
            with the help of a service locator, a resource locator, and a built in set of conversions.
            </summary>
            <remarks>
            <para>
            To resolve dependencies, the object dependency resolver applies the following rules:
            <list type="bullet">
            <item>If a configuration argument value was provided then it is converted to an instance
            of the parameter type (see below).</item>
            <item>If the service locator can resolve a service of the parameter type, or if the parameter type
            is an array and the service locator can resolve one or more services of the array's element type,
            then those services will be resolved and injected.</item>
            <item>If the parameter type is <see cref="T:Gallio.Runtime.Extensibility.ComponentHandle`2"/> or an array
            of that type and the service locator can resolve an a service of the requested type,
            then the associated services will be resolve and injected as component handles.</item>
            </list>
            </para>
            <para>
            To convert string configuration arguments to the parameter type, the object factory applies the following rules:
            <list type="bullet">
            <item>If the parameter type is an array type, then the configuration argument is split on semicolons
            (';') and each part is independently converted to a value of the array's element type and then
            packaged into an array.</item>
            <item>If the parameter type is a string, then no conversion is required so the value is used as-is.</item>
            <item>If the value looks like "${component.id}" and there is a component registered with the specified
            component id that satisfies the service described by the parameter type then that component is injected.
            Similarly if the parameter is of type <see cref="T:Gallio.Runtime.Extensibility.ComponentHandle`2"/> and the component
            implements the requested service type then a handle of that component is injected.</item>
            <item>If the parameter type is an enum then the value is parsed to a 
            value of that enum type, case-insensitively.</item>
            <item>If the parameter type is <see cref="T:System.Version"/> then the value is parsed into a version.</item>
            <item>If the parameter type is <see cref="T:System.Guid"/> then the value is parsed into a guid.</item>
            <item>If the parameter type is <see cref="T:Gallio.Common.Condition"/> then the value is parsed into a condition.</item>
            <item>If the parameter type is <see cref="T:System.Drawing.Image"/> then the value is treated as a Uri
            to a resource and the image is loaded from the resource locator.</item>
            <item>If the parameter type is <see cref="T:System.Drawing.Icon"/> then the value is treated as a Uri
            to a resource and the icon is loaded from the resource locator.</item>
            <item>If the parameter type is <see cref="T:System.IO.FileInfo"/> or <see cref="T:System.IO.DirectoryInfo"/> then the
            value is treated as a Uri to a file or directory resource and an instance of the
            appropriate file/directory info type is injected using the full path obtained from the resource locator.</item>
            <item>If the parameter type is <see cref="T:System.Reflection.Assembly"/> then the value is interpreted the name of an assembly which is loaded using <see cref="M:System.Reflection.Assembly.Load(System.String)"/>.</item>
            <item>If the parameter type is <see cref="T:System.Type"/> then the value is interpereted as the assembly-qualified name of a type which is obtained using <see cref="M:System.Type.GetType(System.String)"/>.</item>
            <item>If the parameter type is <see cref="T:System.Reflection.AssemblyName"/> then the value is parsed into an assembly name.</item>
            <item>If the parameter type is <see cref="T:Gallio.Common.Reflection.AssemblySignature"/> then the value is parsed into an assembly signature.</item>
            <item>Otherwise, the value is converted using <see cref="M:System.Convert.ChangeType(System.Object,System.Type)"/> if possible.</item>
            </list>
            </para>
            <para>
            For information about how the Uri is resolved to a path, see <see cref="M:Gallio.Runtime.Extensibility.IResourceLocator.ResolveResourcePath(System.Uri)"/>.
            </para>
            </remarks>
        </member>
        <member name="T:Gallio.Runtime.Extensibility.IObjectDependencyResolver">
            <summary>
            Resolves object dependencies and parameters.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.IObjectDependencyResolver.ResolveDependency(System.String,System.Type,System.String)">
            <summary>
            Resolves a dependency.
            </summary>
            <param name="parameterName">The parameter name.</param>
            <param name="parameterType">The parameter type.</param>
            <param name="configurationArgument">An optional configuration argument that supplies a value
            for the parameter or describes the means by which the value should be obtained, or null if none.</param>
            <returns>An object that describes whether the dependency was satisfied and the value it was assigned.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="parameterName"/> or 
            <paramref name="parameterType"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.DefaultObjectDependencyResolver.#ctor(Gallio.Runtime.Extensibility.IServiceLocator,Gallio.Runtime.Extensibility.IResourceLocator)">
            <summary>
            Creates an object dependency resolver.
            </summary>
            <param name="serviceLocator">The service locator.</param>
            <param name="resourceLocator">The resource locator.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="serviceLocator"/>,
            <paramref name="resourceLocator"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.DefaultObjectDependencyResolver.ResolveDependency(System.String,System.Type,System.String)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runtime.Extensibility.DefaultPlugin">
            <summary>
            Default plugin implementation.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.Extensibility.IPlugin">
            <summary>
            Represents an activated plugin.
            </summary>
            <remarks>
            <para>
            The runtime provides a default implementation of this interface for plugins.
            However, plugins authors may choose to provide a custom implementation
            to control the plugin lifecycle and provide additional services to the
            runtime.  Initialization concerns should be performed by the constructor
            and disposal should be performed by implementing <see cref="T:System.IDisposable"/>.
            </para>
            <example>
            <code><![CDATA[
            public class MyPlugin : IPlugin, IDisposable
            {
                // The constructor may specify dependencies on other services
                // that are required for plugin activation.  The services will
                // be injected as with other components.
                public MyPlugin(IService1 service1, IService2 service2)
                {
                    // custom initialization logic
                }
                
                public void Dispose()
                {
                    // custom dispose logic
                }
            }
            ]]></code>
            </example>
            <para>
            </para>
            </remarks>
        </member>
        <member name="T:Gallio.Runtime.Extensibility.DependencyResolution">
            <summary>
            Specifies the result of an attempt to resolve a dependency.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.DependencyResolution.Satisfied(System.Object)">
            <summary>
            Creates a result object that represents a satisfied dependency.
            </summary>
            <param name="value">The value provided for the dependency.</param>
            <returns>The result object.</returns>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.DependencyResolution.Unsatisfied">
            <summary>
            Creates a result object that represents an unsatisfied dependency.
            </summary>
            <returns>The result object.</returns>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.DependencyResolution.IsSatisfied">
            <summary>
            Returns true if the dependency was satisfied.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.DependencyResolution.Value">
            <summary>
            Returns the value used to satisfy the dependency.
            </summary>
            <exception cref="T:System.InvalidOperationException">Thrown if the dependency was not satisfied.</exception>
        </member>
        <member name="T:Gallio.Runtime.Extensibility.ComponentHandle">
            <summary>
            A handle for a lazily instantiated component and its traits.
            </summary>
            <seealso cref="T:Gallio.Runtime.Extensibility.ComponentHandle`2"/>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.ComponentHandle.CreateInstance(Gallio.Runtime.Extensibility.IComponentDescriptor)">
            <summary>
            Creates an instance of a typed component handle for the specified descriptor.
            </summary>
            <param name="componentDescriptor">The component descriptor.</param>
            <returns>The appropriately typed component handle.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="componentDescriptor"/> is null.</exception>
            <exception cref="T:Gallio.Runtime.RuntimeException">Thrown if the described component's service type or traits type cannot be resolved.</exception>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.ComponentHandle.CreateInstance``2(Gallio.Runtime.Extensibility.IComponentDescriptor)">
            <summary>
            Creates an instance of a typed component handle for the specified descriptor.
            </summary>
            <param name="componentDescriptor">The component descriptor.</param>
            <returns>The appropriately typed component handle.</returns>
            <typeparam name="TService">The service type.</typeparam>
            <typeparam name="TTraits">The traits type.</typeparam>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="componentDescriptor"/> is null.</exception>
            <exception cref="T:System.ArgumentException">Thrown if the described component's service or traits are not compatible with a handle of this type.</exception>
            <exception cref="T:Gallio.Runtime.RuntimeException">Thrown if the described component's service type or traits type cannot be resolved.</exception>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.ComponentHandle.CreateStub``2(System.String,``0,``1)">
            <summary>
            Creates an instance of a typed component handle for the specified component and traits instance.
            The component handle will have a stub component descriptor for testing purposes.
            </summary>
            <param name="componentId">The component id.</param>
            <param name="component">The component instance.</param>
            <param name="traits">The component traits.</param>
            <typeparam name="TService">The service type.</typeparam>
            <typeparam name="TTraits">The traits type.</typeparam>
            <returns>The appropriately typed component handle.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="componentId"/>, <paramref name="component"/>
            or <paramref name="traits"/> is null.</exception>
            <exception cref="T:System.ArgumentException">Thrown if the described component's service or traits are not compatible with a handle of this type.</exception>
            <exception cref="T:Gallio.Runtime.RuntimeException">Thrown if the described component's service type or traits type cannot be resolved.</exception>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.ComponentHandle.IsComponentHandleType(System.Type)">
            <summary>
            Returns true if the specified type is a component handle type.
            </summary>
            <param name="type">The type to examine.</param>
            <returns>True if the type is a component handle type.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="type"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.ComponentHandle.GetComponent">
            <summary>
            Gets the component instance.
            </summary>
            <returns>The component instance.</returns>
            <exception cref="T:Gallio.Runtime.RuntimeException">Thrown if the component cannot be resolved.</exception>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.ComponentHandle.GetTraits">
            <summary>
            Gets the component traits.
            </summary>
            <returns>The component traits.</returns>
            <exception cref="T:Gallio.Runtime.RuntimeException">Thrown if the traits cannot be resolved.</exception>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.ComponentHandle.ToString">
            <summary>
            Returns the component's id.
            </summary>
            <returns>The component id.</returns>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.ComponentHandle.Descriptor">
            <summary>
            Gets the component descriptor.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.ComponentHandle.Id">
            <summary>
            Gets the component id.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.ComponentHandle.ServiceType">
            <summary>
            Gets the service type.
            </summary>
            <returns>The service type.</returns>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.ComponentHandle.TraitsType">
            <summary>
            Gets the traits type.
            </summary>
            <returns>The traits type.</returns>
        </member>
        <member name="T:Gallio.Runtime.Extensibility.IComponentDescriptor">
            <summary>
            Describes a component.
            </summary>
            <remarks>
            <para>
            The descriptor is used to query declarative information about the component
            and to load associated code and resources.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.IComponentDescriptor.ResolveComponentType">
            <summary>
            Resolves the component type.
            </summary>
            <remarks>
            <para>
            This method may cause plugin resources to be loaded.  The caller
            should therefore assume that the operation is potentially time-consuming
            and may fail.
            </para>
            </remarks>
            <returns>The component type.</returns>
            <exception cref="T:Gallio.Runtime.RuntimeException">Thrown if an error occurs during resolution.</exception>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.IComponentDescriptor.ResolveComponentHandler">
            <summary>
            Resolves the component handler.
            </summary>
            <remarks>
            <para>
            This method may cause plugin resources to be loaded.  The caller
            should therefore assume that the operation is potentially time-consuming
            and may fail.
            </para>
            </remarks>
            <returns>The component handler.</returns>
            <exception cref="T:Gallio.Runtime.RuntimeException">Thrown if an error occurs during resolution.</exception>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.IComponentDescriptor.ResolveComponent">
            <summary>
            Resolves the component instance.
            </summary>
            <remarks>
            <para>
            This method may cause plugin resources to be loaded.  The caller
            should therefore assume that the operation is potentially time-consuming
            and may fail.
            </para>
            </remarks>
            <returns>The component instance.</returns>
            <exception cref="T:Gallio.Runtime.RuntimeException">Thrown if an error occurs during resolution.</exception>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.IComponentDescriptor.ResolveTraitsHandler">
            <summary>
            Resolves the traits handler.
            </summary>
            <remarks>
            <para>
            This method may cause plugin resources to be loaded.  The caller
            should therefore assume that the operation is potentially time-consuming
            and may fail.
            </para>
            </remarks>
            <returns>The traits handler.</returns>
            <exception cref="T:Gallio.Runtime.RuntimeException">Thrown if an error occurs during resolution.</exception>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.IComponentDescriptor.ResolveTraits">
            <summary>
            Resolves the component traits.
            </summary>
            <remarks>
            <para>
            This method may cause plugin resources to be loaded.  The caller
            should therefore assume that the operation is potentially time-consuming
            and may fail.
            </para>
            <para>
            The specific subclass of <see cref="T:Gallio.Runtime.Extensibility.Traits"/> returned by this method is
            detemined by the service's traits type as obtained by <see cref="M:Gallio.Runtime.Extensibility.IServiceDescriptor.ResolveTraitsType"/>.
            </para>
            </remarks>
            <returns>The component traits.</returns>
            <exception cref="T:Gallio.Runtime.RuntimeException">Thrown if an error occurs during resolution.</exception>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.IComponentDescriptor.Plugin">
            <summary>
            Gets the descriptor of the plugin that provides the component.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.IComponentDescriptor.Service">
            <summary>
            Gets the descriptor of the service implemented by the component.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.IComponentDescriptor.ComponentId">
            <summary>
            Gets the component's id.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.IComponentDescriptor.ComponentTypeName">
            <summary>
            Gets the component type name.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.IComponentDescriptor.ComponentHandlerFactory">
            <summary>
            Gets the component handler factory.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.IComponentDescriptor.ComponentProperties">
            <summary>
            Gets the parameter properties.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.IComponentDescriptor.TraitsProperties">
            <summary>
            Gets the traits properties.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.IComponentDescriptor.IsDisabled">
            <summary>
            Returns true if the plugin that provides the component is disabled
            or if the service implemented by the component is disabled.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.IComponentDescriptor.DisabledReason">
            <summary>
            Gets the reason the component was disabled.
            </summary>
            <exception cref="T:System.InvalidOperationException">Thrown if <see cref="P:Gallio.Runtime.Extensibility.IComponentDescriptor.IsDisabled"/> is false.</exception>
        </member>
        <member name="T:Gallio.Runtime.Extensibility.ComponentHandle`2">
            <summary>
            A typed handle for a lazily instantiated component and its traits.
            </summary>
            <typeparam name="TService">The type of service implemented by the component.</typeparam>
            <typeparam name="TTraits">The type of traits provided by the component.</typeparam>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.ComponentHandle`2.GetComponent">
            <summary>
            Gets the component instance.
            </summary>
            <returns>The component instance.</returns>
            <exception cref="T:Gallio.Runtime.RuntimeException">Thrown if the component cannot be resolved.</exception>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.ComponentHandle`2.GetTraits">
            <summary>
            Gets the component traits.
            </summary>
            <returns>The component traits.</returns>
            <exception cref="T:Gallio.Runtime.RuntimeException">Thrown if the traits cannot be resolved.</exception>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.ComponentHandle`2.ServiceType">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Runtime.Extensibility.ComponentHandle`2.TraitsType">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runtime.Extensibility.RegistryResourceLocator">
            <summary>
            A resource locator implementation based on a registry.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.Extensibility.IResourceLocator">
            <summary>
            Locates resources owned by plugins and other components.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.IResourceLocator.ResolveResourcePath(System.Uri)">
            <summary>
            Resolves a resource Uri to a full path.
            </summary>
            <remarks>
            <list type="bullet">
            <item>file: Maps to the file's local path.</item>
            <item>plugin: Maps to a resource within the plugin's base directory, specified in the form: "plugin://Plugin.Id/RelativePath/To/Resource.txt".</item>
            </list>
            </remarks>
            <param name="resourceUri">The resource Uri.</param>
            <returns>The resolved full path of the resource.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="resourceUri"/> is null.</exception>
            <exception cref="T:Gallio.Runtime.RuntimeException">Thrown if the uri cannot be resolved.</exception>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.RegistryResourceLocator.#ctor(Gallio.Runtime.Extensibility.IRegistry)">
            <summary>
            Creates a resource locator based on a registry.
            </summary>
            <param name="registry">The registry.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="registry"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.RegistryResourceLocator.ResolveResourcePath(System.Uri)">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Runtime.Extensibility.RegistryResourceLocator.Registry">
            <summary>
            Gets the registry.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.Extensibility.InstanceHandlerFactory">
            <summary>
            A handler factory for pre-manufactured instances.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.Extensibility.IHandlerFactory">
            <summary>
            A handler factory creates handlers for activating plugin, component and traits instances.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.IHandlerFactory.CreateHandler(Gallio.Runtime.Extensibility.IObjectDependencyResolver,System.Type,System.Type,Gallio.Common.Collections.PropertySet)">
            <summary>
            Creates a handler.
            </summary>
            <param name="dependencyResolver">The object dependency resolver, not null.</param>
            <param name="contractType">The contract type: the handler will ensure that the objects it produces are subclasses or implementations of the contract type.</param>
            <param name="objectType">The object type: the handler will produce objects that are (possibly decorated) instances of the object type.</param>
            <param name="properties">The configuration properties for the objects produced by the handler.</param>
            <returns>The handler.</returns>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.InstanceHandlerFactory.#ctor(System.Object)">
            <summary>
            Creates an instance handler factory given a particular pre-manufactured instance.
            </summary>
            <param name="instance">The instance to be returned by the handler.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="instance"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.InstanceHandlerFactory.CreateHandler(Gallio.Runtime.Extensibility.IObjectDependencyResolver,System.Type,System.Type,Gallio.Common.Collections.PropertySet)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runtime.Extensibility.IHandler">
            <summary>
            A handler activates instances of a plugin, component or traits object.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.IHandler.Activate">
            <summary>
            Activates the instance.
            </summary>
            <returns>The activated instance.</returns>
        </member>
        <member name="T:Gallio.Runtime.Extensibility.IPluginCatalog">
            <summary>
            A plugin catalog describes the configuration of a collection of plugins that
            are to be installed in a registry.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.IPluginCatalog.AddPlugin(Gallio.Runtime.Extensibility.Schema.Plugin,System.IO.DirectoryInfo)">
            <summary>
            Adds a plugin to the catalog.
            </summary>
            <param name="plugin">The plugin to add.</param>
            <param name="baseDirectory">The plugin base directory.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="plugin"/>
            or <paramref name="baseDirectory"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.IPluginCatalog.ApplyTo(Gallio.Runtime.Extensibility.IRegistry)">
            <summary>
            Registers the contents of the catalog into the specified registry.
            </summary>
            <param name="registry">The registry.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="registry"/> is null.</exception>
        </member>
        <member name="T:Gallio.Runtime.Extensibility.ObjectFactory">
            <summary>
            Builds objects and performs dependency injection via a service locator.
            </summary>
            <remarks>
            <para>
            The object factory examines the object type to discover required and optional
            dependencies that are to be injected.  Required dependencies are specified by
            the parameters of the constructor with the most parmaeters.  Optional dependencies
            are specified by settable properties.
            </para>
            <para>
            If an optional dependency cannot be resolved then that dependency is ignored.
            If any required dependency cannot be satisifed then the object construction fails and a
            <see cref="T:Gallio.Runtime.RuntimeException"/> is thrown.
            </para>
            <para>
            To resolve each dependency, the factory consults an <see cref="T:Gallio.Runtime.Extensibility.IObjectDependencyResolver"/>
            given the name of the parameter, its type, and the optional configuration property value specified
            in the object property set whose key matches the dependency parameter name case insensitively.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.ObjectFactory.#ctor(Gallio.Runtime.Extensibility.IObjectDependencyResolver,System.Type,Gallio.Common.Collections.PropertySet)">
            <summary>
            Creates an object factory.
            </summary>
            <param name="dependencyResolver">The dependency resolver.</param>
            <param name="objectType">The object type.</param>
            <param name="properties">The object properties.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="dependencyResolver"/>,
            <paramref name="objectType"/> or <paramref name="properties"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.ObjectFactory.CreateInstance">
            <summary>
            Creates an instance of the object described by this factory.
            </summary>
            <returns>The instance, not null.</returns>
        </member>
        <member name="T:Gallio.Runtime.Extensibility.PluginCatalog">
            <summary>
            A plugin catalog implementation that verifies plugin dependencies and assembly references.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.PluginCatalog.#ctor">
            <summary>
            Creates an empty plugin catalog.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.PluginCatalog.AddPlugin(Gallio.Runtime.Extensibility.Schema.Plugin,System.IO.DirectoryInfo)">
            <inheritodc />
        </member>
        <member name="M:Gallio.Runtime.Extensibility.PluginCatalog.ApplyTo(Gallio.Runtime.Extensibility.IRegistry)">
            <inheritodc />
        </member>
        <member name="T:Gallio.Common.Xml.XmlPreprocessor">
            <summary>
            Preprocesses XML based on the presence of processing instructions.
            </summary>
            <remarks>
            <para>
            Recognizes the following directives:
            </para>
            <list type="bullet">
            <item><code>&lt;?ifdef CONSTANT?&gt;</code>: Begins conditional block whose contents are output only if CONSTANT is defined.</item>
            <item><code>&lt;?ifndef CONSTANT?&gt;</code>: Begins conditional block whose contents are output only if CONSTANT is not defined.</item>
            <item><code>&lt;?else?&gt;</code>: Begins alternative conditional block whose contents are output only if the previous ifdef/ifndef condition was not met.</item>
            <item><code>&lt;?endif?&gt;</code>: Ends conditional block.</item>
            <item><code>&lt;?define CONSTANT?&gt;</code>: Defines a new constant.</item>
            </list>
            </remarks>
        </member>
        <member name="M:Gallio.Common.Xml.XmlPreprocessor.#ctor">
            <summary>
            Creates an Xml preprocessor.
            </summary>
        </member>
        <member name="M:Gallio.Common.Xml.XmlPreprocessor.Define(System.String)">
            <summary>
            Defines a preprocessor constant.
            </summary>
            <param name="constant">The constant.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="constant"/>
            is null.</exception>
        </member>
        <member name="M:Gallio.Common.Xml.XmlPreprocessor.IsDefined(System.String)">
            <summary>
            Returns true if the specified preprocessor constant is defined.
            </summary>
            <param name="constant">The constant.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="constant"/>
            is null.</exception>
            <returns>True if the constant is defined.</returns>
        </member>
        <member name="M:Gallio.Common.Xml.XmlPreprocessor.Preprocess(System.Xml.XmlReader,System.Xml.XmlWriter)">
            <summary>
            Preprocesses and copies an Xml document from a reader into a writer.
            </summary>
            <param name="xmlReader">The Xml reader.</param>
            <param name="xmlWriter">The Xml writer.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="xmlReader"/>
            or <paramref name="xmlWriter"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Thrown if the input Xml is malformed
            such as if it contains unbalanced ifdef/endif pairs.</exception>
        </member>
        <member name="T:Gallio.Runtime.Extensibility.ServiceRegistration">
            <summary>
            Provides information used to register a service.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.ServiceRegistration.#ctor(Gallio.Runtime.Extensibility.IPluginDescriptor,System.String,Gallio.Common.Reflection.TypeName)">
            <summary>
            Creates a service registration.
            </summary>
            <param name="plugin">The plugin to which the service will belong.</param>
            <param name="serviceId">The service id.</param>
            <param name="serviceTypeName">The service type name.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="plugin"/>, <paramref name="serviceId"/>
            or <paramref name="serviceTypeName"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.ServiceRegistration.Plugin">
            <summary>
            Gets or sets the plugin to which the service will belong.
            </summary>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.ServiceRegistration.ServiceId">
            <summary>
            Gets or sets the service id.
            </summary>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.ServiceRegistration.ServiceTypeName">
            <summary>
            Gets or sets the service type name.
            </summary>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.ServiceRegistration.DefaultComponentTypeName">
            <summary>
            Gets or sets the default component type name, or null if none.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.ServiceRegistration.TraitsHandlerFactory">
            <summary>
            Gets or sets the traits handler factory.
            </summary>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="T:Gallio.Runtime.Extensibility.IComponents">
            <summary>
            Provides a view of registered components along with methods for resolving them.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.IComponents.FindByServiceId(System.String)">
            <summary>
            Gets descriptors for all components that implement a service with a given id.
            </summary>
            <param name="serviceId">The service id.</param>
            <returns>The list of component descriptors.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="serviceId"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.IComponents.FindByServiceType(System.Type)">
            <summary>
            Gets descriptors for all components that implement a service of a given type.
            </summary>
            <param name="serviceType">The service type.</param>
            <returns>The list of component descriptors.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="serviceType"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.IComponents.FindByServiceTypeName(Gallio.Common.Reflection.TypeName)">
            <summary>
            Gets descriptors for all components that implement a service of a given type by name.
            </summary>
            <param name="serviceTypeName">The service type name.</param>
            <returns>The list of component descriptors.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="serviceTypeName"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.IComponents.Item(System.String)">
            <summary>
            Gets a component descriptor by its id, or null if not found.
            </summary>
            <param name="componentId">The component id.</param>
            <returns>The component descriptor, or null if not found.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="componentId"/> is null.</exception>
        </member>
        <member name="T:Gallio.Runtime.Extensibility.PluginRegistration">
            <summary>
            Provides information used to register a plugin.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.PluginRegistration.#ctor(System.String,Gallio.Common.Reflection.TypeName,System.IO.DirectoryInfo)">
            <summary>
            Creates a plugin registration.
            </summary>
            <param name="pluginId">The plugin id.</param>
            <param name="pluginTypeName">The plugin type name.</param>
            <param name="baseDirectory">The plugin base directory.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <aramref name="pluginId"/>,
            <paramref name="pluginTypeName"/> or <paramref name="baseDirectory"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.PluginRegistration.PluginId">
            <summary>
            Gets or sets the plugin id.
            </summary>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.PluginRegistration.PluginTypeName">
            <summary>
            Gets or sets the plugin type name.
            </summary>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.PluginRegistration.BaseDirectory">
            <summary>
            Gets or sets the base directory.
            </summary>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.PluginRegistration.EnableCondition">
            <summary>
            Gets or sets a condition governing the activation of the plugin,
            or null if there is no condition.  The plugin will be disabled if a
            condition is provided but is not satisfied.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.PluginRegistration.RecommendedInstallationPath">
            <summary>
            Gets or sets the recommended installation path for the plugin files relative to
            the runtime installation directory, or null if there is no preference.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.PluginRegistration.FilePaths">
            <summary>
            Gets or sets the paths of files that belong to the plugin relative to the
            plugin base directory.
            </summary>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.PluginRegistration.AssemblyBindings">
            <summary>
            Gets or sets the list of plugin assembly bindings.
            </summary>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.PluginRegistration.ProbingPaths">
            <summary>
            Gets or sets the list of probing paths in which to
            attempt to locate referenced assemblies.
            </summary>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.PluginRegistration.PluginDependencies">
            <summary>
            Gets or sets the list of plugin dependencies.
            </summary>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.PluginRegistration.PluginProperties">
            <summary>
            Gets or sets the plugin properties.
            </summary>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.PluginRegistration.TraitsProperties">
            <summary>
            Gets or sets the traits properties.
            </summary>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.PluginRegistration.PluginHandlerFactory">
            <summary>
            Gets or sets the plugin handler factory.
            </summary>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="T:Gallio.Runtime.Extensibility.Registry">
            <summary>
            Provides a configurable registry of plugins, services and components.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.Extensibility.IRegistry">
            <summary>
            A registry of plugins, services and components.
            </summary>
            <remarks>
            <para>
            The registry is used to enumerate and resolve plugins, services and components
            in the system.  There is typically one registry singleton in any given process
            which holds references to all other components as required.
            </para>
            <para>
            At this time, the components managed by the runtime all have a singleton
            lifecycle.  This behavior may change in the future to permit the construction
            of transient or context-dependent components.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.IRegistry.RegisterPlugin(Gallio.Runtime.Extensibility.PluginRegistration)">
            <summary>
            Registers a plugin and returns its descriptor.
            </summary>
            <param name="pluginRegistration">The plugin registration.</param>
            <returns>The new plugin descriptor.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="pluginRegistration"/> is null.</exception>
            <exception cref="T:System.ArgumentException">Thrown if there is already a plugin registered with the same id
            or if the registration contains errors.</exception>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.IRegistry.RegisterService(Gallio.Runtime.Extensibility.ServiceRegistration)">
            <summary>
            Registers a service and returns its descriptor.
            </summary>
            <param name="serviceRegistration">The service registration.</param>
            <returns>The new service descriptor.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="serviceRegistration"/> is null.</exception>
            <exception cref="T:System.ArgumentException">Thrown if there is already a service registered with the same id or type name
            or if the plugin does not belong to this registry.</exception>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.IRegistry.RegisterComponent(Gallio.Runtime.Extensibility.ComponentRegistration)">
            <summary>
            Registers a component and returns its descriptor.
            </summary>
            <param name="componentRegistration">The component registration.</param>
            <returns>The new component descriptor.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="componentRegistration"/> is null.</exception>
            <exception cref="T:System.ArgumentException">Thrown if there is already a component registered with the same id
            or if the plugin or service does not belong to this registry or if the component implements a service
            provided by a plugin that was not listed as a plugin dependency of the component's plugin.</exception>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.IRegistry.Plugins">
            <summary>
            Gets a view of all registered plugins.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.IRegistry.Components">
            <summary>
            Gets a view of all registered components.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.IRegistry.Services">
            <summary>
            Gets a view of all registered services.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.IRegistry.ServiceLocator">
            <summary>
            Gets a service locator based on the contents of the registry.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.IRegistry.ResourceLocator">
            <summary>
            Gets a resource locator based on the contents of the registry.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.Registry.#ctor">
            <summary>
            Creates an empty registry.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.Registry.Dispose">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Extensibility.Registry.RegisterPlugin(Gallio.Runtime.Extensibility.PluginRegistration)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Extensibility.Registry.RegisterService(Gallio.Runtime.Extensibility.ServiceRegistration)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Extensibility.Registry.RegisterComponent(Gallio.Runtime.Extensibility.ComponentRegistration)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Extensibility.Registry.Dispose(System.Boolean)">
            <summary>
            Disposes the registry.
            </summary>
            <param name="disposing">True if disposing.</param>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.Registry.Plugins">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Runtime.Extensibility.Registry.Components">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Runtime.Extensibility.Registry.Services">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Runtime.Extensibility.Registry.ServiceLocator">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Runtime.Extensibility.Registry.ResourceLocator">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runtime.Extensibility.IPlugins">
            <summary>
            Provides a view of registered plugins along with methods for resolving them.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.IPlugins.Item(System.String)">
            <summary>
            Gets a plugin descriptor by its id, or null if not found.
            </summary>
            <param name="pluginId">The plugin id.</param>
            <returns>The plugin descriptor, or null if not found.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="pluginId"/> is null.</exception>
        </member>
        <member name="T:Gallio.Runtime.Extensibility.RegistryData">
            <summary>
            Stores the data managed by the registry so that it can be safely guarded by a reader/writer lock.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.Extensibility.IServices">
            <summary>
            Provides a view of registered components along with methods for resolving them.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.IServices.GetByServiceType(System.Type)">
            <summary>
            Gets a service descriptor by its type, or null if not found.
            </summary>
            <param name="serviceType">The service type.</param>
            <returns>The service descriptor, or null if not found.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="serviceType"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.IServices.GetByServiceTypeName(Gallio.Common.Reflection.TypeName)">
            <summary>
            Gets a service descriptor by its type name, or null if not found.
            </summary>
            <param name="serviceTypeName">The service type name.</param>
            <returns>The service descriptor, or null if not found.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="serviceTypeName"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.IServices.Item(System.String)">
            <summary>
            Gets a service descriptor by its id, or null if not found.
            </summary>
            <param name="serviceId">The service id.</param>
            <returns>The service descriptor, or null if not found.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="serviceId"/> is null.</exception>
        </member>
        <member name="T:Gallio.Runtime.Extensibility.IServiceDescriptor">
            <summary>
            Describes a service.
            </summary>
            <remarks>
            <para>
            The descriptor is used to query declarative information about the service
            and to load associated code and resources.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.IServiceDescriptor.ResolveServiceType">
            <summary>
            Resolves the service type.
            </summary>
            <remarks>
            <para>
            The service type is usually an interface but it may also be an abstract class.
            </para>
            <para>
            This method may cause plugin resources to be loaded.  The caller
            should therefore assume that the operation is potentially time-consuming
            and may fail.
            </para>
            </remarks>
            <returns>The service type.</returns>
            <exception cref="T:Gallio.Runtime.RuntimeException">Thrown if an error occurs during resolution.</exception>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.IServiceDescriptor.ResolveTraitsType">
            <summary>
            Resolves the traits type.
            </summary>
            <remarks>
            <para>
            The traits type is a subclass of <see cref="T:Gallio.Runtime.Extensibility.Traits"/>.
            </para>
            <para>
            This method may cause plugin resources to be loaded.  The caller
            should therefore assume that the operation is potentially time-consuming
            and may fail.
            </para>
            <para>
            This method effectively performs two lookups.  First it resolves the service
            type then it searches for the associated <see cref="T:Gallio.Runtime.Extensibility.TraitsAttribute"/> on
            the service.  Consequently it is not possible to obtain the traits type
            name without loading the assembly in which the service and traits have been defined.
            </para>
            </remarks>
            <returns>The traits type.</returns>
            <exception cref="T:Gallio.Runtime.RuntimeException">Thrown if an error occurs during resolution.</exception>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.IServiceDescriptor.Plugin">
            <summary>
            Gets the descriptor of the plugin that provides the service.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.IServiceDescriptor.ServiceId">
            <summary>
            Gets the service's id.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.IServiceDescriptor.ServiceTypeName">
            <summary>
            Gets the service type name.
            </summary>
            <remarks>
            <para>
            The service type is usually an interface but it may also be an abstract class.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.IServiceDescriptor.DefaultComponentTypeName">
            <summary>
            Gets the default component type name for this service, or null if there is no default component type.
            </summary>
            <remarks>
            <para>
            The default type must be a concrete class.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.IServiceDescriptor.TraitsHandlerFactory">
            <summary>
            Gets the traits handler factory.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.IServiceDescriptor.IsDisabled">
            <summary>
            Returns true if the plugin that provides the service is disabled.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.IServiceDescriptor.DisabledReason">
            <summary>
            Gets the reason the service was disabled.
            </summary>
            <exception cref="T:System.InvalidOperationException">Thrown if <see cref="P:Gallio.Runtime.Extensibility.IServiceDescriptor.IsDisabled"/> is false.</exception>
        </member>
        <member name="T:Gallio.Runtime.Extensibility.IPluginDescriptor">
            <summary>
            Describes a plugin.
            </summary>
            <remarks>
            <para>
            The descriptor is used to query declarative information about the plugin
            and to load associated code and resources.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.IPluginDescriptor.GetSearchPaths(System.String)">
            <summary>
            Gets an enumeration of all absolute paths to be searched in order to find a given resource.
            </summary>
            <remarks>
            <para>
            The enumeration consists of all combinations of the base directory and probing paths, including
            the use of an optional "bin" directory.  For example, if the base directory is "C:\Base", and the
            probing paths list contains "Probing", and we are looking for "resource.dll" then this method will
            return the following paths: "C:\Base\resource.dll", "C:\Base\bin\resource.dll", "C:\Base\Probing\resource.dll"
            and "C:\Base\Probing\bin\resource.dll".
            </para>
            <para>
            If the resource path is absolute then the returned search paths will consist of just that absolute path.
            </para>
            </remarks>
            <param name="resourcePath">The relative or absolute path of the resource to find or null to return
            the paths of the search directories themselves.</param>
            <returns>An enumeration of search paths.</returns>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.IPluginDescriptor.ResolvePluginType">
            <summary>
            Resolves the plugin type.
            </summary>
            <remarks>
            <para>
            The plugin type should be a class that implements <see cref="T:Gallio.Runtime.Extensibility.IPlugin"/>.
            </para>
            <para>
            This method may cause plugin resources to be loaded.  The caller
            should therefore assume that the operation is potentially time-consuming
            and may fail.
            </para>
            </remarks>
            <returns>The plugin type.</returns>
            <exception cref="T:Gallio.Runtime.RuntimeException">Thrown if an error occurs during resolution.</exception>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.IPluginDescriptor.ResolvePluginHandler">
            <summary>
            Resolves the plugin handler.
            </summary>
            <remarks>
            <para>
            This method may cause plugin resources to be loaded.  The caller
            should therefore assume that the operation is potentially time-consuming
            and may fail.
            </para>
            </remarks>
            <returns>The plugin handler.</returns>
            <exception cref="T:Gallio.Runtime.RuntimeException">Thrown if an error occurs during resolution.</exception>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.IPluginDescriptor.ResolvePlugin">
            <summary>
            Resolves the plugin instance.
            </summary>
            <remarks>
            <para>
            This method may cause plugin resources to be loaded.  The caller
            should therefore assume that the operation is potentially time-consuming
            and may fail.
            </para>
            </remarks>
            <returns>The plugin instance.</returns>
            <exception cref="T:Gallio.Runtime.RuntimeException">Thrown if an error occurs during resolution.</exception>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.IPluginDescriptor.ResolveTraitsHandler">
            <summary>
            Resolves the traits handler.
            </summary>
            <remarks>
            <para>
            This method may cause plugin resources to be loaded.  The caller
            should therefore assume that the operation is potentially time-consuming
            and may fail.
            </para>
            </remarks>
            <returns>The traits handler.</returns>
            <exception cref="T:Gallio.Runtime.RuntimeException">Thrown if an error occurs during resolution.</exception>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.IPluginDescriptor.ResolveTraits">
            <summary>
            Resolves the plugin traits.
            </summary>
            <remarks>
            <para>
            This method may cause plugin resources to be loaded.  The caller
            should therefore assume that the operation is potentially time-consuming
            and may fail.
            </para>
            </remarks>
            <returns>The plugin traits.</returns>
            <exception cref="T:Gallio.Runtime.RuntimeException">Thrown if an error occurs during resolution.</exception>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.IPluginDescriptor.Disable(System.String)">
            <summary>
            Disables the plugin.
            </summary>
            <param name="reason">The reason the plugin was disabled.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="reason"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.IPluginDescriptor.PluginId">
            <summary>
            Gets the plugin's id.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.IPluginDescriptor.PluginTypeName">
            <summary>
            Gets the plugin type name.
            </summary>
            <remarks>
            <para>
            The plugin type should be a class that implements <see cref="T:Gallio.Runtime.Extensibility.IPlugin"/>.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.IPluginDescriptor.PluginHandlerFactory">
            <summary>
            Gets the plugin handler factory.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.IPluginDescriptor.BaseDirectory">
            <summary>
            Gets the base directory that contains the plugin's definition and associated resources.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.IPluginDescriptor.AssemblyBindings">
            <summary>
            Gets the list of plugin assembly bindings.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.IPluginDescriptor.PluginProperties">
            <summary>
            Gets the plugin properties.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.IPluginDescriptor.TraitsProperties">
            <summary>
            Gets the traits properties.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.IPluginDescriptor.IsDisabled">
            <summary>
            Returns true if the plugin is disabled.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.IPluginDescriptor.DisabledReason">
            <summary>
            Gets the reason the plugin was disabled.
            </summary>
            <exception cref="T:System.InvalidOperationException">Thrown if <see cref="P:Gallio.Runtime.Extensibility.IPluginDescriptor.IsDisabled"/> is false.</exception>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.IPluginDescriptor.PluginDependencies">
            <summary>
            Gets the list of plugins upon which this plugin depends directly or indirectly.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.IPluginDescriptor.ProbingPaths">
            <summary>
            Gets the list of additional relative or absolute probing paths in which to attempt to locate
            referenced assemblies.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.IPluginDescriptor.EnableCondition">
            <summary>
            Gets a condition governing the activation of the plugin,
            or null if there is no condition.  The plugin will be disabled if a
            condition is provided but is not satisfied.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.IPluginDescriptor.RecommendedInstallationPath">
            <summary>
            Gets the recommended installation path for the plugin files relative to
            the runtime installation directory, or null if there is no preference.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.IPluginDescriptor.FilePaths">
            <summary>
            Gets the paths of files that belong to the plugin relative to the
            plugin base directory.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.Extensibility.PluginTraits">
            <summary>
            Describes the traits of a <see cref="T:Gallio.Runtime.Extensibility.IPlugin"/> component.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.PluginTraits.#ctor(System.String)">
            <summary>
            Creates a plugin traits object.
            </summary>
            <param name="name">The localized display name of the plugin.</param>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.PluginTraits.Name">
            <summary>
            Gets the localized display name of the plugin.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.PluginTraits.Version">
            <summary>
            Gets or sets the plugin version number, or null if none.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.PluginTraits.Icon">
            <summary>
            Gets or sets the plugin icon, or null if none.
            </summary>
            <remarks>
            <para>
            The image should be 32x32 pixels in size.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.PluginTraits.Description">
            <summary>
            Gets or sets the localized plugin description, or null if none.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.Extensibility.SingletonHandlerFactory">
            <summary>
            A handler factory for singletons.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.SingletonHandlerFactory.CreateHandler(Gallio.Runtime.Extensibility.IObjectDependencyResolver,System.Type,System.Type,Gallio.Common.Collections.PropertySet)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runtime.Extensibility.TraitsAttribute">
            <summary>
            Specifies the traits class associated with a service contract.
            </summary>
            <remarks>
            <para>
            This attribute enables the runtime to bind a service contract to its traits.
            If no attribute is specified then it is presumed that the service has an empty
            traits class (represented by <see cref="T:Gallio.Runtime.Extensibility.Traits"/>).
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.TraitsAttribute.#ctor(System.Type)">
            <summary>
            Binds a traits interface to a service contract.
            </summary>
            <param name="traitsType">The traits type, a subclass of <see cref="T:Gallio.Runtime.Extensibility.Traits"/>.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="traitsType"/>
            is null.</exception>
            <exception cref="T:System.ArgumentException">Thrown if <paramref name="traitsType"/>
            is not a class or if it is not derived from <see cref="T:Gallio.Runtime.Extensibility.Traits"/>.</exception>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.TraitsAttribute.TraitsType">
            <summary>
            Gets the traits type, a subclass of <see cref="T:Gallio.Runtime.Extensibility.Traits"/>.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.FileTypes.AssemblyFileTypeRecognizer">
            <summary>
            Recognizes .Net assemblies by looking for the CLR header within the file.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.FileTypes.IFileTypeRecognizer">
            <summary>
            Recognizes the type of a file.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.FileTypes.IFileTypeRecognizer.IsRecognizedFile(Gallio.Runtime.FileTypes.IFileInspector)">
            <summary>
            Returns true if the recognizer recognizes the file described by the file inspector.
            </summary>
            <remarks>
            <para>
            This method is guaranteed to be called only when the file already matches the
            constraints described by the file type recognizer's traits.  For example, if the
            traits specify a file name regular expression then the recognizer will only be
            called if the file in question actually has a matching name.
            </para>
            </remarks>
            <param name="fileInspector">The file inspector, never null.</param>
            <returns>True if the file type was recognized.</returns>
        </member>
        <member name="M:Gallio.Runtime.FileTypes.AssemblyFileTypeRecognizer.IsRecognizedFile(Gallio.Runtime.FileTypes.IFileInspector)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runtime.FileTypes.FileType">
            <summary>
            Describes a file type.
            </summary>
            <remarks>
            <para>
            File type objects are unique and can be compared for equality by reference.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Runtime.FileTypes.FileType.#ctor(System.String,System.String,Gallio.Runtime.FileTypes.FileType)">
            <summary>
            Creates a file type object.
            </summary>
            <param name="id">The file type id.</param>
            <param name="description">The file type description.</param>
            <param name="superType">The super type of the file type, or null if none.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="id"/> 
            or <paramref name="description"/> is null.</exception>
            <exception cref="T:System.ArgumentException">Thrown if <paramref name="id"/> is empty.</exception>
        </member>
        <member name="M:Gallio.Runtime.FileTypes.FileType.IsSameOrSubtypeOf(Gallio.Runtime.FileTypes.FileType)">
            <summary>
            Returns true if this file type is equal to or is a subtype of some other type.
            </summary>
            <param name="otherType">The other type.</param>
            <returns>True if the condition is satisfied.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="otherType"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.FileTypes.FileType.IsSameOrSubtypeOfAny(Gallio.Runtime.FileTypes.FileType[])">
            <summary>
            Returns true if this file type is equal to or is a subtype of any of the specified other types.
            </summary>
            <param name="otherTypes">The other types.</param>
            <returns>True if the condition is satisfied.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="otherTypes"/> is null
            or contains a null.</exception>
        </member>
        <member name="M:Gallio.Runtime.FileTypes.FileType.ToString">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Runtime.FileTypes.FileType.Id">
            <summary>
            Gets the id of the file type.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.FileTypes.FileType.Description">
            <summary>
            Gets the file type description.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.FileTypes.FileType.SuperType">
            <summary>
            Gets the super type of this file type, or null if none.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.FileTypes.FileTypeManager">
            <summary>
            A built-in file type manager that identified file types based on a
            set of registered <see cref="T:Gallio.Runtime.FileTypes.IFileTypeRecognizer"/> components.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.FileTypes.IFileTypeManager">
            <summary>
            Provides services related to determining the type of a file.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.FileTypes.IFileTypeManager.GetFileTypeById(System.String)">
            <summary>
            Gets information about a registered file type by its id.
            </summary>
            <param name="id">The file type id.</param>
            <returns>The associated file type information, or null if not found.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="id"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.FileTypes.IFileTypeManager.GetFileTypes">
            <summary>
            Gets information about all registered file types.
            </summary>
            <returns>The list of all registered file types.</returns>
        </member>
        <member name="M:Gallio.Runtime.FileTypes.IFileTypeManager.IdentifyFileType(System.IO.FileInfo)">
            <summary>
            Identifies the type of a file by consulting the set of all registered file types.
            </summary>
            <param name="fileInfo">The file to identify.</param>
            <returns>The file type of the file, or <see cref="P:Gallio.Runtime.FileTypes.IFileTypeManager.UnknownFileType"/> type if unidentified.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="fileInfo"/> is null.</exception>
            <exception cref="T:System.IO.IOException">Thrown if the file cannot be accessed.</exception>
        </member>
        <member name="M:Gallio.Runtime.FileTypes.IFileTypeManager.IdentifyFileType(Gallio.Runtime.FileTypes.IFileInspector)">
            <summary>
            Identifies the type of a file by consulting the set of all registered file types.
            </summary>
            <param name="fileInspector">The file inspector for the file to identify.</param>
            <returns>The file type of the file, or <see cref="P:Gallio.Runtime.FileTypes.IFileTypeManager.UnknownFileType"/> type if unidentified.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="fileInspector"/> is null.</exception>
            <exception cref="T:System.IO.IOException">Thrown if the file cannot be accessed.</exception>
        </member>
        <member name="M:Gallio.Runtime.FileTypes.IFileTypeManager.IdentifyFileType(System.IO.FileInfo,System.Collections.Generic.IEnumerable{Gallio.Runtime.FileTypes.FileType})">
            <summary>
            Identifies the type of a file by consulting only the specified list of file type candidates.
            </summary>
            <remarks>
            <para>
            This is more efficient when we are interested in only a few possible results.
            </para>
            </remarks>
            <param name="fileInfo">The file to identify.</param>
            <param name="candidates">The collection of specific file type candidates to consider.</param>
            <returns>The file type of the file, or <see cref="P:Gallio.Runtime.FileTypes.IFileTypeManager.UnknownFileType"/> type if unidentified
            among the candidates considered.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="fileInfo"/> or
            <paramref name="candidates"/> is null.</exception>
            <exception cref="T:System.IO.IOException">Thrown if the file cannot be accessed.</exception>
        </member>
        <member name="M:Gallio.Runtime.FileTypes.IFileTypeManager.IdentifyFileType(Gallio.Runtime.FileTypes.IFileInspector,System.Collections.Generic.IEnumerable{Gallio.Runtime.FileTypes.FileType})">
            <summary>
            Identifies the type of a file by consulting only the specified list of file type candidates.
            </summary>
            <remarks>
            <para>
            This is more efficient when we are interested in only a few possible results.
            </para>
            </remarks>
            <param name="fileInspector">The file inspector for the file to identify.</param>
            <param name="candidates">The collection of specific file type candidates to consider.</param>
            <returns>The file type of the file, or <see cref="P:Gallio.Runtime.FileTypes.IFileTypeManager.UnknownFileType"/> type if unidentified
            among the candidates considered.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="fileInspector"/> or
            <paramref name="candidates"/> is null.</exception>
            <exception cref="T:System.IO.IOException">Thrown if the file cannot be accessed.</exception>
        </member>
        <member name="P:Gallio.Runtime.FileTypes.IFileTypeManager.UnknownFileType">
            <summary>
            Gets a file type used to identify a file of unknown type.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.FileTypes.FileTypeManager.#ctor(Gallio.Runtime.Extensibility.ComponentHandle{Gallio.Runtime.FileTypes.IFileTypeRecognizer,Gallio.Runtime.FileTypes.FileTypeRecognizerTraits}[])">
            <summary>
            Creates a file type manager.
            </summary>
            <param name="fileTypeRecognizerHandles">The file type recognizer component handles.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="fileTypeRecognizerHandles"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.FileTypes.FileTypeManager.GetFileTypeById(System.String)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.FileTypes.FileTypeManager.GetFileTypes">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.FileTypes.FileTypeManager.IdentifyFileType(System.IO.FileInfo)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.FileTypes.FileTypeManager.IdentifyFileType(Gallio.Runtime.FileTypes.IFileInspector)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.FileTypes.FileTypeManager.IdentifyFileType(System.IO.FileInfo,System.Collections.Generic.IEnumerable{Gallio.Runtime.FileTypes.FileType})">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.FileTypes.FileTypeManager.IdentifyFileType(Gallio.Runtime.FileTypes.IFileInspector,System.Collections.Generic.IEnumerable{Gallio.Runtime.FileTypes.FileType})">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Runtime.FileTypes.FileTypeManager.UnknownFileType">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runtime.FileTypes.IFileInspector">
            <summary>
            Provides a mechanism for inspecting the metadata and contents of a particular file.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.FileTypes.IFileInspector.TryGetFileInfo(System.IO.FileInfo@)">
            <summary>
            Tries to get the file info associated with the original path of the file.
            </summary>
            <param name="fileInfo">Returns the file info when available, or null otherwise.</param>
            <returns>True if the file info was available.</returns>
        </member>
        <member name="M:Gallio.Runtime.FileTypes.IFileInspector.TryGetContents(System.String@)">
            <summary>
            Tries to get the contents of the file as a string. 
            </summary>
            <param name="contents">Returns the file contents when available, or null otherwise.</param>
            <returns>True if the file contents were available.</returns>
        </member>
        <member name="M:Gallio.Runtime.FileTypes.IFileInspector.TryGetStream(System.IO.Stream@)">
            <summary>
            Tries to get the file stream opened for reading.
            </summary>
            <remarks>
            <para>
            The caller does not need to close the stream; it will be automatically
            released by the file inspector when finished.
            </para>
            </remarks>
            <param name="stream">Returns the file stream when available, or null otherwise.</param>
            <returns>True if the file stream was available.</returns>
        </member>
        <member name="T:Gallio.Runtime.FileTypes.FileTypeRecognizerTraits">
            <summary>
            Provides metadata about a <see cref="T:Gallio.Runtime.FileTypes.IFileTypeRecognizer"/>.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.FileTypes.FileTypeRecognizerTraits.#ctor(System.String,System.String)">
            <summary>
            Creates traits for a file type recognizer.
            </summary>
            <param name="id">The file type id.</param>
            <param name="description">The file type description.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="id"/> or
            <paramref name="description"/> is null.</exception>
            <exception cref="T:System.ArgumentException">Thrown if <paramref name="id"/> is empty.</exception>
        </member>
        <member name="P:Gallio.Runtime.FileTypes.FileTypeRecognizerTraits.Id">
            <summary>
            Gets the file type id.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.FileTypes.FileTypeRecognizerTraits.Description">
            <summary>
            Gets the file type description.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.FileTypes.FileTypeRecognizerTraits.SuperTypeId">
            <summary>
            Gets or sets the id of the file type, or null if none.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.FileTypes.FileTypeRecognizerTraits.FileNameRegex">
            <summary>
            Specifies a regular expression used to identify the type of a file by its name,
            or null if none.  The matching is performed case-insensitively.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.FileTypes.FileTypeRecognizerTraits.ContentsRegex">
            <summary>
            Specifies a regular expression used to identify the type of a file by its contents,
            or null if none.  The matching is performed case-insensitively.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.FileTypes.LazyFileInspector">
            <summary>
            A file inspector that opens a file only on demand as needed.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.FileTypes.LazyFileInspector.#ctor(System.IO.FileInfo)">
            <summary>
            Creates a file inspector for the file describe the specified file info object.
            </summary>
            <param name="fileInfo">The file to inspect.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="fileInfo"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.FileTypes.LazyFileInspector.Dispose">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.FileTypes.LazyFileInspector.TryGetFileInfo(System.IO.FileInfo@)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.FileTypes.LazyFileInspector.TryGetContents(System.String@)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.FileTypes.LazyFileInspector.TryGetStream(System.IO.Stream@)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.FileTypes.LazyFileInspector.Dispose(System.Boolean)">
            <summary>
            Disposes the inspector.
            </summary>
            <param name="disposing">True if <see cref="M:Gallio.Runtime.FileTypes.LazyFileInspector.Dispose"/> was called directly.</param>
        </member>
        <member name="T:Gallio.Runtime.FileTypes.SimpleFileTypeRecognizer">
            <summary>
            A simple file type recognizer that does not perform any filtering
            beyond that which is already specified by its associated traits.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.FileTypes.SimpleFileTypeRecognizer.IsRecognizedFile(Gallio.Runtime.FileTypes.IFileInspector)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runtime.Formatting.BooleanFormattingRule">
            <summary>
            A formatting rule for <see cref="T:System.Boolean"/>.
            </summary>
            <remarks>
            <para>
            Formats values as "true" or "false".
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Runtime.Formatting.BooleanFormattingRule.GetPriority(System.Type)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Formatting.BooleanFormattingRule.Format(System.Object,Gallio.Runtime.Formatting.IFormatter)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runtime.Formatting.ByteFormattingRule">
            <summary>
            A formatting rule for <see cref="T:System.Byte"/>.
            </summary>
            <remarks>
            <para>
            Formats values as two digit hex values like "0xa5".
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Runtime.Formatting.ByteFormattingRule.GetPriority(System.Type)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Formatting.ByteFormattingRule.Format(System.Object,Gallio.Runtime.Formatting.IFormatter)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runtime.Formatting.CharFormattingRule">
            <summary>
            A formatting rule for <see cref="T:System.Char"/>.
            </summary>
            <remarks>
            <para>
            Formats values as literals like: "'x'" or "'\n'".
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Runtime.Formatting.CharFormattingRule.GetPriority(System.Type)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Formatting.CharFormattingRule.Format(System.Object,Gallio.Runtime.Formatting.IFormatter)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runtime.Formatting.ConvertToStringFormattingRule">
            <summary>
            A default formatting rule for objects based on using the <see cref="T:Gallio.Runtime.Conversions.IConverter"/>
            to convert the value to a string.
            </summary>
            <remarks>
            <para>
            This rule has minimum priority so that
            all other formatting rules should override it in principle.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Runtime.Formatting.ConvertToStringFormattingRule.#ctor(Gallio.Runtime.Conversions.IConverter)">
            <summary>
            Creates a conversion to string formatting rule.
            </summary>
            <param name="converter">The converter to use.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="converter"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Formatting.ConvertToStringFormattingRule.GetPriority(System.Type)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Formatting.ConvertToStringFormattingRule.Format(System.Object,Gallio.Runtime.Formatting.IFormatter)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runtime.Formatting.DateTimeFormattingRule">
            <summary>
            A formatting rule for <see cref="T:System.DateTime"/>.
            </summary>
            <remarks>
            <para>
            Formats values in the invariant round-trip format like: "yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fffffffzz".
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Runtime.Formatting.DateTimeFormattingRule.GetPriority(System.Type)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Formatting.DateTimeFormattingRule.Format(System.Object,Gallio.Runtime.Formatting.IFormatter)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runtime.Formatting.DBNullFormattingRule">
            <summary>
            A formatting rule for <see cref="T:System.DBNull"/>.
            </summary>
            <remarks>
            <para>
            Formats values as "dbnull".
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Runtime.Formatting.DBNullFormattingRule.GetPriority(System.Type)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Formatting.DBNullFormattingRule.Format(System.Object,Gallio.Runtime.Formatting.IFormatter)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runtime.Formatting.DecimalFormattingRule">
            <summary>
            A formatting rule for <see cref="T:System.Decimal"/>.
            </summary>
            <remarks>
            <para>
            Formats values like: "5.6m".
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Runtime.Formatting.DecimalFormattingRule.GetPriority(System.Type)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Formatting.DecimalFormattingRule.Format(System.Object,Gallio.Runtime.Formatting.IFormatter)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runtime.Formatting.DictionaryEntryFormattingRule">
            <summary>
            A formatting rule for <see cref="T:System.Collections.DictionaryEntry"/>.
            </summary>
            <remarks>
            <para>
            Formats values as "\"key\": \"value\"".
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Runtime.Formatting.DictionaryEntryFormattingRule.GetPriority(System.Type)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Formatting.DictionaryEntryFormattingRule.Format(System.Object,Gallio.Runtime.Formatting.IFormatter)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runtime.Formatting.DoubleFormattingRule">
            <summary>
            A formatting rule for <see cref="T:System.Double"/>.
            </summary>
            <remarks>
            <para>
            Formats values like: "5.6".
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Runtime.Formatting.DoubleFormattingRule.GetPriority(System.Type)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Formatting.DoubleFormattingRule.Format(System.Object,Gallio.Runtime.Formatting.IFormatter)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runtime.Formatting.EnumerableFormattingRule">
            <summary>
            A formatting rule for <see cref="T:System.Collections.IEnumerable"/>.
            </summary>
            <remarks>
            <para>
            Formats values as "[1, 2, 3]".
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Runtime.Formatting.EnumerableFormattingRule.GetPriority(System.Type)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Formatting.EnumerableFormattingRule.Format(System.Object,Gallio.Runtime.Formatting.IFormatter)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runtime.Formatting.Formatter">
            <summary>
            Service locator for <see cref="T:Gallio.Runtime.Formatting.IFormatter"/>.
            </summary>
            <remarks>
            <para>
            Handles the case where the runtime is not initialized by returning a
            <see cref="T:Gallio.Runtime.Formatting.StubFormatter"/>.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Runtime.Formatting.Formatter.Instance">
            <summary>
            Gets the global formatter singleton.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.Formatting.FormattingRulePriority">
            <summary>
            Typical <see cref="T:Gallio.Runtime.Formatting.IFormattingRule"/> priority values to use as guidelines.
            </summary>
        </member>
        <member name="F:Gallio.Runtime.Formatting.FormattingRulePriority.Default">
            <summary>
            The default formatting rule priority.
            </summary>
            <remarks>
            <para>
            A rule with this priority will be overridden by all other matching rules.
            </para>
            </remarks>
            <value><see cref="F:System.Int32.MaxValue"/></value>
        </member>
        <member name="F:Gallio.Runtime.Formatting.FormattingRulePriority.Generic">
            <summary>
            Generic rule priority.
            </summary>
            <remarks>
            <para>
            Represents a generic rule that can represent objects
            of any type structurally.
            </para>
            </remarks>
            <value>-20</value>
        </member>
        <member name="F:Gallio.Runtime.Formatting.FormattingRulePriority.Fallback">
            <summary>
            Fallback rule priority.  
            </summary>
            <remarks>
            <para>
            Represents a rule to be applied if the typical case fails.
            </para>
            </remarks>
            <value>-10</value>
        </member>
        <member name="F:Gallio.Runtime.Formatting.FormattingRulePriority.Typical">
            <summary>
            Typical rule priority.  
            </summary>
            <remarks>
            <para>
            This is a good starting point for rule priorities.
            </para>
            </remarks>
            <value>0</value>
        </member>
        <member name="F:Gallio.Runtime.Formatting.FormattingRulePriority.Better">
            <summary>
            A better than typical rule.  
            </summary>
            <remarks>
            <para>
            This value should be used for cases where the typical rule is not quite precise enough.
            </para>
            </remarks>
            <value>10</value>
        </member>
        <member name="F:Gallio.Runtime.Formatting.FormattingRulePriority.Best">
            <summary>
            The best possible formatting rule priority.  
            </summary>
            <remarks>
            <para>
            A rule with this priority will override all other matching rules.
            </para>
            </remarks>
            <value><see cref="F:System.Int32.MaxValue"/></value>
        </member>
        <member name="T:Gallio.Runtime.Formatting.IntegerFormattingRule">
            <summary>
            A formatting rule for <see cref="T:System.Int16"/>, <see cref="T:System.Int32"/>, <see cref="T:System.Int64"/>,
            <see cref="T:System.UInt16"/>, <see cref="T:System.UInt32"/>, and <see cref="T:System.UInt64"/>.
            </summary>
            <remarks>
            <para>
            Formats values like: "5", "123", "-12".
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Runtime.Formatting.IntegerFormattingRule.GetPriority(System.Type)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Formatting.IntegerFormattingRule.Format(System.Object,Gallio.Runtime.Formatting.IFormatter)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runtime.Formatting.KeyValuePairFormattingRule">
            <summary>
            A formatting rule for <see cref="T:System.Collections.Generic.KeyValuePair`2"/>.
            </summary>
            <remarks>
            <para>
            Formats values as "\"key\": \"value\"".
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Runtime.Formatting.KeyValuePairFormattingRule.GetPriority(System.Type)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Formatting.KeyValuePairFormattingRule.Format(System.Object,Gallio.Runtime.Formatting.IFormatter)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runtime.Formatting.RuleBasedFormatter">
            <summary>
            A rule-based formatter uses a set of <see cref="T:Gallio.Runtime.Formatting.IFormattingRule"/>s to
            format values appropriately.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Formatting.RuleBasedFormatter.#ctor(Gallio.Runtime.Extensibility.IExtensionPoints,Gallio.Runtime.Formatting.IFormattingRule[])">
            <summary>
            Creates a rule-based formatter.
            </summary>
            <param name="rules">The rules to use.</param>
            <param name="extensionPoints">The entry point for framework extensions.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="rules"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Formatting.RuleBasedFormatter.Format(System.Object)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runtime.Formatting.SByteFormattingRule">
            <summary>
            A formatting rule for <see cref="T:System.SByte"/>.
            </summary>
            <remarks>
            <para>
            Formats values as two digit signed hex values like "0x55" and "-0x55".
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Runtime.Formatting.SByteFormattingRule.GetPriority(System.Type)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Formatting.SByteFormattingRule.Format(System.Object,Gallio.Runtime.Formatting.IFormatter)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runtime.Formatting.SingleFormattingRule">
            <summary>
            A formatting rule for <see cref="T:System.Single"/>.
            </summary>
            <remarks>
            <para>
            Formats values like: "5.6f".
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Runtime.Formatting.SingleFormattingRule.GetPriority(System.Type)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Formatting.SingleFormattingRule.Format(System.Object,Gallio.Runtime.Formatting.IFormatter)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runtime.Formatting.StringFormattingRule">
            <summary>
            A formatting rule for <see cref="T:System.String"/>.
            </summary>
            <remarks>
            <para>
            Formats values as literals like: ""abc\ndef"".
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Runtime.Formatting.StringFormattingRule.GetPriority(System.Type)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Formatting.StringFormattingRule.Format(System.Object,Gallio.Runtime.Formatting.IFormatter)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runtime.Formatting.StructuralFormattingRule">
            <summary>
            A formatting rule that describes the structure of objects in terms of their constituent
            properties and fields.
            </summary>
            <remarks>
            <para>
            Describes the object using a format similar to a C# property initializer syntax.
            </para>
            <example>
            {Foo.SomeType: Property = "Value", Field = "Other value"}
            </example>
            </remarks>
        </member>
        <member name="M:Gallio.Runtime.Formatting.StructuralFormattingRule.GetPriority(System.Type)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Formatting.StructuralFormattingRule.Format(System.Object,Gallio.Runtime.Formatting.IFormatter)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runtime.Formatting.StubFormatter">
            <summary>
            A formatter that is used when the runtime is not initialized.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Formatting.StubFormatter.#ctor">
            <summary>
            Creates a stub formatter using only a few built-in formatting rules.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.Formatting.XPathNavigableFormattingRule">
            <summary>
            A formatting rule for <see cref="T:System.Xml.XPath.IXPathNavigable"/>.
            </summary>
            <remarks>
            <para>
            Formats values as "&lt;root /&gt;".
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Runtime.Formatting.XPathNavigableFormattingRule.GetPriority(System.Type)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Formatting.XPathNavigableFormattingRule.Format(System.Object,Gallio.Runtime.Formatting.IFormatter)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runtime.Hosting.ConfigurationFileLocation">
            <summary>
            Specifies where a <see cref="T:Gallio.Runtime.Hosting.IHost"/> should store the temporary configuration file
            it generates when it is being initialized.
            </summary>
        </member>
        <member name="F:Gallio.Runtime.Hosting.ConfigurationFileLocation.None">
            <summary>
            Do not create a configuration file.
            </summary>
        </member>
        <member name="F:Gallio.Runtime.Hosting.ConfigurationFileLocation.Temp">
            <summary>
            Stores the configuration file in the user's temporary directory.
            </summary>
        </member>
        <member name="F:Gallio.Runtime.Hosting.ConfigurationFileLocation.AppBase">
            <summary>
            Stores the configuration file in the application base directory of the hosted components.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.Extensibility.IServiceLocator">
            <summary>
            Resolves runtime services.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.IServiceLocator.Resolve``1">
            <summary>
            Resolves a single component instance that implements a given service type.
            </summary>
            <typeparam name="TService">The service type.</typeparam>
            <returns>The component instance that implements the service.</returns>
            <exception cref="T:Gallio.Runtime.RuntimeException">Thrown if no component was found
            or if a component could not be resolved.</exception>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.IServiceLocator.Resolve(System.Type)">
            <summary>
            Resolves a single component instance that implements a given service type.
            </summary>
            <param name="serviceType">The service type.</param>
            <returns>The component instance that implements the service.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="serviceType"/> is null.</exception>
            <exception cref="T:Gallio.Runtime.RuntimeException">Thrown if no component was found
            or if a component could not be resolved.</exception>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.IServiceLocator.ResolveAll``1">
            <summary>
            Resolves all component instances that implement a given service type.
            </summary>
            <typeparam name="TService">The service type.</typeparam>
            <returns>The list of component instances that implement the service.</returns>
            <exception cref="T:Gallio.Runtime.RuntimeException">Thrown if a component could not be resolved.</exception>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.IServiceLocator.ResolveAll(System.Type)">
            <summary>
            Resolves all component instances that implement a given service type.
            </summary>
            <param name="serviceType">The service type.</param>
            <returns>The list of component instances that implement the service.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="serviceType"/> is null.</exception>
            <exception cref="T:Gallio.Runtime.RuntimeException">Thrown if a component could not be resolved.</exception>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.IServiceLocator.ResolveByComponentId(System.String)">
            <summary>
            Resolves a single component instance with a given component id.
            </summary>
            <param name="componentId">The component id.</param>
            <returns>The component instance.</returns>
            <exception cref="T:Gallio.Runtime.RuntimeException">Thrown if no component was found
            or if a component could not be resolved.</exception>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="componentId"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.IServiceLocator.ResolveHandle``2">
            <summary>
            Resolves a handle for a single component that implements a given service type.
            </summary>
            <typeparam name="TService">The service type.</typeparam>
            <typeparam name="TTraits">The traits type.</typeparam>
            <returns>The handle for the component that implements the service.</returns>
            <exception cref="T:Gallio.Runtime.RuntimeException">Thrown if no component was found
            or if a component could not be resolved.</exception>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.IServiceLocator.ResolveHandle(System.Type)">
            <summary>
            Resolves a handle for a single component that implements a given service type.
            </summary>
            <param name="serviceType">The service type.</param>
            <returns>The handle for the component implements the service.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="serviceType"/> is null.</exception>
            <exception cref="T:Gallio.Runtime.RuntimeException">Thrown if no component was found
            or if a component could not be resolved.</exception>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.IServiceLocator.ResolveAllHandles``2">
            <summary>
            Resolves handles for all components that implement a given service type.
            </summary>
            <typeparam name="TService">The service type.</typeparam>
            <typeparam name="TTraits">The traits type.</typeparam>
            <returns>The list of handles of components that implement the service.</returns>
            <exception cref="T:Gallio.Runtime.RuntimeException">Thrown if a component could not be resolved.</exception>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.IServiceLocator.ResolveAllHandles(System.Type)">
            <summary>
            Resolves handles for all components that implement a given service type.
            </summary>
            <param name="serviceType">The service type.</param>
            <returns>The list of handles of components that implement the service.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="serviceType"/> is null.</exception>
            <exception cref="T:Gallio.Runtime.RuntimeException">Thrown if a component could not be resolved.</exception>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.IServiceLocator.ResolveHandleByComponentId(System.String)">
            <summary>
            Resolves a handle for a single component with a given component id.
            </summary>
            <param name="componentId">The component id.</param>
            <returns>The component handle.</returns>
            <exception cref="T:Gallio.Runtime.RuntimeException">Thrown if no component was found
            or if a component could not be resolved.</exception>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="componentId"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.IServiceLocator.HasService(System.Type)">
            <summary>
            Returns true if the there is a service registered with the specified type and it has not been disabled.
            </summary>
            <remarks>
            <para>
            When this method returns true it does not guarantee that there are any non-disabled components
            registered that implement the service neither does it guarantee that those components can actually
            be resolved without error.
            </para>
            </remarks>
            <param name="serviceType">The service type.</param>
            <returns>True if there is at least one component registered for the given service type.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="serviceType"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.IServiceLocator.HasComponent(System.String)">
            <summary>
            Returns true if there is a component registered with the given component id and it has not been disabled.
            </summary>
            <remarks>
            <para>
            When this method returns true it does not guarantee that the component can actually be resolved
            without error.
            </para>
            </remarks>
            <param name="componentId">The component id.</param>
            <returns>True if there is a component registered with the given component id.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="componentId"/> is null.</exception>
        </member>
        <member name="T:Gallio.Runtime.Logging.DispatchLogger">
            <summary>
            A logger that dispatches log messages via events and listeners.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Logging.DispatchLogger.AddLogListener(Gallio.Runtime.Logging.ILogger)">
            <summary>
            Adds a log listener that will receive log messages dispatched to the runtime logger.
            </summary>
            <param name="logger">The log listener to add.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="logger"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Logging.DispatchLogger.RemoveLogListener(Gallio.Runtime.Logging.ILogger)">
            <summary>
            Removes a log listener so that it will no longer receive log messages dispatched to the runtime logger.
            </summary>
            <param name="logger">The log listener to remove.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="logger"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Logging.DispatchLogger.LogImpl(Gallio.Runtime.Logging.LogSeverity,System.String,Gallio.Common.Diagnostics.ExceptionData)">
            <inheritdoc />
        </member>
        <member name="E:Gallio.Runtime.Logging.DispatchLogger.LogMessage">
            <summary>
            An event that is fired when a log message is received.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.Logging.LogEntrySubmittedEventArgs">
            <summary>
            Event arguments for the <see cref="T:Gallio.Runtime.Logging.DispatchLogger"/>
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Logging.LogEntrySubmittedEventArgs.#ctor(Gallio.Runtime.Logging.LogSeverity,System.String,Gallio.Common.Diagnostics.ExceptionData)">
            <summary>
            Creates a log event.
            </summary>
            <param name="severity">The log severity.</param>
            <param name="message">The log message.</param>
            <param name="exceptionData">The exception data, or null if none.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="message"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runtime.Logging.LogEntrySubmittedEventArgs.Severity">
            <summary>
            Gets the log severity.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.Logging.LogEntrySubmittedEventArgs.Message">
            <summary>
            Gets the log message.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.Logging.LogEntrySubmittedEventArgs.ExceptionData">
            <summary>
            Gets the exception, or null if none.
            </summary>
        </member>
        <member name="T:Gallio.Runner.TestRunnerOptions">
            <summary>
            Provides options that control the operation of the test runner.
            </summary>
        </member>
        <member name="M:Gallio.Runner.TestRunnerOptions.#ctor">
            <summary>
            Creates a default set of options.
            </summary>
        </member>
        <member name="M:Gallio.Runner.TestRunnerOptions.ClearProperties">
            <summary>
            Clears the collection of properties.
            </summary>
        </member>
        <member name="M:Gallio.Runner.TestRunnerOptions.AddProperty(System.String,System.String)">
            <summary>
            Adds a property key/value pair.
            </summary>
            <param name="key">The property key.</param>
            <param name="value">The property value.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="key"/> or <paramref name="value"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Thrown if <paramref name="key"/> is already in the property set.</exception>
        </member>
        <member name="M:Gallio.Runner.TestRunnerOptions.RemoveProperty(System.String)">
            <summary>
            Removes a property key/value pair.
            </summary>
            <param name="key">The property key.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="key"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runner.TestRunnerOptions.Copy">
            <summary>
            Creates a copy of the options.
            </summary>
            <returns>The copy.</returns>
        </member>
        <member name="P:Gallio.Runner.TestRunnerOptions.Properties">
            <summary>
            Gets a read-only collection of configuration properties for the test runner.
            </summary>
        </member>
        <member name="T:Gallio.Runner.Events.TestRunnerEventDispatcher">
            <summary>
            Dispatches test runner events to listeners.
            </summary>
            <remarks>
            <para>
            Each notification function ensures that the event is safely dispatched
            via <see cref="M:Gallio.Common.Policies.EventHandlerPolicy.SafeInvoke(System.EventHandler,System.Object,System.EventArgs)"/>.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Runner.Events.TestRunnerEventDispatcher.NotifyLogEntrySubmitted(Gallio.Runtime.Logging.LogEntrySubmittedEventArgs)">
            <summary>
            Dispatches the <see cref="E:Gallio.Runner.Events.TestRunnerEventDispatcher.LogEntrySubmitted"/> event.
            </summary>
            <param name="e">The event arguments.</param>
        </member>
        <member name="M:Gallio.Runner.Events.TestRunnerEventDispatcher.NotifyMessageReceived(Gallio.Runner.Events.MessageReceivedEventArgs)">
            <summary>
            Dispatches the <see cref="E:Gallio.Runner.Events.TestRunnerEventDispatcher.MessageReceived"/> event.
            </summary>
            <param name="e">The event arguments.</param>
        </member>
        <member name="M:Gallio.Runner.Events.TestRunnerEventDispatcher.NotifyInitializeStarted(Gallio.Runner.Events.InitializeStartedEventArgs)">
            <summary>
            Dispatches the <see cref="E:Gallio.Runner.Events.TestRunnerEventDispatcher.InitializeStarted"/> event.
            </summary>
            <param name="e">The event arguments.</param>
        </member>
        <member name="M:Gallio.Runner.Events.TestRunnerEventDispatcher.NotifyInitializeFinished(Gallio.Runner.Events.InitializeFinishedEventArgs)">
            <summary>
            Dispatches the <see cref="E:Gallio.Runner.Events.TestRunnerEventDispatcher.InitializeFinished"/> event.
            </summary>
            <param name="e">The event arguments.</param>
        </member>
        <member name="M:Gallio.Runner.Events.TestRunnerEventDispatcher.NotifyDisposeStarted(Gallio.Runner.Events.DisposeStartedEventArgs)">
            <summary>
            Dispatches the <see cref="E:Gallio.Runner.Events.TestRunnerEventDispatcher.DisposeStarted"/> event.
            </summary>
            <param name="e">The event arguments.</param>
        </member>
        <member name="M:Gallio.Runner.Events.TestRunnerEventDispatcher.NotifyDisposeFinished(Gallio.Runner.Events.DisposeFinishedEventArgs)">
            <summary>
            Dispatches the <see cref="E:Gallio.Runner.Events.TestRunnerEventDispatcher.DisposeFinished"/> event.
            </summary>
            <param name="e">The event arguments.</param>
        </member>
        <member name="M:Gallio.Runner.Events.TestRunnerEventDispatcher.NotifyExploreStarted(Gallio.Runner.Events.ExploreStartedEventArgs)">
            <summary>
            Dispatches the <see cref="E:Gallio.Runner.Events.TestRunnerEventDispatcher.ExploreStarted"/> event.
            </summary>
            <param name="e">The event arguments.</param>
        </member>
        <member name="M:Gallio.Runner.Events.TestRunnerEventDispatcher.NotifyExploreFinished(Gallio.Runner.Events.ExploreFinishedEventArgs)">
            <summary>
            Dispatches the <see cref="E:Gallio.Runner.Events.TestRunnerEventDispatcher.ExploreFinished"/> event.
            </summary>
            <param name="e">The event arguments.</param>
        </member>
        <member name="M:Gallio.Runner.Events.TestRunnerEventDispatcher.NotifyRunStarted(Gallio.Runner.Events.RunStartedEventArgs)">
            <summary>
            Dispatches the <see cref="E:Gallio.Runner.Events.TestRunnerEventDispatcher.RunStarted"/> event.
            </summary>
            <param name="e">The event arguments.</param>
        </member>
        <member name="M:Gallio.Runner.Events.TestRunnerEventDispatcher.NotifyRunFinished(Gallio.Runner.Events.RunFinishedEventArgs)">
            <summary>
            Dispatches the <see cref="E:Gallio.Runner.Events.TestRunnerEventDispatcher.RunFinished"/> event.
            </summary>
            <param name="e">The event arguments.</param>
        </member>
        <member name="M:Gallio.Runner.Events.TestRunnerEventDispatcher.NotifyTestDiscovered(Gallio.Runner.Events.TestDiscoveredEventArgs)">
            <summary>
            Dispatches the <see cref="E:Gallio.Runner.Events.TestRunnerEventDispatcher.TestDiscovered"/> event.
            </summary>
            <param name="e">The event arguments.</param>
        </member>
        <member name="M:Gallio.Runner.Events.TestRunnerEventDispatcher.NotifyAnnotationDiscovered(Gallio.Runner.Events.AnnotationDiscoveredEventArgs)">
            <summary>
            Dispatches the <see cref="E:Gallio.Runner.Events.TestRunnerEventDispatcher.AnnotationDiscovered"/> event.
            </summary>
            <param name="e">The event arguments.</param>
        </member>
        <member name="M:Gallio.Runner.Events.TestRunnerEventDispatcher.NotifyTestStepStarted(Gallio.Runner.Events.TestStepStartedEventArgs)">
            <summary>
            Dispatches the <see cref="E:Gallio.Runner.Events.TestRunnerEventDispatcher.TestStepStarted"/> event.
            </summary>
            <param name="e">The event arguments.</param>
        </member>
        <member name="M:Gallio.Runner.Events.TestRunnerEventDispatcher.NotifyTestStepFinished(Gallio.Runner.Events.TestStepFinishedEventArgs)">
            <summary>
            Dispatches the <see cref="E:Gallio.Runner.Events.TestRunnerEventDispatcher.TestStepFinished"/> event.
            </summary>
            <param name="e">The event arguments.</param>
        </member>
        <member name="M:Gallio.Runner.Events.TestRunnerEventDispatcher.NotifyTestStepLifecyclePhaseChanged(Gallio.Runner.Events.TestStepLifecyclePhaseChangedEventArgs)">
            <summary>
            Dispatches the <see cref="E:Gallio.Runner.Events.TestRunnerEventDispatcher.TestStepLifecyclePhaseChanged"/> event.
            </summary>
            <param name="e">The event arguments.</param>
        </member>
        <member name="M:Gallio.Runner.Events.TestRunnerEventDispatcher.NotifyTestStepMetadataAdded(Gallio.Runner.Events.TestStepMetadataAddedEventArgs)">
            <summary>
            Dispatches the <see cref="E:Gallio.Runner.Events.TestRunnerEventDispatcher.TestStepMetadataAdded"/> event.
            </summary>
            <param name="e">The event arguments.</param>
        </member>
        <member name="M:Gallio.Runner.Events.TestRunnerEventDispatcher.NotifyTestStepLogAttach(Gallio.Runner.Events.TestStepLogAttachEventArgs)">
            <summary>
            Dispatches the <see cref="E:Gallio.Runner.Events.TestRunnerEventDispatcher.TestStepLogAttach"/> event.
            </summary>
            <param name="e">The event arguments.</param>
        </member>
        <member name="M:Gallio.Runner.Events.TestRunnerEventDispatcher.NotifyTestStepLogStreamWrite(Gallio.Runner.Events.TestStepLogStreamWriteEventArgs)">
            <summary>
            Dispatches the <see cref="E:Gallio.Runner.Events.TestRunnerEventDispatcher.TestStepLogStreamWrite"/> event.
            </summary>
            <param name="e">The event arguments.</param>
        </member>
        <member name="M:Gallio.Runner.Events.TestRunnerEventDispatcher.NotifyTestStepLogStreamEmbed(Gallio.Runner.Events.TestStepLogStreamEmbedEventArgs)">
            <summary>
            Dispatches the <see cref="E:Gallio.Runner.Events.TestRunnerEventDispatcher.TestStepLogStreamEmbed"/> event.
            </summary>
            <param name="e">The event arguments.</param>
        </member>
        <member name="M:Gallio.Runner.Events.TestRunnerEventDispatcher.NotifyTestStepLogStreamBeginSectionBlock(Gallio.Runner.Events.TestStepLogStreamBeginSectionBlockEventArgs)">
            <summary>
            Dispatches the <see cref="E:Gallio.Runner.Events.TestRunnerEventDispatcher.TestStepLogStreamBeginSectionBlock"/> event.
            </summary>
            <param name="e">The event arguments.</param>
        </member>
        <member name="M:Gallio.Runner.Events.TestRunnerEventDispatcher.NotifyTestStepLogStreamBeginMarkerBlock(Gallio.Runner.Events.TestStepLogStreamBeginMarkerBlockEventArgs)">
            <summary>
            Dispatches the <see cref="E:Gallio.Runner.Events.TestRunnerEventDispatcher.TestStepLogStreamBeginMarkerBlock"/> event.
            </summary>
            <param name="e">The event arguments.</param>
        </member>
        <member name="M:Gallio.Runner.Events.TestRunnerEventDispatcher.NotifyTestStepLogStreamEndBlock(Gallio.Runner.Events.TestStepLogStreamEndBlockEventArgs)">
            <summary>
            Dispatches the <see cref="E:Gallio.Runner.Events.TestRunnerEventDispatcher.TestStepLogStreamEndBlock"/> event.
            </summary>
            <param name="e">The event arguments.</param>
        </member>
        <member name="M:Gallio.Runner.Events.TestRunnerEventDispatcher.SubscribeTo(Gallio.Runner.Events.ITestRunnerEvents)">
            <summary>
            Subscribes to another event object such that the events will be forwarded
            to the handlers registered on this dispatcher.
            </summary>
            <param name="events">The other events object.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="events"/> is null.</exception>
        </member>
        <member name="E:Gallio.Runner.Events.TestRunnerEventDispatcher.LogEntrySubmitted">
            <inheritdoc/>
        </member>
        <member name="E:Gallio.Runner.Events.TestRunnerEventDispatcher.MessageReceived">
            <inheritdoc/>
        </member>
        <member name="E:Gallio.Runner.Events.TestRunnerEventDispatcher.InitializeStarted">
            <inheritdoc/>
        </member>
        <member name="E:Gallio.Runner.Events.TestRunnerEventDispatcher.InitializeFinished">
            <inheritdoc/>
        </member>
        <member name="E:Gallio.Runner.Events.TestRunnerEventDispatcher.DisposeStarted">
            <inheritdoc/>
        </member>
        <member name="E:Gallio.Runner.Events.TestRunnerEventDispatcher.DisposeFinished">
            <inheritdoc/>
        </member>
        <member name="E:Gallio.Runner.Events.TestRunnerEventDispatcher.ExploreStarted">
            <inheritdoc/>
        </member>
        <member name="E:Gallio.Runner.Events.TestRunnerEventDispatcher.ExploreFinished">
            <inheritdoc/>
        </member>
        <member name="E:Gallio.Runner.Events.TestRunnerEventDispatcher.RunStarted">
            <inheritdoc/>
        </member>
        <member name="E:Gallio.Runner.Events.TestRunnerEventDispatcher.RunFinished">
            <inheritdoc/>
        </member>
        <member name="E:Gallio.Runner.Events.TestRunnerEventDispatcher.TestDiscovered">
            <inheritdoc/>
        </member>
        <member name="E:Gallio.Runner.Events.TestRunnerEventDispatcher.AnnotationDiscovered">
            <inheritdoc/>
        </member>
        <member name="E:Gallio.Runner.Events.TestRunnerEventDispatcher.TestStepStarted">
            <inheritdoc/>
        </member>
        <member name="E:Gallio.Runner.Events.TestRunnerEventDispatcher.TestStepFinished">
            <inheritdoc/>
        </member>
        <member name="E:Gallio.Runner.Events.TestRunnerEventDispatcher.TestStepLifecyclePhaseChanged">
            <inheritdoc/>
        </member>
        <member name="E:Gallio.Runner.Events.TestRunnerEventDispatcher.TestStepMetadataAdded">
            <inheritdoc/>
        </member>
        <member name="E:Gallio.Runner.Events.TestRunnerEventDispatcher.TestStepLogAttach">
            <inheritdoc/>
        </member>
        <member name="E:Gallio.Runner.Events.TestRunnerEventDispatcher.TestStepLogStreamWrite">
            <inheritdoc/>
        </member>
        <member name="E:Gallio.Runner.Events.TestRunnerEventDispatcher.TestStepLogStreamEmbed">
            <inheritdoc/>
        </member>
        <member name="E:Gallio.Runner.Events.TestRunnerEventDispatcher.TestStepLogStreamBeginSectionBlock">
            <inheritdoc/>
        </member>
        <member name="E:Gallio.Runner.Events.TestRunnerEventDispatcher.TestStepLogStreamBeginMarkerBlock">
            <inheritdoc/>
        </member>
        <member name="E:Gallio.Runner.Events.TestRunnerEventDispatcher.TestStepLogStreamEndBlock">
            <inheritdoc/>
        </member>
        <member name="T:Gallio.Runner.Events.TestStepFinishedEventArgs">
            <summary>
            Arguments for an event raised to indicate that a test step has finished execution.
            </summary>
        </member>
        <member name="M:Gallio.Runner.Events.TestStepFinishedEventArgs.#ctor(Gallio.Runner.Reports.Schema.Report,Gallio.Model.Schema.TestData,Gallio.Runner.Reports.Schema.TestStepRun)">
            <summary>
            Initializes the event arguments.
            </summary>
            <param name="report">The report.</param>
            <param name="test">The test data.</param>
            <param name="testStepRun">The test step run.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="report"/>, <paramref name="test"/>
            or <paramref name="testStepRun"/> is null.</exception>
        </member>
        <member name="T:Gallio.Runner.Events.TestStepLifecyclePhaseChangedEventArgs">
            <summary>
            Arguments for an event raised to indicate that a test step has entered a new lifecycle phase.
            </summary>
        </member>
        <member name="M:Gallio.Runner.Events.TestStepLifecyclePhaseChangedEventArgs.#ctor(Gallio.Runner.Reports.Schema.Report,Gallio.Model.Schema.TestData,Gallio.Runner.Reports.Schema.TestStepRun,System.String)">
            <summary>
            Initializes the event arguments.
            </summary>
            <param name="report">The report.</param>
            <param name="test">The test data.</param>
            <param name="testStepRun">The test step run.</param>
            <param name="lifecyclePhase">The lifecycle phase name.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="report"/>, <paramref name="test"/>
            <paramref name="testStepRun"/>, or <paramref name="lifecyclePhase"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runner.Events.TestStepLifecyclePhaseChangedEventArgs.LifecyclePhase">
            <summary>
            Gets the lifecycle phase name.
            </summary>
            <seealso cref="T:Gallio.Model.LifecyclePhases"/>
        </member>
        <member name="T:Gallio.Runner.Events.TestStepLogStreamEmbedEventArgs">
            <summary>
            Arguments for an event raised to indicate that an attachment has been embedded into a test step log stream.
            </summary>
        </member>
        <member name="M:Gallio.Runner.Events.TestStepLogStreamEmbedEventArgs.#ctor(Gallio.Runner.Reports.Schema.Report,Gallio.Model.Schema.TestData,Gallio.Runner.Reports.Schema.TestStepRun,System.String,System.String)">
            <summary>
            Initializes the event arguments.
            </summary>
            <param name="report">The report.</param>
            <param name="test">The test data.</param>
            <param name="testStepRun">The test step run.</param>
            <param name="logStreamName">The log stream name.</param>
            <param name="attachmentName">The name of the attachment that was embedded.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="report"/>, <paramref name="test"/>
            <paramref name="testStepRun"/>, <paramref name="logStreamName"/>, or <paramref name="attachmentName"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runner.Events.TestStepLogStreamEmbedEventArgs.AttachmentName">
            <summary>
            Gets the name of the attachment that was embedded.
            </summary>
        </member>
        <member name="T:Gallio.Runner.Events.TestStepLogStreamEndBlockEventArgs">
            <summary>
            Arguments for an event raised to indicate that a block has been finished within a test step log stream.
            </summary>
        </member>
        <member name="M:Gallio.Runner.Events.TestStepLogStreamEndBlockEventArgs.#ctor(Gallio.Runner.Reports.Schema.Report,Gallio.Model.Schema.TestData,Gallio.Runner.Reports.Schema.TestStepRun,System.String)">
            <summary>
            Initializes the event arguments.
            </summary>
            <param name="report">The report.</param>
            <param name="test">The test data.</param>
            <param name="testStepRun">The test step run.</param>
            <param name="logStreamName">The log stream name.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="report"/>, <paramref name="test"/>
            <paramref name="testStepRun"/> or <paramref name="logStreamName"/> is null.</exception>
        </member>
        <member name="T:Gallio.Runner.Events.TestStepLogStreamBeginSectionBlockEventArgs">
            <summary>
            Arguments for an event raised to indicate that a section has been started within a test step log stream.
            </summary>
        </member>
        <member name="M:Gallio.Runner.Events.TestStepLogStreamBeginSectionBlockEventArgs.#ctor(Gallio.Runner.Reports.Schema.Report,Gallio.Model.Schema.TestData,Gallio.Runner.Reports.Schema.TestStepRun,System.String,System.String)">
            <summary>
            Initializes the event arguments.
            </summary>
            <param name="report">The report.</param>
            <param name="test">The test data.</param>
            <param name="testStepRun">The test step run.</param>
            <param name="logStreamName">The log stream name.</param>
            <param name="sectionName">The name of the section that was started.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="report"/>, <paramref name="test"/>
            <paramref name="testStepRun"/>, <paramref name="logStreamName"/>, or <paramref name="sectionName"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runner.Events.TestStepLogStreamBeginSectionBlockEventArgs.SectionName">
            <summary>
            Gets the name of the section that was started.
            </summary>
        </member>
        <member name="T:Gallio.Runner.Events.TestStepLogStreamWriteEventArgs">
            <summary>
            Arguments for an event raised to indicate that text has been written to a test step log stream.
            </summary>
        </member>
        <member name="M:Gallio.Runner.Events.TestStepLogStreamWriteEventArgs.#ctor(Gallio.Runner.Reports.Schema.Report,Gallio.Model.Schema.TestData,Gallio.Runner.Reports.Schema.TestStepRun,System.String,System.String)">
            <summary>
            Initializes the event arguments.
            </summary>
            <param name="report">The report.</param>
            <param name="test">The test data.</param>
            <param name="testStepRun">The test step run.</param>
            <param name="logStreamName">The log stream name.</param>
            <param name="text">The text that was written.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="report"/>, <paramref name="test"/>
            <paramref name="testStepRun"/> or <paramref name="logStreamName"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runner.Events.TestStepLogStreamWriteEventArgs.Text">
            <summary>
            Gets the text that was written.
            </summary>
        </member>
        <member name="T:Gallio.Runner.Events.TestStepLogAttachEventArgs">
            <summary>
            Arguments for an event raised to indicate that an attachment has been added to a test step log.
            </summary>
        </member>
        <member name="M:Gallio.Runner.Events.TestStepLogAttachEventArgs.#ctor(Gallio.Runner.Reports.Schema.Report,Gallio.Model.Schema.TestData,Gallio.Runner.Reports.Schema.TestStepRun,Gallio.Common.Markup.Attachment)">
            <summary>
            Initializes the event arguments.
            </summary>
            <param name="report">The report.</param>
            <param name="test">The test data.</param>
            <param name="testStepRun">The test step run.</param>
            <param name="attachment">The attachment.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="report"/>, <paramref name="test"/>
            <paramref name="testStepRun"/> or <paramref name="attachment"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runner.Events.TestStepLogAttachEventArgs.Attachment">
            <summary>
            Gets the attachment.
            </summary>
        </member>
        <member name="T:Gallio.Runner.Events.TestStepMetadataAddedEventArgs">
            <summary>
            Arguments for an event raised to indicate that a test step dynamically added metadata to itself.
            </summary>
        </member>
        <member name="M:Gallio.Runner.Events.TestStepMetadataAddedEventArgs.#ctor(Gallio.Runner.Reports.Schema.Report,Gallio.Model.Schema.TestData,Gallio.Runner.Reports.Schema.TestStepRun,System.String,System.String)">
            <summary>
            Initializes the event arguments.
            </summary>
            <param name="report">The report.</param>
            <param name="test">The test data.</param>
            <param name="testStepRun">The test step run.</param>
            <param name="metadataKey">The metadata key.</param>
            <param name="metadataValue">The metadata value.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="report"/>, <paramref name="test"/>
            <paramref name="testStepRun"/>, <paramref name="metadataKey"/> or <paramref name="metadataValue"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runner.Events.TestStepMetadataAddedEventArgs.MetadataKey">
            <summary>
            Gets the metadata key.
            </summary>
            <seealso cref="T:Gallio.Model.MetadataKeys"/>
        </member>
        <member name="P:Gallio.Runner.Events.TestStepMetadataAddedEventArgs.MetadataValue">
            <summary>
            Gets the metadata value.
            </summary>
        </member>
        <member name="T:Gallio.Runner.Events.TestStepStartedEventArgs">
            <summary>
            Arguments for an event raised to indicate that a test step has started execution.
            </summary>
        </member>
        <member name="M:Gallio.Runner.Events.TestStepStartedEventArgs.#ctor(Gallio.Runner.Reports.Schema.Report,Gallio.Model.Schema.TestData,Gallio.Runner.Reports.Schema.TestStepRun)">
            <summary>
            Initializes the event arguments.
            </summary>
            <param name="report">The report.</param>
            <param name="test">The test data.</param>
            <param name="testStepRun">The test step run.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="report"/>, <paramref name="test"/>
            or <paramref name="testStepRun"/> is null.</exception>
        </member>
        <member name="T:Gallio.Runtime.ConsoleSupport.CommandLineArgumentAttribute">
            <summary>
            Allows control of command line parsing.
            </summary>
            <remarks>
            <para>
            Attach this attribute to instance fields of types used
            as the destination of command line argument parsing.
            </para>
            <para>
            Command line parsing code from 
            <a href="http://www.gotdotnet.com/community/usersamples/details.aspx?sampleguid=62a0f27e-274e-4228-ba7f-bc0118ecc41e">
            Peter Halam</a>. 
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Runtime.ConsoleSupport.CommandLineArgumentAttribute.#ctor(Gallio.Runtime.ConsoleSupport.CommandLineArgumentFlags)">
            <summary>
            Allows control of command line parsing.
            </summary>
            <param name="flags">Specifies the error checking to be done on the argument.</param>
        </member>
        <member name="M:Gallio.Runtime.ConsoleSupport.CommandLineArgumentAttribute.GetResourceLookup(System.String)">
            <summary>
            Gets or sets a resource to use for localization of strings
            </summary>
        </member>
        <member name="P:Gallio.Runtime.ConsoleSupport.CommandLineArgumentAttribute.Flags">
            <summary>
            The error checking to be done on the argument.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.ConsoleSupport.CommandLineArgumentAttribute.IsDefaultShortName">
            <summary>
            Returns true if the argument did not have an explicit short name specified.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.ConsoleSupport.CommandLineArgumentAttribute.ShortName">
            <summary>
            The short name of the argument.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.ConsoleSupport.CommandLineArgumentAttribute.LocalizedShortName">
            <summary>
            The localized short name of the argument.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.ConsoleSupport.CommandLineArgumentAttribute.IsDefaultLongName">
            <summary>
            Returns true if the argument did not have an explicit long name specified.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.ConsoleSupport.CommandLineArgumentAttribute.LongName">
            <summary>
            The long name of the argument.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.ConsoleSupport.CommandLineArgumentAttribute.LocalizedLongName">
            <summary>
            The localized long name of the argument.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.ConsoleSupport.CommandLineArgumentAttribute.Description">
            <summary>
            The description of the argument.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.ConsoleSupport.CommandLineArgumentAttribute.LocalizedDescription">
            <summary>
            The localized description of the argument.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.ConsoleSupport.CommandLineArgumentAttribute.ValueLabel">
            <summary>
             The description of the argument value.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.ConsoleSupport.CommandLineArgumentAttribute.LocalizedValueLabel">
            <summary>
             The localized description of the argument value.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.ConsoleSupport.CommandLineArgumentAttribute.Synonyms">
            <summary>
            Gets or sets an array of additional synonyms that are silently accepted.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.ConsoleSupport.CommandLineArgumentAttribute.LocalizedSynonyms">
            <summary>
            Gets an array of localized additional synonyms that are silently accepted.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.ConsoleSupport.CommandLineArgumentAttribute.ResourceType">
            <summary>
            Gets or sets a resource to use for internationalization of strings
            </summary>
        </member>
        <member name="T:Gallio.Runtime.ConsoleSupport.CommandLineArgumentFlags">
            <summary>
            Used to control parsing of command line arguments.
            </summary>
            <remarks>
            <para>
            Command line parsing code from 
            <a href="http://www.gotdotnet.com/community/usersamples/details.aspx?sampleguid=62a0f27e-274e-4228-ba7f-bc0118ecc41e">
            Peter Halam</a>, 
            </para>
            </remarks>
        </member>
        <member name="F:Gallio.Runtime.ConsoleSupport.CommandLineArgumentFlags.Required">
            <summary>
            Indicates that this field is required. An error will be displayed
            if it is not present when parsing arguments.
            </summary>
        </member>
        <member name="F:Gallio.Runtime.ConsoleSupport.CommandLineArgumentFlags.Unique">
            <summary>
            Only valid in conjunction with Multiple.
            Duplicate values will result in an error.
            </summary>
        </member>
        <member name="F:Gallio.Runtime.ConsoleSupport.CommandLineArgumentFlags.Multiple">
            <summary>
            Inidicates that the argument may be specified more than once.
            Only valid if the argument is a collection
            </summary>
        </member>
        <member name="F:Gallio.Runtime.ConsoleSupport.CommandLineArgumentFlags.AtMostOnce">
            <summary>
            The default type for non-collection arguments.
            The argument is not required, but an error will be reported if it is specified more than once.
            </summary>
        </member>
        <member name="F:Gallio.Runtime.ConsoleSupport.CommandLineArgumentFlags.LastOccurrenceWins">
            <summary>
            For non-collection arguments, when the argument is specified more than
            once no error is reported and the value of the argument is the last
            value which occurs in the argument list.
            </summary>
        </member>
        <member name="F:Gallio.Runtime.ConsoleSupport.CommandLineArgumentFlags.MultipleUnique">
            <summary>
            The default type for collection arguments.
            The argument is permitted to occur multiple times, but duplicate 
            values will cause an error to be reported.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.ConsoleSupport.CommandLineArgumentParser">
            <summary>
            Parser for command line arguments.
            </summary>
            <remarks>
            <para>
            The parser specification is infered from the instance fields of the object
            specified as the destination of the parse.
            Valid argument types are: int, uint, string, bool, enums
            Also argument types of Array of the above types are also valid.
            </para>
            <para>
            Error checking options can be controlled by adding a CommandLineArgumentAttribute
            to the instance fields of the destination object.
            </para>
            <para>
            At most one field may be marked with the DefaultCommandLineArgumentAttribute
            indicating that arguments without a '-' or '/' prefix will be parsed as that argument.
            </para>
            <para>
            If not specified then the parser will infer default options for parsing each
            instance field. The default long name of the argument is the field name. The
            default short name is the first character of the long name. Long names and explicitly
            specified short names must be unique. Default short names will be used provided that
            the default short name does not conflict with a long name or an explicitly
            specified short name.
            </para>
            <para>
            Arguments which are array types are collection arguments. Collection
            arguments can be specified multiple times.
            </para>
            <para>
            Command line parsing code adapted from 
            <a href="http://www.gotdotnet.com/community/usersamples/details.aspx?sampleguid=62a0f27e-274e-4228-ba7f-bc0118ecc41e">
            Peter Halam</a>.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Runtime.ConsoleSupport.CommandLineArgumentParser.#ctor(System.Type)">
            <summary>
            Creates a new command line argument parser.
            </summary>
            <param name="argumentSpecification">The argument type containing fields decorated
            with <see cref="T:Gallio.Runtime.ConsoleSupport.CommandLineArgumentAttribute"/>.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="argumentSpecification"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.ConsoleSupport.CommandLineArgumentParser.#ctor(System.Type,Gallio.Runtime.ConsoleSupport.ResponseFileReader)">
            <summary>
            Creates a new command line argument parser.
            </summary>
            <param name="argumentSpecification">The argument type containing fields decorated
            with <see cref="T:Gallio.Runtime.ConsoleSupport.CommandLineArgumentAttribute"/></param>
            <param name="responseFileReader">The delegate to use for reading response files instead of the default,
            or null to disable reading from response files.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="argumentSpecification"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.ConsoleSupport.CommandLineArgumentParser.Parse(System.String[],System.Object,Gallio.Runtime.ConsoleSupport.CommandLineErrorReporter)">
            <summary>
            Parses an argument list.
            </summary>
            <param name="args">The arguments to parse.</param>
            <param name="destination">The destination of the parsed arguments.</param>
            <param name="reporter">The error reporter.</param>
            <returns>True if no parse errors were encountered.</returns>
        </member>
        <member name="M:Gallio.Runtime.ConsoleSupport.CommandLineArgumentParser.ShowUsage(Gallio.Runtime.ConsoleSupport.CommandLineOutput)">
            <summary>
            Prints a user friendly usage string describing the command line argument syntax.
            </summary>
            <param name="output">The command line output.</param>
        </member>
        <member name="M:Gallio.Runtime.ConsoleSupport.CommandLineArgumentParser.ShowUsageInMessageBox(System.String)">
            <summary>
            Prints a user friendly usage string describing the command line argument syntax in a message box.
            </summary>
            <param name="caption">The message box caption.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="caption"/> is null.</exception>
        </member>
        <member name="T:Gallio.Runtime.ConsoleSupport.CommandLineErrorReporter">
            <summary>
            A delegate used in error reporting.
            </summary>
            <remarks>
            <para>
            Command line parsing code from 
            <a href="http://www.gotdotnet.com/community/usersamples/details.aspx?sampleguid=62a0f27e-274e-4228-ba7f-bc0118ecc41e">
            Peter Halam</a>, 
            </para>
            </remarks>
        </member>
        <member name="T:Gallio.Runtime.ConsoleSupport.CommandLineOutput">
            <summary>
             Responsible for creating output.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.ConsoleSupport.CommandLineOutput.#ctor(Gallio.Runtime.ConsoleSupport.IRichConsole)">
             <summary>
             Initializes new instance of CommandLineOutput.
             </summary>
            <param name="console">The console.</param>
        </member>
        <member name="M:Gallio.Runtime.ConsoleSupport.CommandLineOutput.#ctor(System.IO.TextWriter)">
            <summary>
            Initializes new instance of CommandLineOutput that outputs to specified stream.
            </summary>
            <param name="output">Text writer.</param>
        </member>
        <member name="M:Gallio.Runtime.ConsoleSupport.CommandLineOutput.#ctor(System.IO.TextWriter,System.Int32)">
            <summary>
            Initializes new instance of CommandLineOutput that outputs to specified stream.
            </summary>
            <param name="output">Text writer.</param>
            <param name="width">The output width.</param>
        </member>
        <member name="M:Gallio.Runtime.ConsoleSupport.CommandLineOutput.NewLine">
            <summary>
             Prints out a new line.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.ConsoleSupport.CommandLineOutput.PrintText(System.String,System.Int32)">
            <summary>
            Outputs text with specified indentation.
            </summary>
            <param name="text">Text to output possibly including newlines.</param>
            <param name="indentation">Number of blank spaces to indent the first line.</param>
        </member>
        <member name="M:Gallio.Runtime.ConsoleSupport.CommandLineOutput.PrintText(System.String,System.Int32,System.Int32)">
            <summary>
            Outputs text with specified indentation.
            </summary>
            <param name="text">Text to output possibly including newlines.</param>
            <param name="indentation">Number of blank spaces to indent all but the first line.</param>
            <param name="firstLineIndent">Number of blank spaces to indent the first line.</param>
        </member>
        <member name="M:Gallio.Runtime.ConsoleSupport.CommandLineOutput.PrintArgumentHelp(System.String,System.String,System.String,System.String,System.String,System.Type)">
            <summary>
            Prints help for a specified argument.
            </summary>
            <param name="prefix">The argument prefix, such as "/", or null or empty if none.</param>
            <param name="longName">The argument's long name, or null or empty if none.</param>
            <param name="shortName">The argument's short short name, or null or empty if none.</param>
            <param name="description">The argument's description, or null or empty if none.</param>
            <param name="valueLabel">The argument's value label such as "path", or null or empty if none.</param>
            <param name="valueType">The argument's value type, or null if none.</param>
        </member>
        <member name="P:Gallio.Runtime.ConsoleSupport.CommandLineOutput.Output">
            <summary>
             Output Stream
            </summary>
        </member>
        <member name="P:Gallio.Runtime.ConsoleSupport.CommandLineOutput.LineLength">
            <summary>
             Maximum line length allowed before the text will be wraped.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.ConsoleSupport.ConsoleProgram`1">
            <summary>
            A base class for implementing robust console applications.
            </summary>
            <remarks>
            <para>
            The subclass should provide a Main method that creates an instance and
            calls <see cref="M:Gallio.Runtime.ConsoleSupport.ConsoleProgram`1.Run(Gallio.Runtime.ConsoleSupport.IRichConsole,System.String[])"/>.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Runtime.ConsoleSupport.ConsoleProgram`1.Dispose">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.ConsoleSupport.ConsoleProgram`1.Run(Gallio.Runtime.ConsoleSupport.IRichConsole,System.String[])">
            <summary>
            Runs the program.
            </summary>
            <param name="console">The console.</param>
            <param name="args">The command-line arguments.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="console"/>
            or <paramref name="args"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Thrown if the program has already started running.</exception>
        </member>
        <member name="M:Gallio.Runtime.ConsoleSupport.ConsoleProgram`1.RunImpl(System.String[])">
            <summary>
            Runs the program.
            </summary>
            <param name="args">The command-line arguments.</param>
            <returns>The program exit code.</returns>
        </member>
        <member name="M:Gallio.Runtime.ConsoleSupport.ConsoleProgram`1.HandleFatalException(System.Exception)">
            <summary>
            Handles a fatal exception that escaped the <see cref="M:Gallio.Runtime.ConsoleSupport.ConsoleProgram`1.RunImpl(System.String[])"/> method.
            </summary>
            <param name="ex">The exception.</param>
            <returns>The exit code to return.</returns>
        </member>
        <member name="M:Gallio.Runtime.ConsoleSupport.ConsoleProgram`1.ParseArguments(System.String[])">
            <summary>
            Parses the arguments.
            </summary>
            <param name="args">The command-line arguments.</param>
            <returns>True if the arguments were parsed successfully.</returns>
        </member>
        <member name="M:Gallio.Runtime.ConsoleSupport.ConsoleProgram`1.ShowErrorMessage(System.String)">
            <summary>
            Displays an error message to the console.
            </summary>
            <param name="message">The error message.</param>
        </member>
        <member name="M:Gallio.Runtime.ConsoleSupport.ConsoleProgram`1.ShowHelp">
            <summary>
            Displays help text to the console.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.ConsoleSupport.ConsoleProgram`1.Console">
            <summary>
            Gets the console, or null if the program is not running.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.ConsoleSupport.ConsoleProgram`1.Arguments">
            <summary>
            Gets or sets the parsed command-line arguments.
            </summary>
            <remarks>
            <para>
            These argument may be modified prior to calling <see cref="M:Gallio.Runtime.ConsoleSupport.ConsoleProgram`1.ParseArguments(System.String[])"/> to
            override the initial argument settings.
            </para>
            </remarks>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runtime.ConsoleSupport.ConsoleProgram`1.ArgumentParser">
            <summary>
            Gets the argument parser.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.ConsoleSupport.ConsoleProgram`1.CommandLineOutput">
            <summary>
            Gets the command-line output formatter, or null if the program is not running.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.ConsoleSupport.ConsoleProgram`1.ApplicationName">
            <summary>
            Gets or sets the application name.
            </summary>
            <value>The name, by default this is the program assembly's name</value>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runtime.ConsoleSupport.ConsoleProgram`1.ApplicationVersion">
            <summary>
            Gets or sets the application version.
            </summary>
            <value>The version, by default this is the program assembly's version derived
            using <see cref="M:Gallio.Common.Policies.VersionPolicy.GetVersionNumber(System.Reflection.Assembly)"/>.</value>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runtime.ConsoleSupport.ConsoleProgram`1.ApplicationTitle">
            <summary>
            Get or sets the application title.
            </summary>
            <value>The title, by default this is constructed from the application's name and version
            using <see cref="M:Gallio.Common.Policies.VersionPolicy.GetVersionLabel(System.Version)"/>.</value>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="T:Gallio.Runtime.ConsoleSupport.DefaultCommandLineArgumentAttribute">
            <summary>
            Indicates that this argument is the default argument.
            </summary>
            <remarks>
            <para>
            '/' or '-' prefix only the argument value is specified.
            </para>
            <para>
            Command line parsing code from 
            <a href="http://www.gotdotnet.com/community/usersamples/details.aspx?sampleguid=62a0f27e-274e-4228-ba7f-bc0118ecc41e">
            Peter Halam</a>, 
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Runtime.ConsoleSupport.DefaultCommandLineArgumentAttribute.#ctor(Gallio.Runtime.ConsoleSupport.CommandLineArgumentFlags)">
            <summary>
            Indicates that this argument is the default argument.
            </summary>
            <param name="flags"> Specifies the error checking to be done on the argument.</param>
        </member>
        <member name="P:Gallio.Runtime.ConsoleSupport.DefaultCommandLineArgumentAttribute.ConsumeUnrecognizedSwitches">
            <summary>
            When set to true, the default argument will consume any unrecognized command switches.
            Otherwise an error will be thrown if an unrecognized switch is used.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.ConsoleSupport.IRichConsole">
            <summary>
            A rich console provides a number of services that enable a console to be
            shared among several cooperating tasks that are independently updating
            different portions of the display.  
            </summary>
            <remarks>
            <para>
            One task can be writing to the main body of text while another updates a footer.
            </para>
            <para>
            The rich console also supports intelligent cancelation of tasks.  When
            the user presses control-C, a cancelation flag is set and an event handler
            is invoked.  Tasks can check for the presence of the cancelation flag even if
            they started execution after the control-C itself occurred.  This provides
            protection against dropped cancelation requests due to race conditions.
            If the user presses control-C 3 times within a short interval
            the rich console assumes that the program has become non-responsive and
            terminates it.
            </para>
            <para>
            Finally, the rich console interface can be mocked for testing purposes
            unlike the standard <see cref="T:System.Console"/> API.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Runtime.ConsoleSupport.IRichConsole.ResetColor">
            <summary>
            Resets the console colors.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.ConsoleSupport.IRichConsole.SetFooter(Gallio.Common.Action,Gallio.Common.Action)">
            <summary>
            Sets a pair of delegates that together display a footer at the bottom
            of the console.
            </summary>
            <remarks>
            <para>
            The footer can be hidden so that new text can be written
            from that point.  Removes the previous footer and displays the new
            one automatically if the footer is visible.
            </para>
            </remarks>
            <param name="showFooter">A delegate to display the footer.</param>
            <param name="hideFooter">A delegate to hide the footer, leaving the custor at
            the beginning of the line where the footer used to begin.</param>
        </member>
        <member name="M:Gallio.Runtime.ConsoleSupport.IRichConsole.Write(System.Char)">
            <summary>
            Writes a character.
            </summary>
            <param name="c">The character to write.</param>
        </member>
        <member name="M:Gallio.Runtime.ConsoleSupport.IRichConsole.Write(System.String)">
            <summary>
            Writes a string.
            </summary>
            <param name="str">The string to write.</param>
        </member>
        <member name="M:Gallio.Runtime.ConsoleSupport.IRichConsole.WriteLine">
            <summary>
            Writes a new line.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.ConsoleSupport.IRichConsole.WriteLine(System.String)">
            <summary>
            Writes a string followed by a new line.
            </summary>
            <param name="str">The string to write.</param>
        </member>
        <member name="P:Gallio.Runtime.ConsoleSupport.IRichConsole.SyncRoot">
            <summary>
            Gets a synchronization object that a task can lock to ensure
            that it is the only thread currently accessing the console.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.ConsoleSupport.IRichConsole.IsCancelationEnabled">
            <summary>
            Gets or sets whether the cancelation function is enabled.
            If false, cancelation events will not be sent.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.ConsoleSupport.IRichConsole.IsCanceled">
            <summary>
            Gets or sets whether cancelation has occurred.
            </summary>
            <remarks>
            <para>
            The <see cref="E:Gallio.Runtime.ConsoleSupport.NativeConsole.Cancel"/> event handlers will be called
            when the value of <see cref="P:Gallio.Runtime.ConsoleSupport.NativeConsole.IsCanceled"/> transitions from
            false to true.  The value will remain true unless it is reset.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Runtime.ConsoleSupport.IRichConsole.IsRedirected">
            <summary>
            Returns true if the console is being redirected and therefore the
            output should be as simple as possible.
            </summary>
            <remarks>
            <para>
            In particular, it may not be possible to set the cursor position, 
            console color or other properties.
            </para>
            <para>
            Trying to set the console color while output is redirected is tolerated
            by the system and won't cause an error; but it is pointless.  On the other
            hand cursor positioning or attempting to listen to Ctrl-C will fail with an
            <see cref="T:System.IO.IOException"/>.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Runtime.ConsoleSupport.IRichConsole.Error">
            <summary>
            Gets the error stream writer.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.ConsoleSupport.IRichConsole.Out">
            <summary>
            Gets the output stream writer.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.ConsoleSupport.IRichConsole.ForegroundColor">
            <summary>
            Gets or sets the foreground color of the console.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.ConsoleSupport.IRichConsole.CursorLeft">
            <summary>
            Gets the zero-based column index the cursor is located at.
            </summary>
            <exception cref="T:System.IO.IOException">Thrown if <see cref="P:Gallio.Runtime.ConsoleSupport.NativeConsole.IsRedirected"/> is true.</exception>
        </member>
        <member name="P:Gallio.Runtime.ConsoleSupport.IRichConsole.CursorTop">
            <summary>
            Gets the zero-based row index the cursor is located at.
            </summary>
            <exception cref="T:System.IO.IOException">Thrown if <see cref="P:Gallio.Runtime.ConsoleSupport.NativeConsole.IsRedirected"/> is true.</exception>
        </member>
        <member name="P:Gallio.Runtime.ConsoleSupport.IRichConsole.Title">
            <summary>
            Gets or sets the console's title.
            </summary>
            <exception cref="T:System.IO.IOException">Thrown if <see cref="P:Gallio.Runtime.ConsoleSupport.NativeConsole.IsRedirected"/> is true.</exception>
        </member>
        <member name="P:Gallio.Runtime.ConsoleSupport.IRichConsole.Width">
            <summary>
            Gets the width of the console.
            </summary>
            <remarks>
            <para>
            Returns 80 if the console is being redirected.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Runtime.ConsoleSupport.IRichConsole.FooterVisible">
            <summary>
            Gets or sets whether the footer is visible.
            </summary>
        </member>
        <member name="E:Gallio.Runtime.ConsoleSupport.IRichConsole.Cancel">
            <summary>
            The event raised when console cancelation occurs.
            </summary>
            <remarks>
            <para>
            If the console cancelation signal is already set when
            an event handler is added, the event handler will be
            automatically invoked.
            </para>
            </remarks>
        </member>
        <member name="T:Gallio.Runtime.ConsoleSupport.NativeConsole">
            <summary>
            An implementation of <see cref="T:Gallio.Runtime.ConsoleSupport.IRichConsole"/> that targets the
            native <see cref="T:System.Console"/>.
            </summary>
            <remarks>
            <para>
            This implementation offers protection against redirection of the <see cref="P:System.Console.Out"/>
            and <see cref="P:System.Console.Error"/> streams.  This object will continue to refer to the
            standard output and error streams even if they are redirected after its initialization.
            </para>
            </remarks>
        </member>
        <member name="F:Gallio.Runtime.ConsoleSupport.NativeConsole.ForceQuitKeyPressRepetitions">
            <summary>
            The application will forcibly terminate if the cancel key is pressed
            <see cref="F:Gallio.Runtime.ConsoleSupport.NativeConsole.ForceQuitKeyPressRepetitions"/> times within no more than
            <see cref="F:Gallio.Runtime.ConsoleSupport.NativeConsole.ForceQuitKeyPressTimeoutMilliseconds"/> milliseconds.
            </summary>
        </member>
        <member name="F:Gallio.Runtime.ConsoleSupport.NativeConsole.ForceQuitKeyPressTimeoutMilliseconds">
            <summary>
            The application will forcibly terminate if the cancel key is pressed
            <see cref="F:Gallio.Runtime.ConsoleSupport.NativeConsole.ForceQuitKeyPressRepetitions"/> times within no more than
            <see cref="F:Gallio.Runtime.ConsoleSupport.NativeConsole.ForceQuitKeyPressTimeoutMilliseconds"/> milliseconds.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.ConsoleSupport.NativeConsole.ResetColor">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.ConsoleSupport.NativeConsole.SetFooter(Gallio.Common.Action,Gallio.Common.Action)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.ConsoleSupport.NativeConsole.Write(System.Char)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.ConsoleSupport.NativeConsole.Write(System.String)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.ConsoleSupport.NativeConsole.WriteLine">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.ConsoleSupport.NativeConsole.WriteLine(System.String)">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Runtime.ConsoleSupport.NativeConsole.Instance">
            <summary>
            Gets the singleton instance of the native console.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.ConsoleSupport.NativeConsole.IsCancelationEnabled">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Runtime.ConsoleSupport.NativeConsole.SyncRoot">
            <inheritdoc />
        </member>
        <member name="E:Gallio.Runtime.ConsoleSupport.NativeConsole.Cancel">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Runtime.ConsoleSupport.NativeConsole.IsCanceled">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Runtime.ConsoleSupport.NativeConsole.IsRedirected">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Runtime.ConsoleSupport.NativeConsole.Error">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Runtime.ConsoleSupport.NativeConsole.Out">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Runtime.ConsoleSupport.NativeConsole.ForegroundColor">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Runtime.ConsoleSupport.NativeConsole.CursorLeft">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Runtime.ConsoleSupport.NativeConsole.CursorTop">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Runtime.ConsoleSupport.NativeConsole.Title">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Runtime.ConsoleSupport.NativeConsole.Width">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Runtime.ConsoleSupport.NativeConsole.FooterVisible">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runtime.ConsoleSupport.ResponseFileReader">
            <summary>
            Reads the contents of a response file.
            </summary>
            <param name="responseFileName">The response file name, never null.</param>
            <returns>The plain text contents of the file.</returns>
        </member>
        <member name="T:Gallio.Runtime.ConsoleSupport.RichConsoleLogger">
            <summary>
            A logger that sends all output to the console and displays messages in color
            according to their status.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.ConsoleSupport.RichConsoleLogger.#ctor(Gallio.Runtime.ConsoleSupport.IRichConsole)">
            <summary>
            Creates a logger.
            </summary>
            <param name="console">The console.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="console"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.ConsoleSupport.RichConsoleLogger.LogImpl(Gallio.Runtime.Logging.LogSeverity,System.String,Gallio.Common.Diagnostics.ExceptionData)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runtime.GallioSectionHandler">
            <summary>
            A configuration section handler for Gallio used to register
            Gallio components in applications and in plugins.
            </summary>
        </member>
        <member name="F:Gallio.Runtime.GallioSectionHandler.SectionName">
            <summary>
            The name of the Gallio section: "gallio".
            </summary>
        </member>
        <member name="M:Gallio.Runtime.GallioSectionHandler.Create(System.Object,System.Object,System.Xml.XmlNode)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runtime.Hosting.AppDomainUtils">
            <summary>
            Utilities for working with AppDomains.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Hosting.AppDomainUtils.CreateAppDomain(System.String,System.String,System.String,System.Boolean)">
            <summary>
            Creates an AppDomain.
            </summary>
            <param name="applicationName">The application name for the new AppDomain, or null if none.</param>
            <param name="applicationBaseDirectory">The application base directory for the new AppDomain, or null to use the current one.</param>
            <param name="configurationFile">The configuration file for the new AppDomain, or null to use the current one.</param>
            <param name="enableShadowCopy">If true, enables shadow copying within the AppDomain.</param>
            <returns>The new AppDomain.</returns>
        </member>
        <member name="M:Gallio.Runtime.Hosting.AppDomainUtils.CreateRemoteInstance(System.AppDomain,System.Type,System.Object[])">
            <summary>
            Creates a remote instance of a type within another AppDomain.
            </summary>
            <remarks>
            This method first uses <see cref="M:System.AppDomain.CreateInstanceAndUnwrap(System.String,System.String)"/> to
            try create an instance of the type.  If that fails, it uses <see cref="M:System.AppDomain.CreateInstanceFromAndUnwrap(System.String,System.String)"/>
            to load the assembly that contains the type into the AppDomain then create an instance of the type.
            </remarks>
            <param name="appDomain">The AppDomain in which to create the instance.</param>
            <param name="type">The type to instantiate.</param>
            <param name="args">The constructor arguments for the type.</param>
            <returns>The remote instance.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="appDomain"/> or <paramref name="type"/>
            is null.</exception>
        </member>
        <member name="T:Gallio.Runtime.Hosting.BaseHost">
            <summary>
            Base implementation of <see cref="T:Gallio.Runtime.Hosting.IHost"/> that performs argument validation.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.Hosting.IHost">
            <summary>
            A host represents an environment that may be used to perform various
            services in isolation.
            </summary>
            <remarks>
            <para>
            For example, a host might provide the ability to run code in an isolated
            <see cref="T:System.AppDomain"/> of the current process, or it might run code
            in an isolated process, or connect to an existing remote process.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Runtime.Hosting.IHost.GetHostService">
            <summary>
            Gets a host service that can be used to perform operations within the host's environment.
            </summary>
            <exception cref="T:System.InvalidOperationException">Thrown if the host has been disconnected.</exception>
            <exception cref="T:System.ObjectDisposedException">Thrown if the host has been disposed.</exception>
        </member>
        <member name="M:Gallio.Runtime.Hosting.IHost.GetHostSetup">
            <summary>
            Gets a deep copy of the host setup information.
            </summary>
            <exception cref="T:System.ObjectDisposedException">Thrown if the host has been disposed.</exception>
        </member>
        <member name="M:Gallio.Runtime.Hosting.IHost.Disconnect">
            <summary>
            Disconnects the host.
            </summary>
            <exception cref="T:System.ObjectDisposedException">Thrown if the host has been disposed.</exception>
        </member>
        <member name="E:Gallio.Runtime.Hosting.IHost.Disconnected">
            <summary>
            An event that is raised when the host is disconnected.
            If the host has already been disconnected, the event is fired immediately.
            </summary>
            <seealso cref="P:Gallio.Runtime.Hosting.IHost.IsConnected"/>
            <exception cref="T:System.ObjectDisposedException">Thrown if the host has been disposed.</exception>
        </member>
        <member name="P:Gallio.Runtime.Hosting.IHost.IsLocal">
            <summary>
            Returns true if the host is local to the creating AppDomain, false if it
            must be accessed across a remote channel.  
            </summary>
            <remarks>
            <para>
            A local host might not support all configuration options.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Runtime.Hosting.IHost.IsConnected">
            <summary>
            Returns true if the host is connected.
            </summary>
            <remarks>
            <para>
            A host may become disconnected non-deterministically due to a failure in the
            host's communication channel or some other remote eventuality.
            </para>
            </remarks>
            <exception cref="T:System.ObjectDisposedException">Thrown if the host has been disposed.</exception>
        </member>
        <member name="M:Gallio.Runtime.Hosting.BaseHost.#ctor(Gallio.Runtime.Hosting.HostSetup,Gallio.Runtime.Logging.ILogger)">
            <summary>
            Creates a host.
            </summary>
            <param name="hostSetup">The host setup.</param>
            <param name="logger">The logger for host message output.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="hostSetup"/>
            or <paramref name="logger"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Hosting.BaseHost.Dispose">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Hosting.BaseHost.GetHostSetup">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Hosting.BaseHost.Connect">
            <summary>
            Initializes the host and connects to the host service.
            </summary>
            <exception cref="T:System.InvalidOperationException">Thrown if the host has already been initialized.</exception>
            <exception cref="T:System.ObjectDisposedException">Thrown if the host has been disposed.</exception>
            <exception cref="T:Gallio.Runtime.Hosting.HostException">Thrown if an exception occurred while connecting to the host.</exception>
        </member>
        <member name="M:Gallio.Runtime.Hosting.BaseHost.Disconnect">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Hosting.BaseHost.GetHostService">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Hosting.BaseHost.AcquireHostService">
            <summary>
            Gets the host service.
            </summary>
            <returns>The host service, or null if the host service was not available.</returns>
        </member>
        <member name="M:Gallio.Runtime.Hosting.BaseHost.ReleaseHostService(Gallio.Runtime.Hosting.IHostService)">
            <summary>
            Releases the host service.
            </summary>
            <param name="hostService">The host service that is being released, not null.</param>
        </member>
        <member name="M:Gallio.Runtime.Hosting.BaseHost.Dispose(System.Boolean)">
            <summary>
            Disposes the host.
            </summary>
            <param name="disposing">True if disposing.</param>
        </member>
        <member name="M:Gallio.Runtime.Hosting.BaseHost.ThrowIfDisposed">
            <summary>
            Throws an exception if the host has been disposed.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Hosting.BaseHost.NotifyDisconnected">
            <summary>
            Sets the state of the host to disconnected and notifies clients.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Hosting.BaseHost.AttachDebuggerIfNeeded(Gallio.Runtime.Debugging.IDebuggerManager,System.Diagnostics.Process)">
            <summary>
            Attaches the debugger to a process if the host settings require it.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Hosting.BaseHost.DetachDebuggerIfNeeded">
            <summary>
            Detaches the debugger from a process if the host settings require it.
            </summary>
        </member>
        <member name="E:Gallio.Runtime.Hosting.BaseHost.Disconnected">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Runtime.Hosting.BaseHost.IsLocal">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Runtime.Hosting.BaseHost.IsConnected">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Runtime.Hosting.BaseHost.HostService">
            <summary>
            Gets an reference to the host service, or null if not connected.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.Hosting.BaseHost.HostSetup">
            <summary>
            Gets the internal host setup information without copying it.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.Hosting.BaseHost.Logger">
            <summary>
            Gets the logger.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.Hosting.BaseHostService">
            <summary>
            Base implementation of <see cref="T:Gallio.Runtime.Hosting.IHostService"/> that performs argument validation.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.Hosting.IHostService">
            <summary>
            A host service enables a local client to interact with a remotely
            executing hosting environment.
            </summary>
            <remarks>
            <para>
            A host service implementation may choose to implement a keep-alive
            mechanism to automatically shut itself down when the service is disposed or
            when it has not received a ping within a set period of time.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Runtime.Hosting.IHostService.Ping">
            <summary>
            Pings the host to verify and maintain connectivity.
            </summary>
            <exception cref="T:Gallio.Runtime.Hosting.HostException">Thrown if the remote host is unreachable.</exception>
        </member>
        <member name="M:Gallio.Runtime.Hosting.IHostService.Do``2(Gallio.Common.Func{``0,``1},``0)">
            <summary>
            Asks the host to perform the specified action remotely.
            </summary>
            <remarks>
            <para>
            The action must be a serializable delegate so that it can be sent
            to the host and executed.  Generally speaking, this means it must either be
            a delegate for a static method or its target object must be serializable.
            The argument and result values must also be serializable (or null).
            </para>
            </remarks>
            <param name="func">The action to perform.</param>
            <param name="arg">The argument value, if any.</param>
            <returns>The result value, if any.</returns>
            <typeparam name="TArg">The argument type.</typeparam>
            <typeparam name="TResult">The result type.</typeparam>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="func"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Hosting.IHostService.CreateInstance(System.String,System.String)">
            <summary>
            Creates an instance of a remote object given an assembly name and type name.
            </summary>
            <param name="assemblyName">The name of assembly that contains the type.</param>
            <param name="typeName">The full name of the type.</param>
            <returns>The object handle of the instance.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="assemblyName"/> or
            <paramref name="typeName"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Hosting.IHostService.CreateInstanceFrom(System.String,System.String)">
            <summary>
            Creates an instance of a remote object given an assembly path and type name.
            </summary>
            <param name="assemblyPath">The path of assembly that contains the type.</param>
            <param name="typeName">The full name of the type.</param>
            <returns>The object handle of the instance.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="assemblyPath"/> or
            <paramref name="typeName"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Hosting.BaseHostService.Dispose">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Hosting.BaseHostService.Ping">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Hosting.BaseHostService.Do``2(Gallio.Common.Func{``0,``1},``0)">
            <inheritdoc cref="M:Gallio.Runtime.Hosting.IHostService.Do``2(Gallio.Common.Func{``0,``1},``0)"/>
        </member>
        <member name="M:Gallio.Runtime.Hosting.BaseHostService.CreateInstance(System.String,System.String)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Hosting.BaseHostService.CreateInstanceFrom(System.String,System.String)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Hosting.BaseHostService.DoImpl``2(Gallio.Common.Func{``0,``1},``0)">
            <summary>
            Internal implementation of <see cref="M:Gallio.Runtime.Hosting.BaseHostService.Do``2(Gallio.Common.Func{``0,``1},``0)"/>.
            </summary>
            <param name="func">The action to perform, not null.</param>
            <param name="arg">The argument value, if any.</param>
            <returns>The result value, if any.</returns>
            <typeparam name="TArg">The argument type.</typeparam>
            <typeparam name="TResult">The result type.</typeparam>
        </member>
        <member name="M:Gallio.Runtime.Hosting.BaseHostService.PingImpl">
            <summary>
            Internal implementation of <see cref="M:Gallio.Runtime.Hosting.BaseHostService.Ping"/>.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Hosting.BaseHostService.CreateInstanceImpl(System.String,System.String)">
            <summary>
            Internal implementation of <see cref="M:Gallio.Runtime.Hosting.BaseHostService.CreateInstance(System.String,System.String)"/>.
            </summary>
            <param name="assemblyName">The assembly name, not null.</param>
            <param name="typeName">The type name, not null.</param>
            <returns>The created object handle.</returns>
        </member>
        <member name="M:Gallio.Runtime.Hosting.BaseHostService.CreateInstanceFromImpl(System.String,System.String)">
            <summary>
            Internal implementation of <see cref="M:Gallio.Runtime.Hosting.BaseHostService.CreateInstanceFrom(System.String,System.String)"/>.
            </summary>
            <param name="assemblyPath">The assembly path, not null.</param>
            <param name="typeName">The type name, not null.</param>
            <returns>The created object handle.</returns>
        </member>
        <member name="M:Gallio.Runtime.Hosting.BaseHostService.Dispose(System.Boolean)">
            <summary>
            Disposes the host service.
            </summary>
            <param name="disposing">True if disposing.</param>
        </member>
        <member name="M:Gallio.Runtime.Hosting.BaseHostService.ThrowIfDisposed">
            <summary>
            Throws an exception if the host service has been disposed.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.Hosting.HostUtils">
            <summary>
            Provides utilities for working with hosts.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Hosting.HostUtils.CreateInstance``1(Gallio.Runtime.Hosting.IHost)">
            <summary>
            Creates an instance of an object within a host.
            </summary>
            <param name="host">The host in which to create the object.</param>
            <typeparam name="T">The type of object to create.</typeparam>
            <returns>The object instance.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="host"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Hosting.HostUtils.CreateInstance(Gallio.Runtime.Hosting.IHost,System.Type)">
            <summary>
            Creates an instance of an object within a host.
            </summary>
            <param name="host">The host in which to create the object.</param>
            <param name="type">The type of object to create.</param>
            <returns>The object instance.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="host"/>
            or <paramref name="type"/> is null.</exception>
        </member>
        <member name="T:Gallio.Runtime.Hosting.IRemoteHostService">
            <summary>
            A specialization of host service designed for hosts that are remotely managed.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Hosting.IRemoteHostService.Shutdown">
            <summary>
            Remotely shuts down the host service.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.Hosting.LocalHost">
            <summary>
            An implementation of <see cref="T:Gallio.Runtime.Hosting.IHost"/> that runs code
            locally within the current AppDomain.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Hosting.LocalHost.#ctor(Gallio.Runtime.Hosting.HostSetup,Gallio.Runtime.Logging.ILogger,Gallio.Runtime.Debugging.IDebuggerManager)">
            <summary>
            Creates a local host.
            </summary>
            <param name="hostSetup">The host setup.</param>
            <param name="logger">The logger for host message output.</param>
            <param name="debuggerManager">The debugger manager.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="hostSetup"/>, <paramref name="logger"/>
            or <paramref name="debuggerManager"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Hosting.LocalHost.AcquireHostService">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Hosting.LocalHost.ReleaseHostService(Gallio.Runtime.Hosting.IHostService)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Hosting.LocalHost.Dispose(System.Boolean)">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Runtime.Hosting.LocalHost.IsLocal">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runtime.Hosting.LocalHostFactory">
            <summary>
            A factory for initialized <see cref="T:Gallio.Runtime.Hosting.LocalHost"/> hosts.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.Hosting.BaseHostFactory">
            <summary>
            An abstract base class for host factories.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.Hosting.IHostFactory">
            <summary>
            A host factory encapsulates a policy for creating new <see cref="T:Gallio.Runtime.Hosting.IHost"/> instances.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Hosting.IHostFactory.CreateHost(Gallio.Runtime.Hosting.HostSetup,Gallio.Runtime.Logging.ILogger)">
            <summary>
            Creates a host instance.
            </summary>
            <param name="hostSetup">The host setup.</param>
            <param name="logger">The logger for host message output.</param>
            <returns>The newly created host.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="hostSetup"/> 
            or <paramref name="logger"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Hosting.BaseHostFactory.CreateHost(Gallio.Runtime.Hosting.HostSetup,Gallio.Runtime.Logging.ILogger)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Hosting.BaseHostFactory.CreateHostImpl(Gallio.Runtime.Hosting.HostSetup,Gallio.Runtime.Logging.ILogger)">
            <summary>
            Creates the host.
            </summary>
            <param name="hostSetup">The canonicalized host setup, non-null.</param>
            <param name="logger">The logger, non-null.</param>
            <returns>The host.</returns>
        </member>
        <member name="F:Gallio.Runtime.Hosting.LocalHostFactory.ComponentId">
            <summary>
            Gets the component Id of this factory.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Hosting.LocalHostFactory.#ctor(Gallio.Runtime.Debugging.IDebuggerManager)">
            <summary>
            Creates a host factory.
            </summary>
            <param name="debuggerManager">A reference to the debugger manager.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="debuggerManager"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Hosting.LocalHostFactory.CreateHostImpl(Gallio.Runtime.Hosting.HostSetup,Gallio.Runtime.Logging.ILogger)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runtime.Loader.GallioLoaderBootstrap">
            <summary>
            Initializes the Gallio assembly loading a runtime policies.
            </summary>
            <remarks>
            <para>
            This type is used only by the standalone Gallio.Loader assembly using late-binding.
            It should not be used by any other code.
            </para>
            </remarks>
        </member>
        <member name="T:Gallio.Runtime.Loader.AssemblyLoaderBootstrap">
            <summary>
            Bootstraps a globally reachable assembly loader within the Gallio installation path.
            </summary>
            <remarks>
            <para>
            May be used by clients to ensure that Gallio assemblies can be resolved assuming we
            were able to load the main assembly and access the bootstrap.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Runtime.Loader.AssemblyLoaderBootstrap.Install(System.String)">
            <summary>
            Installs a global assembly resolver given the specified runtime path.
            </summary>
            <param name="runtimePath">The Gallio runtime path.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="runtimePath"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runtime.Loader.AssemblyLoaderBootstrap.AssemblyLoader">
            <summary>
            Gets the bootstrapped assembly loader.
            </summary>
            <exception cref="T:System.InvalidOperationException">Thrown if the bootstrap assembly loader has not been initialized.</exception>
        </member>
        <member name="T:Gallio.Runtime.Logging.FilteredLogger">
            <summary>
            Filters another logger to exclude messages below a given level of severity.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Logging.FilteredLogger.#ctor(Gallio.Runtime.Logging.ILogger,Gallio.Runtime.Logging.LogSeverity)">
            <summary>
            Creates a filtered logger.
            </summary>
            <param name="logger">The logger to which filtered log messages are sent.</param>
            <param name="minSeverity">The lowest severity message type to retain.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="logger"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Logging.FilteredLogger.#ctor(Gallio.Runtime.Logging.ILogger,Gallio.Runtime.Logging.Verbosity)">
            <summary>
            Creates a filtered logger.
            </summary>
            <param name="logger">The logger to which filtered log messages are sent.</param>
            <param name="verbosity">The verbosity to use.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="logger"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Logging.FilteredLogger.LogImpl(Gallio.Runtime.Logging.LogSeverity,System.String,Gallio.Common.Diagnostics.ExceptionData)">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Runtime.Logging.FilteredLogger.MinSeverity">
            <summary>
            Gets the minimum severity of the messages that are included in the filtered log.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.Logging.LogSeverity">
            <summary>
            Describes the severity of a log message.
            </summary>
        </member>
        <member name="F:Gallio.Runtime.Logging.LogSeverity.Debug">
            <summary>
            The severity used for debug messages.
            </summary>
        </member>
        <member name="F:Gallio.Runtime.Logging.LogSeverity.Info">
            <summary>
            The severity used for informational messages.
            </summary>
        </member>
        <member name="F:Gallio.Runtime.Logging.LogSeverity.Important">
            <summary>
            The severity used for important messages.
            </summary>
        </member>
        <member name="F:Gallio.Runtime.Logging.LogSeverity.Warning">
            <summary>
            The severity used for warning messages.
            </summary>
        </member>
        <member name="F:Gallio.Runtime.Logging.LogSeverity.Error">
            <summary>
            The severity used for error messages.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.Logging.NamespaceDoc">
            <summary>
            The Gallio.Runtime.Logging namespace contains types for logging diagnostic output.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.Logging.NullLogger">
            <summary>
            A null implementation of <see cref="T:Gallio.Runtime.Logging.ILogger"/> that does nothing.
            </summary>
        </member>
        <member name="F:Gallio.Runtime.Logging.NullLogger.Instance">
            <summary>
            Gets a singleton instance of the null logger.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Logging.NullLogger.LogImpl(Gallio.Runtime.Logging.LogSeverity,System.String,Gallio.Common.Diagnostics.ExceptionData)">
            <excludedoc />
        </member>
        <member name="T:Gallio.Runtime.Logging.SeverityPrefixLogger">
            <summary>
            The severity prefix logger wraps another loggers and encodes the severity of a
            log entry into the log message itself in a standard form.
            </summary>
            <remarks>
            <para>
            This wrapper is useful when the base logger may not be able to
            report the severity via other means or when severity information must be
            reconstructed from plain text.
            </para>
            </remarks>
            <seealso cref="T:Gallio.Runtime.Logging.SeverityPrefixParser"/>
        </member>
        <member name="M:Gallio.Runtime.Logging.SeverityPrefixLogger.#ctor(Gallio.Runtime.Logging.ILogger)">
            <summary>
            Creates a prefix logger.
            </summary>
            <param name="inner">The inner logger.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="inner"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Logging.SeverityPrefixLogger.LogImpl(Gallio.Runtime.Logging.LogSeverity,System.String,Gallio.Common.Diagnostics.ExceptionData)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runtime.Logging.SeverityPrefixParser">
            <summary>
            Parses severity information from log messages encoded by <see cref="T:Gallio.Runtime.Logging.SeverityPrefixLogger"/>.
            </summary>
            <seealso cref="T:Gallio.Runtime.Logging.SeverityPrefixLogger"/>
        </member>
        <member name="M:Gallio.Runtime.Logging.SeverityPrefixParser.ParseLine(System.String,Gallio.Runtime.Logging.LogSeverity@,System.String@)">
            <summary>
            Parses a line of log data.
            </summary>
            <param name="line">The line of log data to parse.</param>
            <param name="severity">Set to the severity of the message extracted from the line.</param>
            <param name="message">The message extracted from the line.</param>
            <returns>True if the message included a severity, false otherwise.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="line"/> is null.</exception>
        </member>
        <member name="T:Gallio.Runtime.Logging.TextLogger">
            <summary>
            A logger that writes output to a <see cref="T:System.IO.TextWriter"/>.
            </summary>
            <remarks>
            <para>
            To include severity information in the output, wrap this logger with a <see cref="T:Gallio.Runtime.Logging.SeverityPrefixLogger"/>.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Runtime.Logging.TextLogger.#ctor(System.IO.TextWriter)">
            <summary>
            Creates a text logger.
            </summary>
            <param name="textWriter">The text writer to which the log output should be written.</param>
        </member>
        <member name="M:Gallio.Runtime.Logging.TextLogger.LogImpl(Gallio.Runtime.Logging.LogSeverity,System.String,Gallio.Common.Diagnostics.ExceptionData)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runtime.Logging.Verbosity">
            <summary>
            Specifies the verbosity of the output.
            </summary>
        </member>
        <member name="F:Gallio.Runtime.Logging.Verbosity.Quiet">
            <summary>
             Will only display Error and Warning messages.
            </summary>
        </member>
        <member name="F:Gallio.Runtime.Logging.Verbosity.Normal">
            <summary>
            Will display Important, Warning and Error messages.
            </summary>
        </member>
        <member name="F:Gallio.Runtime.Logging.Verbosity.Verbose">
            <summary>
            Will display all messages, except Debug.
            </summary>
        </member>
        <member name="F:Gallio.Runtime.Logging.Verbosity.Debug">
            <summary>
            Will display all messages.
            </summary>
        </member>
        <member name="T:Gallio.Common.Platform.ProcessType">
            <summary>
            Describes the kind of process that is executing.
            </summary>
            <seealso cref="T:Gallio.Common.Platform.ProcessSupport"/>
        </member>
        <member name="F:Gallio.Common.Platform.ProcessType.Console">
            <summary>
            The process is running in the console.
            </summary>
        </member>
        <member name="F:Gallio.Common.Platform.ProcessType.Interactive">
            <summary>
            The process is running interactively.
            </summary>
        </member>
        <member name="F:Gallio.Common.Platform.ProcessType.Service">
            <summary>
            The process is running as a Windows service.
            </summary>
        </member>
        <member name="T:Gallio.Common.Messaging.NullMessageSink">
            <summary>
            A null message sink discards all messages sent to it.
            </summary>
        </member>
        <member name="F:Gallio.Common.Messaging.NullMessageSink.Instance">
            <summary>
            Gets the singleton instance of the null message sink.
            </summary>
        </member>
        <member name="M:Gallio.Common.Messaging.NullMessageSink.Publish(Gallio.Common.Messaging.Message)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Common.Messaging.QueuedMessageSink">
            <summary>
            Wraps a <see cref="T:Gallio.Common.Messaging.IMessageSink"/> and queues messages so that messages are
            published asynchronously.
            </summary>
        </member>
        <member name="M:Gallio.Common.Messaging.QueuedMessageSink.#ctor(Gallio.Common.Messaging.IMessageSink)">
            <summary>
            Creates a queued message sink.
            </summary>
            <param name="messageSink">The message sink to wrap.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="messageSink"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Messaging.QueuedMessageSink.Dispose">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Messaging.QueuedMessageSink.Publish(Gallio.Common.Messaging.Message)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Messaging.QueuedMessageSink.Flush">
            <summary>
            Flushes the queue.
            </summary>
        </member>
        <member name="T:Gallio.Common.Messaging.RemoteMessageSink">
            <summary>
            Wraps a <see cref="T:Gallio.Common.Messaging.IMessageSink"/> so that messages can be sent remotely.
            </summary>
        </member>
        <member name="M:Gallio.Common.Messaging.RemoteMessageSink.#ctor(Gallio.Common.Messaging.IMessageSink)">
            <summary>
            Creates a remote message sink.
            </summary>
            <param name="messageSink">The message sink to wrap.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="messageSink"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Messaging.RemoteMessageSink.Publish(Gallio.Common.Messaging.Message)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Common.Messaging.MessagingException">
            <summary>
            An exception thrown during a messaging failure.
            </summary>
        </member>
        <member name="M:Gallio.Common.Messaging.MessagingException.#ctor">
            <summary>
            Creates an exception.
            </summary>
        </member>
        <member name="M:Gallio.Common.Messaging.MessagingException.#ctor(System.String)">
            <summary>
            Creates an exception.
            </summary>
            <param name="message">The message.</param>
        </member>
        <member name="M:Gallio.Common.Messaging.MessagingException.#ctor(System.String,System.Exception)">
            <summary>
            Creates an exception.
            </summary>
            <param name="message">The message.</param>
            <param name="innerException">The inner exception.</param>
        </member>
        <member name="M:Gallio.Common.Messaging.MessagingException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Creates an exception from serialization info.
            </summary>
            <param name="info">The serialization info.</param>
            <param name="context">The streaming context.</param>
        </member>
        <member name="T:Gallio.Model.Messages.Logging.LogEntrySubmittedMessage">
            <summary>
            Notifies that a diagnostic log message has been submitted.
            </summary>
        </member>
        <member name="M:Gallio.Model.Messages.Logging.LogEntrySubmittedMessage.Validate">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.Messages.Logging.LogEntrySubmittedMessage.Normalize">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Model.Messages.Logging.LogEntrySubmittedMessage.Severity">
            <summary>
            Gets or sets the log severity.
            </summary>
        </member>
        <member name="P:Gallio.Model.Messages.Logging.LogEntrySubmittedMessage.Message">
            <summary>
            Gets or sets the log message.
            </summary>
        </member>
        <member name="P:Gallio.Model.Messages.Logging.LogEntrySubmittedMessage.ExceptionData">
            <summary>
            Gets or sets the exception, or null if none.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.NamespaceDoc">
            <summary>
            The Gallio.Runtime namespace contains types that define the component model, extensibility
            mechanism and core services used throughout the Gallio infrastructure.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.Preferences.FilePreferenceManager">
            <summary>
            An implementation of <see cref="T:Gallio.Runtime.Preferences.IPreferenceManager"/> based on files.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.Preferences.IPreferenceManager">
            <summary>
            Stores and retrieves user and machine preferences.
            </summary>
            <remarks>
            <para>
            For the API related to defining new preference panes and control panels
            refer to the types in the Gallio.UI assembly.
            </para>
            </remarks>
            <seealso cref="T:Gallio.Runtime.Preferences.IPreferenceSet"/>
            <seealso cref="T:Gallio.Runtime.Preferences.IPreferenceStore"/>
        </member>
        <member name="P:Gallio.Runtime.Preferences.IPreferenceManager.LocalUserPreferences">
            <summary>
            Gets a preference store for the current local user.
            </summary>
            <remarks>
            <para>
            These preferences are stored in the user's local application data directory.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Runtime.Preferences.IPreferenceManager.RoamingUserPreferences">
            <summary>
            Gets a preference store for the current roaming user.
            </summary>
            <remarks>
            <para>
            These preferences are stored in the user's roaming application data directory.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Runtime.Preferences.IPreferenceManager.CommonPreferences">
            <summary>
            Gets a preference store common to all users of this system.
            </summary>
            <remarks>
            <para>
            These preferences are stored in the system's common application data directory.
            </para>
            <para>
            All users can read common preferences but only administratators may
            edit them.  Moreover privilege elevation may be required on Vista and
            more recent Windows OS's.
            <seealso cref="T:Gallio.Runtime.Security.IElevationManager"/>
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Runtime.Preferences.FilePreferenceManager.#ctor">
            <summary>
            Initializes the preference manager.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.Preferences.FilePreferenceManager.LocalUserPreferences">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Runtime.Preferences.FilePreferenceManager.RoamingUserPreferences">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Runtime.Preferences.FilePreferenceManager.CommonPreferences">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runtime.Preferences.FilePreferenceSet">
            <summary>
            A preference set implementation based on storing preference settings within a file.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.Preferences.IPreferenceSet">
            <summary>
            Represents a set of related preference settings.
            </summary>
            <seealso cref="T:Gallio.Runtime.Preferences.IPreferenceStore"/>
            <seealso cref="T:Gallio.Runtime.Preferences.IPreferenceManager"/>
        </member>
        <member name="M:Gallio.Runtime.Preferences.IPreferenceSet.Read(Gallio.Common.Concurrency.ReadAction{Gallio.Runtime.Preferences.IPreferenceSetReader})">
            <summary>
            Obtains a reader for the preference set.
            </summary>
            <param name="readAction">The read action which is provided with the reader.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="readAction"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Preferences.IPreferenceSet.Read``1(Gallio.Common.Concurrency.ReadFunc{Gallio.Runtime.Preferences.IPreferenceSetReader,``0})">
            <summary>
            Obtains a reader for the preference set.
            </summary>
            <param name="readFunc">The read function which is provided with the reader.</param>
            <returns>The result of the read function.</returns>
            <typeparam name="TResult">The read function result type.</typeparam>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="readFunc"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Preferences.IPreferenceSet.Write(Gallio.Common.Concurrency.WriteAction{Gallio.Runtime.Preferences.IPreferenceSetWriter})">
            <summary>
            Obtains a writer for the preference set.
            </summary>
            <param name="writeAction">The write action which is provided with the reader.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="writeAction"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Preferences.IPreferenceSet.Write``1(Gallio.Common.Concurrency.WriteFunc{Gallio.Runtime.Preferences.IPreferenceSetWriter,``0})">
            <summary>
            Obtains a writer for the preference set.
            </summary>
            <param name="writeFunc">The write function which is provided with the reader.</param>
            <returns>The result of the write function.</returns>
            <typeparam name="TResult">The write function result type.</typeparam>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="writeFunc"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Preferences.FilePreferenceSet.#ctor(System.IO.FileInfo)">
            <summary>
            Creates a file preference set.
            </summary>
            <param name="preferenceSetFile">The preference set file.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="preferenceSetFile"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Preferences.FilePreferenceSet.Read(Gallio.Common.Concurrency.ReadAction{Gallio.Runtime.Preferences.IPreferenceSetReader})">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Preferences.FilePreferenceSet.Read``1(Gallio.Common.Concurrency.ReadFunc{Gallio.Runtime.Preferences.IPreferenceSetReader,``0})">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Preferences.FilePreferenceSet.Write(Gallio.Common.Concurrency.WriteAction{Gallio.Runtime.Preferences.IPreferenceSetWriter})">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Preferences.FilePreferenceSet.Write``1(Gallio.Common.Concurrency.WriteFunc{Gallio.Runtime.Preferences.IPreferenceSetWriter,``0})">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Runtime.Preferences.FilePreferenceSet.PreferenceSetFile">
            <summary>
            Gets the preference set file.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.Preferences.IPreferenceSetReader">
            <summary>
            Provides operations for reading preference settings within preference sets.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Preferences.IPreferenceSetReader.GetSetting``1(Gallio.Common.Collections.Key{``0})">
            <summary>
            Gets a preference setting.
            </summary>
            <param name="preferenceSettingKey">The preference setting key.</param>
            <returns>The setting value or <c>default(T)</c> if none.</returns>
            <typeparam name="T">The setting value type.</typeparam>
        </member>
        <member name="M:Gallio.Runtime.Preferences.IPreferenceSetReader.GetSetting``1(Gallio.Common.Collections.Key{``0},``0)">
            <summary>
            Gets a preference setting.
            </summary>
            <param name="preferenceSettingKey">The preference setting key.</param>
            <param name="defaultValue">The default value to return in case the setting does not exist.</param>
            <returns>The setting value or <paramref name="defaultValue"/> if none.</returns>
            <typeparam name="T">The setting value type.</typeparam>
        </member>
        <member name="M:Gallio.Runtime.Preferences.IPreferenceSetReader.HasSetting``1(Gallio.Common.Collections.Key{``0})">
            <summary>
            Returns true if the preference set contains a preference setting.
            </summary>
            <param name="preferenceSettingKey">The preference setting key.</param>
            <returns>True setting exists.</returns>
        </member>
        <member name="T:Gallio.Runtime.Preferences.IPreferenceSetWriter">
            <summary>
            Provides operations for writing preference settings.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Preferences.IPreferenceSetWriter.SetSetting``1(Gallio.Common.Collections.Key{``0},``0)">
            <summary>
            Sets a preference setting.
            </summary>
            <param name="preferenceSettingKey">The preference setting key.</param>
            <param name="value">The value to set, or null to remove the value.</param>
            <typeparam name="T">The setting value type.</typeparam>
        </member>
        <member name="M:Gallio.Runtime.Preferences.IPreferenceSetWriter.RemoveSetting``1(Gallio.Common.Collections.Key{``0})">
            <summary>
            Removes a preference setting.
            </summary>
            <param name="preferenceSettingKey">The preference setting key.</param>
        </member>
        <member name="T:Gallio.Runtime.Preferences.FilePreferenceStore">
            <summary>
            A preference store implementation based on storing preference sets as files within a directory.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.Preferences.IPreferenceStore">
            <summary>
            Stores and retrieves the contents of preference sets.
            </summary>
            <seealso cref="T:Gallio.Runtime.Preferences.IPreferenceSet"/>
            <seealso cref="T:Gallio.Runtime.Preferences.IPreferenceManager"/>
        </member>
        <member name="P:Gallio.Runtime.Preferences.IPreferenceStore.Item(System.String)">
            <summary>
            Gets the preference set with the specified name.
            </summary>
            <param name="preferenceSetName">The name of the preference set.</param>
            <returns>The preference set.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="preferenceSetName"/> is null.</exception>
            <exception cref="T:System.ArgumentException">Thrown if <paramref name="preferenceSetName"/> is empty.</exception>
        </member>
        <member name="M:Gallio.Runtime.Preferences.FilePreferenceStore.#ctor(System.IO.DirectoryInfo)">
            <summary>
            Creates a file preference store.
            </summary>
            <param name="preferenceStoreDir">The preference store directory.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="preferenceStoreDir"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runtime.Preferences.FilePreferenceStore.PreferenceStoreDir">
            <summary>
            Gets the preference store directory.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.Preferences.FilePreferenceStore.Item(System.String)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runtime.Preferences.NamespaceDoc">
            <summary>
            The Gallio.Runtime.Preferences namespace contains types for loading and
            saving user preferences.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.Preferences.Schema.NamespaceDoc">
            <summary>
            The Gallio.Runtime.Preferences.Schema namespace contains the preference store Xml schema.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.ProgressMonitoring.BaseProgressMonitorPresenter">
            <summary>
            Abstract base class for objects whose purpose is to present progress
            information to the user.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.ProgressMonitoring.IProgressMonitorPresenter">
            <summary>
            A progress monitor presenter attaches a progress monitor to a view.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.ProgressMonitoring.IProgressMonitorPresenter.Present(Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor)">
            <summary>
            Presents an observable progress monitor.
            </summary>
            <param name="progressMonitor">The progress monitor to present.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="progressMonitor"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Thrown if the presenter does not support being
            reused to present multiple progress monitors.</exception>
        </member>
        <member name="M:Gallio.Runtime.ProgressMonitoring.BaseProgressMonitorPresenter.Present(Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.ProgressMonitoring.BaseProgressMonitorPresenter.Initialize">
            <summary>
            Initializes the presenter after a progress monitor has been attached.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.ProgressMonitoring.BaseProgressMonitorPresenter.ProgressMonitor">
            <summary>
            Gets the attached progress monitor.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.ProgressMonitoring.BaseProgressMonitorProvider">
            <summary>
            An abstract base class to assist with the implementation of conformant
            <see cref="T:Gallio.Runtime.ProgressMonitoring.IProgressMonitorProvider"/> classes.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.ProgressMonitoring.IProgressMonitorProvider">
            <summary>
            A progress monitor provider runs a task with progress monitoring
            and provides clear notification of cancelation in the form of
            an <see cref="T:System.OperationCanceledException"/>.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.ProgressMonitoring.IProgressMonitorProvider.Run(Gallio.Runtime.ProgressMonitoring.TaskWithProgress)">
            <summary>
            Runs a task with a progress monitor.
            </summary>
            <remarks>
            <para>
            The provider should automatically dispose of the progress monitor
            in case the task forgets to do so.  It is also responsible for calling
            <see cref="M:Gallio.Runtime.ProgressMonitoring.IProgressMonitor.ThrowIfCanceled"/> before and after running
            the task to ensure that the <see cref="T:System.OperationCanceledException"/> is
            thrown as required.
            </para>
            <para>
            The provider can choose to execute the task in a different thread
            but the method should still complete synchronously.
            </para>
            </remarks>
            <param name="task">The task to run, never null.</param>
            <exception cref="T:System.OperationCanceledException">Thrown if the task is canceled.</exception>
        </member>
        <member name="M:Gallio.Runtime.ProgressMonitoring.IProgressMonitorProvider.Run``1(Gallio.Runtime.ProgressMonitoring.TaskWithProgress{``0})">
            <summary>
            Runs a task which returns a result with a progress monitor.
            </summary>
            <remarks>
            <para>
            The provider should automatically dispose of the progress monitor
            in case the task forgets to do so.  It is also responsible for calling
            <see cref="M:Gallio.Runtime.ProgressMonitoring.IProgressMonitor.ThrowIfCanceled"/> before and after running
            the task to ensure that the <see cref="T:System.OperationCanceledException"/> is
            thrown as required.
            </para>
            <para>
            The provider can choose to execute the task in a different thread
            but the method should still complete synchronously.
            </para>
            </remarks>
            <param name="task">The task to run, never null.</param>
            <exception cref="T:System.OperationCanceledException">Thrown if the task is canceled.</exception>
            <typeparam name="T">The type of the result returned by the task.</typeparam>
        </member>
        <member name="M:Gallio.Runtime.ProgressMonitoring.BaseProgressMonitorProvider.Run(Gallio.Runtime.ProgressMonitoring.TaskWithProgress)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.ProgressMonitoring.BaseProgressMonitorProvider.Run``1(Gallio.Runtime.ProgressMonitoring.TaskWithProgress{``0})">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.ProgressMonitoring.BaseProgressMonitorProvider.GetPresenter">
            <summary>
            Gets a presenter for the progress monitor.
            </summary>
            <returns>The presenter.</returns>
        </member>
        <member name="T:Gallio.Runtime.ProgressMonitoring.CancelableProgressMonitor">
            <summary>
            An abstract base class for progress monitors that implements the cancelation
            semantics only.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.ProgressMonitoring.IProgressMonitor">
            <summary>
            A progress monitor provides facilities for core functionality to report
            progress of a long running operation.  
            </summary>
            <remarks>
            <para>
            The interface is typically implemented by a UI component such as a progress dialog.
            </para>
            <para>
            This interface is inspired from IProgressMonitor in the Eclipse API
            and was derived from the Castle.FlexBridge client-side components.
            </para>
            <para>
            This interface is mostly not safe for use by multiple concurrent
            threads.  Do not share a progress monitor instance across threads!
            <seealso cref="E:Gallio.Runtime.ProgressMonitoring.IProgressMonitor.Canceled"/> for special rules regarding the handling
            of the cancelation event.
            </para>
            <para>
            The <see cref="M:Gallio.Runtime.ProgressMonitoring.IProgressMonitor.BeginTask(System.String,System.Double)"/> method returns a <see cref="T:Gallio.Runtime.ProgressMonitoring.ProgressMonitorTaskCookie"/>
            which implements <see cref="T:System.IDisposable"/> as a convenience for use
            with the C# "using" statement.  Disposing the cookie is precisely equivalent to
            calling the <see cref="M:Gallio.Runtime.ProgressMonitoring.IProgressMonitor.Done"/> method of the progress monitor.
            </para>
            </remarks>
            <example>
            <code><![CDATA[
            // Copy a number of files to another directory, updating the progress
            // monitor before each file is copied to provide status feedback and
            // then after each file is copied to provide progress feedback.
            const int CostOfCopyingFile = 1;
            const int CostOfRunningExpensiveTask = 10;
            
            IProgressMonitor progressMonitor = progressMonitorDialog.GetProgressMonitor())
            
            using (progressMonitor.BeginTask("Copy files", files.Length * CostOfCopyingFile + CostOfRunningExpensiveTask))
            { 
                foreach (FileInfo file in files)
                {
                    if (progressMonitor.IsCancelled)
                        return;
            
                    progressMonitor.SetStatus("Copying: " + file.Name);
                    File.Copy(file.FullName, Path.Combine(destinationFolder, file.Name))
                    progressMonitor.Worked(CostOfCopyingFile);
                }
                
                progressMonitor.SetStatus("");
                DoExpensiveTask(progressMonitor.CreateSubProgressMonitor(CostOfRunningExpensiveTask));
            }
            ]]></code>
            </example>
        </member>
        <member name="M:Gallio.Runtime.ProgressMonitoring.IProgressMonitor.BeginTask(System.String,System.Double)">
            <summary>
            Notifies that the main task is starting.
            </summary>
            <remarks>
            <para>
            Must be called at most once on the progress monitor.
            </para>
            <para>
            Not safe for use by multiple concurrent threads.
            </para>
            </remarks>
            <param name="taskName">The name of the task being monitored.</param>
            <param name="totalWorkUnits">The total number of work units to perform.  Must
            be greater than 0, or <see cref="F:System.Double.NaN"/> if an indeterminate amount
            of work is to be performed.</param>
            <returns>An object that calls <see cref="M:Gallio.Runtime.ProgressMonitoring.IProgressMonitor.Done"/> when disposed.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="taskName"/> is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="totalWorkUnits"/> is not valid.</exception>
            <exception cref="T:System.InvalidOperationException">Thrown if <see cref="M:Gallio.Runtime.ProgressMonitoring.IProgressMonitor.BeginTask(System.String,System.Double)"/> or <see cref="M:Gallio.Runtime.ProgressMonitoring.IProgressMonitor.Done"/> have already been called.</exception>
        </member>
        <member name="M:Gallio.Runtime.ProgressMonitoring.IProgressMonitor.SetStatus(System.String)">
            <summary>
            Sets detailed status information for the current task or subtask.
            </summary>
            <remarks>
            <para>
            A status message is an optional fine-grained description of the current
            activity being performed.  For instance, a status message might specify 
            the name of a file being copied as part of a task that copies many files.
            </para>
            <para>
            Not safe for use by multiple concurrent threads.
            </para>
            </remarks>
            <param name="status">The name of the current subtask.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="status"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Thrown if the task is not running.</exception>
        </member>
        <member name="M:Gallio.Runtime.ProgressMonitoring.IProgressMonitor.Worked(System.Double)">
            <summary>
            Notifies that a given number of work units of the main task
            have been completed.
            </summary>
            <remarks>
            <para>
            Note that this amount represents an installment,
            as opposed to a cumulative amount of work done to date.  If the sum of this
            value and the currently completed work units exceeds the total work units
            to be performed, the excess portion is discarded.
            </para>
            <para>
            Not safe for use by multiple concurrent threads.
            </para>
            </remarks>
            <param name="workUnits">The number of work units completed so far.  Must be
            a finite value greater than or equal to 0.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="workUnits"/> is not valid.</exception>
            <exception cref="T:System.InvalidOperationException">Thrown if the task is not running.</exception>
        </member>
        <member name="M:Gallio.Runtime.ProgressMonitoring.IProgressMonitor.Cancel">
            <summary>
            Notifies that the operation is to be canceled.
            </summary>
            <remarks>
            <para>
            The method always causes the <see cref="P:Gallio.Runtime.ProgressMonitoring.IProgressMonitor.IsCanceled"/> flag to be
            set, even if the operation is already done.
            </para>
            <para>
            It is safe to call this method before <see cref="M:Gallio.Runtime.ProgressMonitoring.IProgressMonitor.BeginTask(System.String,System.Double)"/> in which
            case the task will begin in an already canceled state.
            </para>
            <para>
            Not safe for use by multiple concurrent threads.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Runtime.ProgressMonitoring.IProgressMonitor.Done">
            <summary>
            Notifies that the work is done, either the main task is completed
            was cancelled by the user. If already done, the method has no effect.
            </summary>
            <remarks>
            <para>
            This method automatically sets the amount of work remaining to zero.
            It also sets the amount of work completed to the total unless it was
            indeterminate or <see cref="M:Gallio.Runtime.ProgressMonitoring.IProgressMonitor.BeginTask(System.String,System.Double)"/> was never called.
            </para>
            <para>
            It is safe to call this method without calling <see cref="M:Gallio.Runtime.ProgressMonitoring.IProgressMonitor.BeginTask(System.String,System.Double)"/>
            first in which case the task is immediately completed without ever
            having run.  However, <see cref="M:Gallio.Runtime.ProgressMonitoring.IProgressMonitor.BeginTask(System.String,System.Double)"/> may not subsequently be
            called.
            </para>
            <para>
            If there are any currently active subtasks, they are automatically
            ended by this method exactly as if each subtask's <see cref="T:Gallio.Runtime.ProgressMonitoring.IProgressMonitor"/>
            had been notified that the work was done.  This policy simplifies error
            recovery in situations where the main task may have been abruptly aborted
            without proper cleanup of its subtasks such as when severe exceptions occur.
            It is preferable to tolerate the error rather than to exacerbate it by enforcing
            stricter rules on subtasks.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Runtime.ProgressMonitoring.IProgressMonitor.CreateSubProgressMonitor(System.Double)">
            <summary>
            Creates a sub-progress monitor that represents a given number of
            work-units as a sub-task of this progress monitor.
            </summary>
            <remarks>
            <para>
            Using sub-tasks allows multiple tasks to be composed into longer sequences
            that each contribute a predetermined portion of the total work.
            </para>
            <para>
            As the sub-task performs work its parent task is notified of progress
            in proportion to the number of work units that it represents.  Likewise the
            parent is notified of cancelation if the child is canceled and vice-versa.
            </para>
            <para>
            It it still necessary to call <see cref="M:Gallio.Runtime.ProgressMonitoring.IProgressMonitor.BeginTask(System.String,System.Double)"/> on the
            sub-progress monitor to begin processing the sub-task.
            </para>
            </remarks>
            <param name="parentWorkUnits">The total number of work units of the parent task
            that are to be represented by the sub-task.  When the sub-task completes, this much
            work will have been performed on the parent.
            Must be a finite value greater than or equal to 0.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="parentWorkUnits"/> is not valid.</exception>
        </member>
        <member name="M:Gallio.Runtime.ProgressMonitoring.IProgressMonitor.ThrowIfCanceled">
            <summary>
            Throws an <see cref="T:System.OperationCanceledException"/> if the operation
            has been canceled.
            </summary>
            <exception cref="T:System.OperationCanceledException">Thrown if <see cref="P:Gallio.Runtime.ProgressMonitoring.IProgressMonitor.IsCanceled"/> is true.</exception>
        </member>
        <member name="E:Gallio.Runtime.ProgressMonitoring.IProgressMonitor.Canceled">
            <summary>
            Adds or removes an event handler to be called when the operation is canceled.
            </summary>
            <remarks>
            <para>
            If the operation has already been canceled, then the event handler will be
            called immediately.
            </para>
            <para>
            Because the event may be delivered on a different thread from
            the one executing the main task, it is an error for the handler
            of this event to call any methods of this <see cref="T:Gallio.Runtime.ProgressMonitoring.IProgressMonitor"/>.
            Instead it should simply notify its main task to quit if possible
            (possibly by interrupting the main task's thread).  Thus when the
            main task terminates, it will call <see cref="M:Gallio.Runtime.ProgressMonitoring.IProgressMonitor.Done"/> itself
            to clean up.
            </para>
            <para>
            The event handler should not block or throw exceptions.  If it
            must perform any possibly long-running tasks of its own (such as
            synchronizing with processing threads) it should queue up an
            asynchronous task (possibly using the <see cref="T:System.Threading.ThreadPool"/>).
            </para>
            <para>
            Unlike the other members of this interface, adding and removing event
            handlers is safe for use by multiple concurrent threads.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Runtime.ProgressMonitoring.IProgressMonitor.IsCanceled">
            <summary>
            Returns true if the operation has been canceled.
            </summary>
            <remarks>
            <para>
            Clients should poll this value periodically or listen for the
            <see cref="E:Gallio.Runtime.ProgressMonitoring.IProgressMonitor.Canceled"/> event to ensure the operation is
            canceled in a timely fashion.
            </para>
            <para>
            Not safe for use by multiple concurrent threads.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Runtime.ProgressMonitoring.CancelableProgressMonitor.Cancel">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.ProgressMonitoring.CancelableProgressMonitor.ThrowIfCanceled">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.ProgressMonitoring.CancelableProgressMonitor.Dispose">
            <summary>
            Disposes the progress monitor, including cleaning up an marking as <see cref="M:Gallio.Runtime.ProgressMonitoring.CancelableProgressMonitor.Done"/>
            the current task, if any.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.ProgressMonitoring.CancelableProgressMonitor.BeginTask(System.String,System.Double)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.ProgressMonitoring.CancelableProgressMonitor.SetStatus(System.String)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.ProgressMonitoring.CancelableProgressMonitor.Worked(System.Double)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.ProgressMonitoring.CancelableProgressMonitor.Done">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.ProgressMonitoring.CancelableProgressMonitor.CreateSubProgressMonitor(System.Double)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.ProgressMonitoring.CancelableProgressMonitor.NotifyCanceled">
            <summary>
            Notifies that the task has actually been canceled.
            </summary>
            <remarks>
            <para>
            If this is the first time <see cref="M:Gallio.Runtime.ProgressMonitoring.CancelableProgressMonitor.NotifyCanceled"/> has been called,
            sets <see cref="P:Gallio.Runtime.ProgressMonitoring.CancelableProgressMonitor.IsCanceled"/> to true and fires the <see cref="E:Gallio.Runtime.ProgressMonitoring.CancelableProgressMonitor.Canceled"/> event.
            Otherwise does nothing.
            </para>
            <para>
            This is the ONLY method of the progress monitor that is allowed to
            be called concurrently from multiple threads.  It needs to be this
            way so that cancelation can be initiated by either participant in the
            progress monitoring dialog.
            </para>
            </remarks>
            <returns>True if cancelation has just occurred, false if no
            state change was performed.</returns>
        </member>
        <member name="M:Gallio.Runtime.ProgressMonitoring.CancelableProgressMonitor.OnCancel">
            <summary>
            Called when <see cref="M:Gallio.Runtime.ProgressMonitoring.CancelableProgressMonitor.Cancel"/> performs its updates.
            </summary>
            <remarks>
            <para>
            This method is not called by <see cref="M:Gallio.Runtime.ProgressMonitoring.CancelableProgressMonitor.NotifyCanceled"/>.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Runtime.ProgressMonitoring.CancelableProgressMonitor.Dispose(System.Boolean)">
            <summary>
            Disposes the progress monitor, including cleaning up an marking as <see cref="M:Gallio.Runtime.ProgressMonitoring.CancelableProgressMonitor.Done"/>
            the current task, if any.
            </summary>
            <param name="disposing">True if <see cref="M:Gallio.Runtime.ProgressMonitoring.CancelableProgressMonitor.Dispose"/> was called.</param>
        </member>
        <member name="E:Gallio.Runtime.ProgressMonitoring.CancelableProgressMonitor.Canceled">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Runtime.ProgressMonitoring.CancelableProgressMonitor.IsCanceled">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runtime.ProgressMonitoring.LogProgressMonitorPresenter">
            <summary>
            Displays progress by writing a series of messages to an <see cref="T:Gallio.Runtime.Logging.ILogger"/> as the name
            of the current task changes.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.ProgressMonitoring.LogProgressMonitorPresenter.#ctor(Gallio.Runtime.Logging.ILogger)">
            <summary>
            Create a logged progress monitor presenter.
            </summary>
            <param name="logger">A logger instance to which messages will be written.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="logger"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.ProgressMonitoring.LogProgressMonitorPresenter.Initialize">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runtime.ProgressMonitoring.LogProgressMonitorProvider">
            <summary>
            Displays progress by writing a series of messages to an <see cref="T:Gallio.Runtime.Logging.ILogger"/> as the name
            of the current task changes.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.ProgressMonitoring.LogProgressMonitorProvider.#ctor(Gallio.Runtime.Logging.ILogger)">
            <summary>
            Creates a log progress monitor provider.
            </summary>
            <param name="logger">The logger to which messages should be written.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="logger"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.ProgressMonitoring.LogProgressMonitorProvider.GetPresenter">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runtime.ProgressMonitoring.NamespaceDoc">
            <summary>
            The Gallio.Runtime.ProgressMonitoring namespace contains types for reporting
            progress from long-running operations.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.ProgressMonitoring.NullProgressMonitor">
            <summary>
            Creates instances of null progress monitors that do nothing.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.ProgressMonitoring.NullProgressMonitor.CreateInstance">
            <summary>
            Creates a null progress monitor.
            </summary>
            <returns>The null progress monitor.</returns>
        </member>
        <member name="T:Gallio.Runtime.ProgressMonitoring.NullProgressMonitorPresenter">
            <summary>
            A null progress monitor presenter simply does nothing.
            </summary>
        </member>
        <member name="F:Gallio.Runtime.ProgressMonitoring.NullProgressMonitorPresenter.Instance">
            <summary>
            Gets the singleton instance of the presenter.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.ProgressMonitoring.NullProgressMonitorPresenter.Present(Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runtime.ProgressMonitoring.NullProgressMonitorProvider">
            <summary>
            Runs tasks without reporting any progress.
            </summary>
            <remarks>
            <para>
            Argument validation and state changes are still noted but they do not have any outward effect.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Runtime.ProgressMonitoring.NullProgressMonitorProvider.GetPresenter">
            <excludedoc />
        </member>
        <member name="P:Gallio.Runtime.ProgressMonitoring.NullProgressMonitorProvider.Instance">
            <summary>
            Gets the singleton instance of the provider.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor">
            <summary>
            An observable progress monitor tracks validates arguments and tracks the state
            of the progress monitor but it does not implement any of its own behavior in response
            to the notifications received.  
            </summary>
            <remarks>
            <para>
            Instead, it is intended to be observed by a presenter that
            translates state change events into changes of the view.
            </para>
            </remarks>
            <seealso cref="T:Gallio.Runtime.ProgressMonitoring.IProgressMonitor"/>
        </member>
        <member name="M:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.BeginTask(System.String,System.Double)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.SetStatus(System.String)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.Worked(System.Double)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.Done">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.CreateSubProgressMonitor(System.Double)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.OnBeginTask(System.String,System.Double)">
            <summary>
            Called after <see cref="M:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.BeginTask(System.String,System.Double)"/> performs its updates.
            </summary>
            <param name="taskName">The task name.</param>
            <param name="totalWorkUnits">The total number of work units.</param>
        </member>
        <member name="M:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.OnWorked(System.Double)">
            <summary>
            Called when <see cref="M:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.Worked(System.Double)"/> performs its updates.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.OnDone">
            <summary>
            Called when <see cref="M:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.Done"/> performs its updates.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.OnSetStatus(System.String)">
            <summary>
            Called when <see cref="M:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.SetStatus(System.String)"/> performs its updates.
            </summary>
            <param name="status">The status message.</param>
        </member>
        <member name="M:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.OnBeginSubTask(Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor)">
            <summary>
            Called when the active sub-task <see cref="M:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.BeginSubTask(Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor)"/> performs its updates.
            </summary>
            <param name="subProgressMonitor">The sub-task's progress monitor.</param>
        </member>
        <member name="M:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.OnEndSubTask(Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor)">
            <summary>
            Called when <see cref="M:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.EndSubTask(Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor)"/> performs its updates.
            </summary>
            <param name="subProgressMonitor">The sub-task's progress monitor.</param>
        </member>
        <member name="M:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.OnRecursiveSubTaskChange(Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor)">
            <summary>
            Called when <see cref="M:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.NotifyRecursiveSubTaskChanged(Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor)"/> performs its updates.
            </summary>
            <param name="subProgressMonitor">The sub-task's progress monitor.</param>
        </member>
        <member name="M:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.OnChange">
            <summary>
            Called when a state change occurs.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.OnSubProgressMonitorCreated(Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor)">
            <summary>
            Called when a new progress monitor is created.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.OnCancel">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.BeginSubTask(Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor)">
            <summary>
            Begins a sub-task in a sub-progress monitor.
            </summary>
            <param name="subProgressMonitor">The sub-progress monitor.</param>
        </member>
        <member name="M:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.EndSubTask(Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor)">
            <summary>
            Ends a sub-task in a sub-progress monitor.
            </summary>
            <param name="subProgressMonitor">The sub-progress monitor.</param>
        </member>
        <member name="M:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.NotifyRecursiveSubTaskChanged(Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor)">
            <summary>
            Called when a subtask changes in any way, including one of its own subtasks changing.
            </summary>
            <param name="subProgressMonitor">The sub-progress monitor.</param>
        </member>
        <member name="E:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.Changed">
            <summary>
            Adds or removes an event handler that is called whenever the state of the progress
            monitor changes in any way.
            </summary>
        </member>
        <member name="E:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.TaskStarting">
            <summary>
            Adds or removes an event handler that is called when the task is starting.
            </summary>
        </member>
        <member name="E:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.TaskFinished">
            <summary>
            Adds or removes an event handler that is called when the task is finished.
            </summary>
        </member>
        <member name="E:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.SubProgressMonitorCreated">
            <summary>
            Adds or removes an event handler that is called whenever a new sub-progress monitor
            is created so that the observer can attach its event handlers.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.IsRunning">
            <summary>
            Returns true if <see cref="M:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.BeginTask(System.String,System.Double)"/> has been called and <see cref="M:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.Done"/>
            has not yet also been called.
            </summary>
            <remarks>
            <para>
            This property is not affected by cancelation.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.IsDone">
            <summary>
            Returns true if <see cref="M:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.Done"/> has been called.
            </summary>
            <remarks>
            <para>
            This property is not affected by cancellation.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.TotalWorkUnits">
            <summary>
            Gets the total number of work units to perform, or
            NaN to indicate that an indeterminate amount of work is
            to be performed.
            </summary>
            <remarks>
            <para>
            Returns <see cref="F:System.Double.NaN"/> if <see cref="M:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.BeginTask(System.String,System.Double)"/> has not been called.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.CompletedWorkUnits">
            <summary>
            Gets the number of work units completed so far.
            </summary>
            <remarks>
            <para>
            It is the sum of all values passed to the <see cref="M:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.Worked(System.Double)"/> method while
            the task has been running. This value is never NaN because at each
            step a finite amount of work must be recorded.
            </para>
            <para>
            Returns 0 if <see cref="M:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.BeginTask(System.String,System.Double)"/> and <see cref="M:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.Worked(System.Double)"/> have
            not been called.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.RemainingWorkUnits">
            <summary>
            Gets the number of remaining work units to perform, or <see cref="F:System.Double.NaN"/>.
            </summary>
            <remarks>
            <para>
            <see cref="F:System.Double.NaN"/> is returned to to indicate that an indeterminate amount of 
            work remains to be performed because <see cref="P:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.TotalWorkUnits"/> is <see cref="F:System.Double.NaN"/>
            and the operation is not done.
            </para>
            <para>
            Returns <see cref="F:System.Double.NaN"/> if <see cref="M:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.BeginTask(System.String,System.Double)"/> has not been called.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.TaskName">
            <summary>
            Gets the name of the task or an empty string if <see cref="M:Gallio.Runtime.ProgressMonitoring.IProgressMonitor.BeginTask(System.String,System.Double)"/> has
            not been called.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.Status">
            <summary>
            Gets the current status message set by <see cref="M:Gallio.Runtime.ProgressMonitoring.IProgressMonitor.SetStatus(System.String)"/> or an empty
            string by default.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.Child">
            <summary>
            Gets the active child sub-progress monitor, or null if none.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.Leaf">
            <summary>
            Gets the currently active leaf sub-progress monitor, or this one if there are
            no sub-progress monitors.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.LeafSubTaskName">
            <summary>
            Gets the name of the most deeply nested sub-task, or an empty string if
            there are no sub-progress monitors.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.LeafStatus">
            <summary>
            Gets the status of the most deeply nested sub-task, or the status of this
            task if there are no sub-progress monitors.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.SubProgressMonitor">
            <summary>
            A standard sub-progress monitor implementation that notifies its parent as work is performed.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.SubProgressMonitor.#ctor(Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor,System.Double)">
            <summary>
            Creates a sub-progress monitor.
            </summary>
            <param name="parent">The parent progress monitor.</param>
            <param name="parentWorkUnits">The total number of work units of the parent task
            that are to be represented by the sub-task.</param>
        </member>
        <member name="M:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.SubProgressMonitor.OnBeginTask(System.String,System.Double)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.SubProgressMonitor.OnWorked(System.Double)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.SubProgressMonitor.OnCancel">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.SubProgressMonitor.OnDone">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor.SubProgressMonitor.OnChange">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runtime.ProgressMonitoring.RemoteProgressMonitor">
            <summary>
            A remote progress monitor is a serializable wrapper for another progress monitor.
            </summary>
            <remarks>
            <para>
            The wrapper can be passed to another AppDomain and communication occurs over
            .Net remoting.
            </para>
            <para>
            The implementation is defined so as to guard against latency and failures
            in the remoting channel.
            </para>
            </remarks>
            <seealso cref="T:Gallio.Runtime.ProgressMonitoring.IProgressMonitor"/> for important thread-safety and usage remarks.
        </member>
        <member name="M:Gallio.Runtime.ProgressMonitoring.RemoteProgressMonitor.#ctor(Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
            <summary>
            Creates a wrapper for the specified progress monitor.
            </summary>
            <param name="progressMonitor">The progress monitor.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="progressMonitor"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.ProgressMonitoring.RemoteProgressMonitor.BeginTask(System.String,System.Double)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.ProgressMonitoring.RemoteProgressMonitor.SetStatus(System.String)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.ProgressMonitoring.RemoteProgressMonitor.Worked(System.Double)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.ProgressMonitoring.RemoteProgressMonitor.Done">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.ProgressMonitoring.RemoteProgressMonitor.CreateSubProgressMonitor(System.Double)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.ProgressMonitoring.RemoteProgressMonitor.OnCancel">
            <excludedoc />
        </member>
        <member name="M:Gallio.Runtime.ProgressMonitoring.RemoteProgressMonitor.Dispose(System.Boolean)">
            <excludedoc />
        </member>
        <member name="T:Gallio.Runtime.ProgressMonitoring.RemoteProgressMonitor.Forwarder">
            <summary>
            Forwards messages to the host's progress monitor.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.ProgressMonitoring.RemoteProgressMonitor.Dispatcher">
            <summary>
            Dispatches events to the remote progress monitor.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.ProgressMonitoring.RichConsoleProgressMonitorPresenter">
            <summary>
            A console progress monitor presenter displays a simple tally of the amount of work
            to be done on the main task as a bar chart.
            </summary>
            <remarks>
            <para>
            The progress monitor responds to cancelation events at the console.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Runtime.ProgressMonitoring.RichConsoleProgressMonitorPresenter.#ctor(Gallio.Runtime.ConsoleSupport.IRichConsole)">
            <summary>
            Creates a console presenter for a progress monitor.
            </summary>
            <param name="console">The console.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="console"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.ProgressMonitoring.RichConsoleProgressMonitorPresenter.Initialize">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.ProgressMonitoring.RichConsoleProgressMonitorPresenter.Sanitize(System.String)">
            <summary>
            It can happen that we'll receive all kinds of weird input because
            task names and status messages can be derived from user-data.
            </summary>
            <remarks>
            <para>
            Make sure it doesn't corrupt the display integrity.
            </para>
            </remarks>
        </member>
        <member name="T:Gallio.Runtime.ProgressMonitoring.RichConsoleProgressMonitorProvider">
            <summary>
            A console progress monitor displays a simple tally of the amount of work
            to be done on the main task as a bar chart.
            </summary>
            <remarks>
            <para>
            The progress monitor responds to cancelation events at the console.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Runtime.ProgressMonitoring.RichConsoleProgressMonitorProvider.#ctor(Gallio.Runtime.ConsoleSupport.IRichConsole)">
            <summary>
            Creates a rich console progress monitor provider.
            </summary>
            <param name="console">The console to which messages should be written.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="console"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.ProgressMonitoring.RichConsoleProgressMonitorProvider.GetPresenter">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runtime.ProgressMonitoring.SubProgressMonitorCreatedEventArgs">
            <summary>
            Provides a reference to the newly created sub-progress monitor.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.ProgressMonitoring.SubProgressMonitorCreatedEventArgs.#ctor(Gallio.Runtime.ProgressMonitoring.ObservableProgressMonitor)">
            <summary>
            Creates an event object.
            </summary>
            <param name="subProgressMonitor">The new sub-progress monitor.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="subProgressMonitor"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runtime.ProgressMonitoring.SubProgressMonitorCreatedEventArgs.SubProgressMonitor">
            <summary>
            Gets the newly created sub-progress monitor.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.ProgressMonitoring.TaskWithProgress">
            <summary>
            Represents a task to be executed with a progress monitor.
            </summary>
            <param name="progressMonitor">The progress monitor, never null.</param>
        </member>
        <member name="T:Gallio.Runtime.ProgressMonitoring.TaskWithProgress`1">
            <summary>
            Represents a task to be executed with a progress monitor.
            </summary>
            <param name="progressMonitor">The progress monitor, never null.</param>
            <typeparam name="T">The type of the result returned by the task.</typeparam>
        </member>
        <member name="T:Gallio.Runtime.ProgressMonitoring.ProgressMonitorTaskCookie">
            <summary>
            A progress monitor task cookie represents a task in progress.  
            </summary>
            <remarks>
            <para>
            When it is disposed, the corresponding <see cref="T:Gallio.Runtime.ProgressMonitoring.IProgressMonitor"/>'s 
            <see cref="M:Gallio.Runtime.ProgressMonitoring.IProgressMonitor.Done"/> method is called.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Runtime.ProgressMonitoring.ProgressMonitorTaskCookie.#ctor(Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
            <summary>
            Creates an object representing a task in progress.
            </summary>
            <param name="progressMonitor">The progress monitor.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="progressMonitor"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.ProgressMonitoring.ProgressMonitorTaskCookie.Dispose">
            <summary>
            Marks the task as finished.
            </summary>
            <remarks>
            <para>
            Equivalent to calling <see cref="M:Gallio.Runtime.ProgressMonitoring.IProgressMonitor.Done"/> on the associated <see cref="T:Gallio.Runtime.ProgressMonitoring.IProgressMonitor"/>.
            This method is provded as a convenience for use with the C# using statement.
            </para>
            </remarks>
        </member>
        <member name="T:Gallio.Runtime.Extensibility.RegistryServiceLocator">
            <summary>
            A service locator implementation based on a registry.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.RegistryServiceLocator.#ctor(Gallio.Runtime.Extensibility.IRegistry)">
            <summary>
            Creates a service locator based on a registry.
            </summary>
            <param name="registry">The registry.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="registry"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.RegistryServiceLocator.Resolve``1">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Extensibility.RegistryServiceLocator.Resolve(System.Type)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Extensibility.RegistryServiceLocator.ResolveAll``1">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Extensibility.RegistryServiceLocator.ResolveAll(System.Type)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Extensibility.RegistryServiceLocator.ResolveByComponentId(System.String)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Extensibility.RegistryServiceLocator.ResolveHandle``2">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Extensibility.RegistryServiceLocator.ResolveHandle(System.Type)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Extensibility.RegistryServiceLocator.ResolveAllHandles``2">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Extensibility.RegistryServiceLocator.ResolveAllHandles(System.Type)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Extensibility.RegistryServiceLocator.ResolveHandleByComponentId(System.String)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Extensibility.RegistryServiceLocator.HasService(System.Type)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Extensibility.RegistryServiceLocator.HasComponent(System.String)">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Runtime.Extensibility.RegistryServiceLocator.Registry">
            <summary>
            Gets the registry.
            </summary>
        </member>
        <member name="T:Gallio.Framework.Data.AggregateDataSet">
            <summary>
            Abstract base class for an aggregate data set that combines a list of data
            sets according to some algorithm.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Data.AggregateDataSet.AddDataSet(Gallio.Framework.Data.IDataSet)">
            <summary>
            Adds a data set to the aggregate.
            </summary>
            <param name="dataSet">The data set to add.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="dataSet"/> is null.</exception>
            <exception cref="T:System.ArgumentException">Thrown if <paramref name="dataSet"/> is already a member of this aggregate.</exception>
        </member>
        <member name="P:Gallio.Framework.Data.AggregateDataSet.DataSets">
            <summary>
            Gets the immutable list of combined data sets.
            </summary>
        </member>
        <member name="T:Gallio.Framework.Data.ValueSequenceDataSet">
            <summary>
            A data set constructed from an enumerated sequence of values.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Data.ValueSequenceDataSet.#ctor(System.Collections.IEnumerable,System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.String}},System.Boolean)">
            <summary>
            Creates a column sequence data set with optional metadata.
            </summary>
            <param name="values">The sequence of column values, each generating an item.</param>
            <param name="metadataPairs">The metadata key/value pair enumeration, or null if none.</param>
            <param name="isDynamic">True if the sequence is dynamic.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="values"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.Data.ValueSequenceDataSet.CanBindImpl(Gallio.Framework.Data.DataBinding)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Data.ValueSequenceDataSet.GetItemsImpl(System.Collections.Generic.ICollection{Gallio.Framework.Data.DataBinding},System.Boolean)">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Framework.Data.ValueSequenceDataSet.ColumnCount">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Framework.Data.CombinatorialJoinStrategy">
            <summary>
            The combinatorial join strategy combines items by constructing the cartesian
            product of the items of each provider.
            </summary>
            <seealso cref="T:Gallio.Framework.Data.PairwiseJoinStrategy"/>
        </member>
        <member name="T:Gallio.Framework.Data.IJoinStrategy">
            <summary>
            A join strategy combines items from multiple providers into products
            according to some algorithm.
            </summary>
            <remarks>
            <para>
            A join strategy performs much the same purpose as a "JOIN" in
            query languages.  It specifies how items from multiple providers are to
            be correlated to create a sequence of aggregate items.
            </para>
            </remarks>
            <seealso cref="T:Gallio.Framework.Data.JoinedDataSet"/>
        </member>
        <member name="M:Gallio.Framework.Data.IJoinStrategy.Join(System.Collections.Generic.IList{Gallio.Framework.Data.IDataProvider},System.Collections.Generic.IList{System.Collections.Generic.ICollection{Gallio.Framework.Data.DataBinding}},System.Boolean)">
            <summary>
            Joins the items from each provider into a sequence of aggregate items.
            </summary>
            <remarks>
            <para>
            The number of elements in each item-list must equal the number
            of providers in the <paramref name="providers"/> list because
            each item-list should contain exactly one item taken from each
            provider.
            </para>
            </remarks>
            <param name="providers">The list of providers.</param>
            <param name="bindingsPerProvider">The list of bindings per provider.</param>
            <param name="includeDynamicItems">If true, includes items that may be dynamically
            generated in the result set.  Otherwise excludes such items and only returns
            those that are statically known a priori.</param>
            <returns>An enumeration of item-lists consisting of exactly one item from
            each provider and indexed in the same order as the <paramref name="providers"/>
            collection.</returns>
        </member>
        <member name="F:Gallio.Framework.Data.CombinatorialJoinStrategy.Instance">
            <summary>
            Gets the singleton instance of the strategy.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Data.CombinatorialJoinStrategy.Join(System.Collections.Generic.IList{Gallio.Framework.Data.IDataProvider},System.Collections.Generic.IList{System.Collections.Generic.ICollection{Gallio.Framework.Data.DataBinding}},System.Boolean)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Framework.Data.ConcatenationMergeStrategy">
            <summary>
            The concatenation merge strategy combines the items from multiple providers
            by simply concatenating the items in the order in which they
            appear and proceeding from one provider to the next until all providers
            have been fully processed.
            </summary>
        </member>
        <member name="T:Gallio.Framework.Data.IMergeStrategy">
            <summary>
            A merge strategy combines items from multiple providers into a sequence
            according to some algorithm.
            </summary>
            <remarks>
            <para>
            A merge strategy performs much the same purpose as a "UNION" or other
            combinator in query languages.  It specifies how to select items among
            multiple providers to create an aggregate sequence of items.
            </para>
            </remarks>
            <seealso cref="T:Gallio.Framework.Data.MergedDataSet"/>
        </member>
        <member name="M:Gallio.Framework.Data.IMergeStrategy.Merge(System.Collections.Generic.IList{Gallio.Framework.Data.IDataProvider},System.Collections.Generic.ICollection{Gallio.Framework.Data.DataBinding},System.Boolean)">
            <summary>
            Merges the items from each provider into a new sequence.
            </summary>
            <param name="providers">The list of providers.</param>
            <param name="bindings">The bindings.</param>
            <param name="includeDynamicItems">If true, includes items that may be dynamically
            generated in the result set.  Otherwise excludes such items and only returns
            those that are statically known a priori.</param>
            <returns>The merged sequence of items.</returns>
        </member>
        <member name="F:Gallio.Framework.Data.ConcatenationMergeStrategy.Instance">
            <summary>
            Gets the singleton instance of the strategy.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Data.ConcatenationMergeStrategy.Merge(System.Collections.Generic.IList{Gallio.Framework.Data.IDataProvider},System.Collections.Generic.ICollection{Gallio.Framework.Data.DataBinding},System.Boolean)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Framework.Data.CsvDataSet">
            <summary>
            A CSV data set retrieves fields from a CSV document as strings.
            </summary>
            <remarks>
            <para>
            If the CSV document has a header, then it is interpreted as the names of the
            columns.  Columns with names in brackets, such as "[ExpectedException]",
            are interpreted as containing metadata values associated with the named key.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Framework.Data.CsvDataSet.#ctor(Gallio.Common.Func{System.IO.TextReader},System.Boolean)">
            <summary>
            Creates a CSV data set.
            </summary>
            <param name="documentReaderProvider">A delegate that provides the text reader for reading the CSV document on demand.</param>
            <param name="isDynamic">True if the data set should be considered dynamic.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="documentReaderProvider"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.Data.CsvDataSet.CanBindImpl(Gallio.Framework.Data.DataBinding)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Data.CsvDataSet.GetItemsImpl(System.Collections.Generic.ICollection{Gallio.Framework.Data.DataBinding},System.Boolean)">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Framework.Data.CsvDataSet.DataLocationName">
            <summary>
            Gets the name of the location that is providing the data, or null if none.
            </summary>
            <remarks>
            <para>
            The data location name and line number are exposed as
            <see cref="F:Gallio.Model.MetadataKeys.DataLocation"/> metadata when provided.
            </para>
            </remarks>
            <value>
            The default value is null.
            </value>
        </member>
        <member name="P:Gallio.Framework.Data.CsvDataSet.FieldDelimiter">
            <summary>
            Gets or sets the field delimiter character.
            </summary>
            <value>
            The default value is ',' (comma).
            </value>
        </member>
        <member name="P:Gallio.Framework.Data.CsvDataSet.CommentPrefix">
            <summary>
            Gets or sets a character that indicates that a line in the source represents a comment.
            May be set to '\0' (null) to disable comment handling.
            </summary>
            <remarks>
            <para>
            Comment lines are excluded from the record set.
            </para>
            </remarks>
            <value>
            The default value is '#' (pound).
            </value>
        </member>
        <member name="P:Gallio.Framework.Data.CsvDataSet.HasHeader">
            <summary>
            Gets or sets whether the CSV document has a header that should be used to provide
            aliases for indexed columns.
            </summary>
            <value>
            The default value is 'false' which indicates that the file does not have a header.
            </value>
        </member>
        <member name="P:Gallio.Framework.Data.CsvDataSet.ColumnCount">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Framework.Data.CsvReader">
            <summary>
            Reads data from a Comma Separated Values document.
            </summary>
            <remarks>
            <para>
            The document format simply consists of sequential lines of delimited field values.
            <list type="bullet">
            <item>The standard delimiter is ',' (comma) but it may be overridden using <see cref="P:Gallio.Framework.Data.CsvReader.FieldDelimiter"/>.</item>
            <item>Empty lines are considered to be records with one empty field.</item>
            <item>Lines that begin with a special <see cref="P:Gallio.Framework.Data.CsvReader.CommentPrefix"/> are excluded from the record set.</item>
            <item>Field values may be quoted using '"' (quote) characters.  The quotes will be omitted from the record set.
            Quotes may be escaped by doubling them within a quoted field.</item>
            <item>Unbalanced quotes are tolerated but may produce unexpected results.</item>
            <item>Excess whitespace is trimmed unless quoted.</item>
            <item>The document may contain a header consiting of field names but the reader does not interpret it in any
            special way.  It will simply be returned to the client as an ordinary record.</item>
            </list>
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Framework.Data.CsvReader.#ctor(System.IO.TextReader)">
            <summary>
            Creates a CSV reader. 
            </summary>
            <param name="documentReader">The text reader from which to read the contents of the document.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="documentReader"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.Data.CsvReader.Close">
            <summary>
            Closes the reader.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Data.CsvReader.ReadRecord">
            <summary>
            Reads the list of fields that belong to the next record in the document.
            Returns null at the end of the document.
            </summary>
            <returns>The record contents as an array of field values, or null if at the end of the document.</returns>
            <exception cref="T:System.IO.IOException">Thrown if an I/O error occurs.</exception>
        </member>
        <member name="P:Gallio.Framework.Data.CsvReader.FieldDelimiter">
            <summary>
            Gets or sets the field delimiter character.
            </summary>
            <value>
            The default value is ',' (comma).
            </value>
        </member>
        <member name="P:Gallio.Framework.Data.CsvReader.CommentPrefix">
            <summary>
            Gets or sets a character that indicates that a line in the source represents a comment.
            May be set to '\0' (null) to disable comment handling.
            </summary>
            <remarks>
            <para>
            Comment lines are excluded from the record set.
            </para>
            </remarks>
            <value>
            The default value is '#' (pound).
            </value>
        </member>
        <member name="P:Gallio.Framework.Data.CsvReader.PreviousRecordLineNumber">
            <summary>
            Gets the 1-based line number of the previously returned record,
            or 0 if no lines have been read yet.
            </summary>
        </member>
        <member name="T:Gallio.Framework.Data.DataBindingException">
            <summary>
            The type of exception thrown when data binding operations fail.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Data.DataBindingException.#ctor">
            <summary>
            Creates an exception.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Data.DataBindingException.#ctor(System.String)">
            <summary>
            Creates an exception.
            </summary>
            <param name="message">The message.</param>
        </member>
        <member name="M:Gallio.Framework.Data.DataBindingException.#ctor(System.String,Gallio.Framework.Data.DataBinding)">
            <summary>
            Creates an exception with an associated data binding.
            </summary>
            <param name="message">The message.</param>
            <param name="binding">The associated data binding, or null if none.</param>
        </member>
        <member name="M:Gallio.Framework.Data.DataBindingException.#ctor(System.String,System.Exception)">
            <summary>
            Creates an exception.
            </summary>
            <param name="message">The message.</param>
            <param name="innerException">The inner exception.</param>
        </member>
        <member name="M:Gallio.Framework.Data.DataBindingException.#ctor(System.String,Gallio.Framework.Data.DataBinding,System.Exception)">
            <summary>
            Creates an exception with an associated data binding.
            </summary>
            <param name="message">The message.</param>
            <param name="binding">The associated data binding, or null if none.</param>
            <param name="innerException">The inner exception.</param>
        </member>
        <member name="M:Gallio.Framework.Data.DataBindingException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Creates an exception from serialization info.
            </summary>
            <param name="info">The serialization info.</param>
            <param name="context">The streaming context.</param>
        </member>
        <member name="T:Gallio.Framework.Data.DataSource">
            <summary>
            An data source object provides a simple way of aggregating data sets
            together.  It also provides a simple translation mechanism for mapping
            binding paths to binding indexes which is useful for providing named
            aliases for columns in indexed data sets.
            </summary>
        </member>
        <member name="T:Gallio.Framework.Data.MergedDataSet">
            <summary>
            A merged data set is an aggregate data set that selects items from each of zero or more
            other data sets according to a <see cref="T:Gallio.Framework.Data.IMergeStrategy"/>.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Data.MergedDataSet.AddDataSet(Gallio.Framework.Data.IDataSet)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Data.MergedDataSet.CanBindImpl(Gallio.Framework.Data.DataBinding)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Data.MergedDataSet.GetItemsImpl(System.Collections.Generic.ICollection{Gallio.Framework.Data.DataBinding},System.Boolean)">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Framework.Data.MergedDataSet.Strategy">
            <summary>
            Gets or sets the <see cref="T:Gallio.Framework.Data.IMergeStrategy"/>.
            </summary>
            <remarks>
            <para>
            By default the strategy is <see cref="T:Gallio.Framework.Data.ConcatenationMergeStrategy"/>.
            </para>
            </remarks>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="P:Gallio.Framework.Data.MergedDataSet.ColumnCount">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Data.DataSource.#ctor(System.String)">
            <summary>
            Creates a data source with a given name.
            </summary>
            <param name="name">The name of the data source, or an empty string if it is anonymous.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="name"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.Data.DataSource.AddIndexAlias(System.String,System.Nullable{System.Int32})">
            <summary>
            Adds an alias for a binding path to map it to the specified index.
            </summary>
            <param name="path">The binding path to match in a case-insensitive manner.</param>
            <param name="index">The associated index to use instead.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="path"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.Data.DataSource.CanBindImpl(Gallio.Framework.Data.DataBinding)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Data.DataSource.GetItemsImpl(System.Collections.Generic.ICollection{Gallio.Framework.Data.DataBinding},System.Boolean)">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Framework.Data.DataSource.Name">
            <summary>
            Gets the name of the data source, or an empty string if it is anonymous.
            </summary>
        </member>
        <member name="T:Gallio.Framework.Data.DataSourceTable">
            <summary>
            A data source table manages a collection of named data sources.
            </summary>
        </member>
        <member name="T:Gallio.Framework.Data.IDataSourceResolver">
            <summary>
            Resolves data sources by name.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Data.IDataSourceResolver.ResolveDataSource(System.String)">
            <summary>
            Resolves the data source with the specified name.
            </summary>
            <param name="name">The data source name.</param>
            <returns>The resolved data source, or null if none found.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="name"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.Data.DataSourceTable.DefineDataSource(System.String)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Data.DataSourceTable.ResolveDataSource(System.String)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Framework.Data.DataBindingSpec">
            <summary>
            A data binding specification describes how values are bound to slots (<see cref="T:Gallio.Common.Reflection.ISlotInfo"/>)
            of a type or method.  The specification can then be used to create new objects or invoke
            methods.
            </summary>
            <remarks>
            <para>
            A specification automatically converts values to the correct types
            for data binding using a <see cref="T:Gallio.Runtime.Conversions.IConverter"/>.  It can also format
            the specification to a string using a <see cref="T:Gallio.Runtime.Formatting.IFormatter"/>.
            </para>
            </remarks>
            <seealso cref="T:Gallio.Framework.Data.ObjectCreationSpec"/>
        </member>
        <member name="M:Gallio.Framework.Data.DataBindingSpec.#ctor(System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{Gallio.Common.Reflection.ISlotInfo,System.Object}},Gallio.Runtime.Conversions.IConverter)">
            <summary>
            Creates a data binding spec.
            </summary>
            <param name="slotValues">The slot values.</param>
            <param name="converter">The converter to use for converting slot values
            to the required types.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="slotValues"/>
            or <paramref name="converter"/> is null or if <paramref name="slotValues"/>
            contains a null slot.</exception>
        </member>
        <member name="M:Gallio.Framework.Data.DataBindingSpec.Format(System.String,Gallio.Runtime.Formatting.IFormatter)">
            <summary>
            Formats the specification to a string for presentation.
            </summary>
            <remarks>
            <para>
            The values are listed sequentially as follows:
            <list type="bullet">
            <item>The <paramref name="entity"/>.</item>
            <item>The <see cref="T:Gallio.Common.Reflection.IGenericParameterInfo"/> slot values, if any, are ordered by index
            and enclosed within angle bracket.</item>
            <item>The <see cref="T:Gallio.Common.Reflection.IParameterInfo"/> slot values, if any, are ordered by index
            and enclosed within parentheses.</item>
            <item>All other slot values, if any, are sorted by name and formatted as name-value
            pair assignments following a colon and delimited by a comma</item>
            </list>
            Example: 'SomeType&lt;int, string&gt;(42, "deep thought"): Author="Douglas Adams", Book="HGTTG"'.
            </para>
            <para>
            If there are no slots of a given kind, then the enclosing angle brackets or
            parentheses are ignored.  Therefore if <see cref="P:Gallio.Framework.Data.DataBindingSpec.SlotValues"/> is empty
            then <paramref name="entity"/> will be returned unmodified.
            </para>
            <para>
            This method assumes that the slots all belong to the same declaring type or method
            which is always the case for <see cref="T:Gallio.Framework.Data.ObjectCreationSpec"/> and <see cref="T:Gallio.Framework.Data.MethodInvocationSpec"/>.
            </para>
            </remarks>
            <param name="entity">The entity that is qualified by the specification such as the name of a type or method.</param>
            <param name="formatter">The formatter.</param>
            <returns>The formatted specification.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="entity"/>
            or <paramref name="formatter"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.Data.DataBindingSpec.FormatImpl(System.String,Gallio.Runtime.Formatting.IFormatter)">
            <summary>
            Internal implementation of <see cref="M:Gallio.Framework.Data.DataBindingSpec.Format(System.String,Gallio.Runtime.Formatting.IFormatter)"/> after argument validation.
            </summary>
            <param name="entity">The entity that is qualified by the specification such as the name of a type or method.</param>
            <param name="formatter">The formatter, not null.</param>
            <returns>The formatted specification.</returns>
        </member>
        <member name="M:Gallio.Framework.Data.DataBindingSpec.AppendFormattedGenericArguments(System.Text.StringBuilder,System.Type[],Gallio.Runtime.Formatting.IFormatter)">
            <summary>
            Appends formatted generic arguments within angle brackets, if any.
            </summary>
            <param name="str">The string builder, not null.</param>
            <param name="arguments">The arguments, not null.</param>
            <param name="formatter">The formatter, not null.</param>
        </member>
        <member name="M:Gallio.Framework.Data.DataBindingSpec.AppendFormattedMethodArguments(System.Text.StringBuilder,System.Object[],Gallio.Runtime.Formatting.IFormatter)">
            <summary>
            Appends formatted generic arguments within parentheses, if any.
            </summary>
            <param name="str">The string builder, not null.</param>
            <param name="arguments">The arguments, not null.</param>
            <param name="formatter">The formatter, not null.</param>
        </member>
        <member name="M:Gallio.Framework.Data.DataBindingSpec.AppendFormattedNamedValues(System.Text.StringBuilder,System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.Object}},Gallio.Runtime.Formatting.IFormatter)">
            <summary>
            Appends formatted values keyed and sorted by name, if any.
            This method is used with fields and properties.
            </summary>
            <param name="str">The string builder, not null.</param>
            <param name="namedValues">The named values, not null.</param>
            <param name="formatter">The formatter, not null.</param>
        </member>
        <member name="M:Gallio.Framework.Data.DataBindingSpec.ResolveMember``1(System.Type,``0)">
            <summary>
            Resolves a member that may be declared by a generic type using the
            resolved type or one of its subtypes.
            </summary>
            <remarks>
            <para>
            For example, if <paramref name="member"/> was declared by type Foo&lt;T&gt;
            and <paramref name="resolvedType"/> is a subtype of Foo&lt;int&gt;, returns
            a reflection object for the member as declared by Foo&lt;int&gt;.
            </para>
            </remarks>
            <typeparam name="T">The type of member.</typeparam>
            <param name="resolvedType">The resolved type, not null.</param>
            <param name="member">The member, not null.</param>
            <returns>The resolved member.</returns>
        </member>
        <member name="P:Gallio.Framework.Data.DataBindingSpec.SlotValues">
            <summary>
            Gets the slot values.
            </summary>
        </member>
        <member name="P:Gallio.Framework.Data.DataBindingSpec.Converter">
            <summary>
            Gets the converter.
            </summary>
        </member>
        <member name="T:Gallio.Framework.Data.IntersectionMergeStrategy">
            <summary>
            The intersection merge strategy combines the items from multiple providers
            by discarding items whose values do not appear in the items of all other
            providers.
            </summary>
            <remarks>
            <para>
            If the same item appears more than once within any given provider,
            when it will be enumerated only as often as the least number of repetitions
            of that item that appear in other providers.
            </para>
            <para>
            Uniqueness is determined by the natural equality of each bound value in the item.
            </para>
            </remarks>
        </member>
        <member name="F:Gallio.Framework.Data.IntersectionMergeStrategy.Instance">
            <summary>
            Gets the singleton instance of the strategy.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Data.IntersectionMergeStrategy.Merge(System.Collections.Generic.IList{Gallio.Framework.Data.IDataProvider},System.Collections.Generic.ICollection{Gallio.Framework.Data.DataBinding},System.Boolean)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Framework.Data.JoinedDataSet">
            <summary>
            A joined data set is an aggregate data set that joins items from each of zero or more
            other data sets according to a <see cref="T:Gallio.Framework.Data.IJoinStrategy"/>.
            </summary>
            <remarks>
            <para>
            A joined data set supports queries with two kinds of <see cref="T:Gallio.Framework.Data.DataBinding"/>:
            <list type="bullet">
            <item>A translated binding produced by <see cref="M:Gallio.Framework.Data.JoinedDataSet.TranslateBinding(Gallio.Framework.Data.IDataSet,Gallio.Framework.Data.DataBinding)"/> is scoped
            to a particular <see cref="T:Gallio.Framework.Data.IDataSet"/>.  When a query occurs using a translated
            binding, only that <see cref="T:Gallio.Framework.Data.IDataSet"/> and its <see cref="T:Gallio.Framework.Data.IDataItem"/>
            components are consulted.</item>
            <item>Any other binding is treated as if it referred to the joined <see cref="T:Gallio.Framework.Data.IDataItem"/>
            including all of the contributions of all data sets.  The joined <see cref="T:Gallio.Framework.Data.IDataItem"/>
            is conceptually laid out such that the columns of first <see cref="T:Gallio.Framework.Data.IDataSet"/> appear
            first followed by those of successive <see cref="T:Gallio.Framework.Data.IDataSet"/>s in order.  To maintain
            this illustion, the <see cref="P:Gallio.Framework.Data.DataBinding.Index"/> component of the binding is adjusted
            internally before passing any queries on to the <see cref="T:Gallio.Framework.Data.IDataSet"/>s.  Thereafter
            a binding will be consumed by the first <see cref="T:Gallio.Framework.Data.IDataSet"/> that returns <c>true</c>
            from its <see cref="M:Gallio.Framework.Data.IDataSet.CanBind(Gallio.Framework.Data.DataBinding)"/> method after index-adjustment.
            </item>
            </list>
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Framework.Data.JoinedDataSet.AddDataSet(Gallio.Framework.Data.IDataSet)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Data.JoinedDataSet.TranslateBinding(Gallio.Framework.Data.IDataSet,Gallio.Framework.Data.DataBinding)">
            <summary>
            Translates a binding into one that expresses a query that is scoped over
            a particular data set that is associated with this interface.
            </summary>
            <remarks>
            <para>
            If the binding contains an index parameter, the translated binding will contain
            an index that is offset based on the position of the contents of the data set
            within the items of the joined aggregate.
            </para>
            </remarks>
            <param name="dataSet">The data set.</param>
            <param name="binding">The binding.</param>
            <returns>The translated binding.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="dataSet"/>
            or <paramref name="binding"/> is null.</exception>
            <exception cref="T:System.ArgumentException">Thrown if <paramref name="dataSet"/>
            is not a member of this instance.</exception>
        </member>
        <member name="M:Gallio.Framework.Data.JoinedDataSet.CanBindImpl(Gallio.Framework.Data.DataBinding)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Data.JoinedDataSet.GetItemsImpl(System.Collections.Generic.ICollection{Gallio.Framework.Data.DataBinding},System.Boolean)">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Framework.Data.JoinedDataSet.Strategy">
            <summary>
            Gets or sets the <see cref="T:Gallio.Framework.Data.IJoinStrategy"/>.
            </summary>
            <remarks>
            <para>
            By default the strategy is <see cref="T:Gallio.Framework.Data.CombinatorialJoinStrategy"/>.
            </para>
            </remarks>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="P:Gallio.Framework.Data.JoinedDataSet.ColumnCount">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Framework.Data.ListDataItem`1">
            <summary>
            A list data item contains a list of static data values combined with
            optional metadata for the item.  Data binding occurs based on the binding
            index alone.
            </summary>
            <typeparam name="T">The value type.</typeparam>
        </member>
        <member name="M:Gallio.Framework.Data.ListDataItem`1.#ctor(System.Collections.Generic.IList{`0},System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.String}},System.Boolean)">
            <summary>
            Creates a list data item with optional metadata.
            </summary>
            <param name="values">The list of values.</param>
            <param name="metadataPairs">The metadata key/value pairs, or null if none.</param>
            <param name="isDynamic">True if the item contains dynamic data.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="values"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.Data.ListDataItem`1.GetBindingsForInformalDescription">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Data.ListDataItem`1.GetValueImpl(Gallio.Framework.Data.DataBinding)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Framework.Data.MethodInvocationSpec">
            <summary>
            Encapsulates a specification for invoking a method given values for
            its generic parameters and formal parameters.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Data.MethodInvocationSpec.#ctor(System.Type,Gallio.Common.Reflection.IMethodInfo,System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{Gallio.Common.Reflection.ISlotInfo,System.Object}},Gallio.Runtime.Conversions.IConverter)">
            <summary>
            Creates a new method specification.
            </summary>
            <param name="resolvedType">The non-generic type or generic type instantiation
            that declares the method to be invoked or is a subtype of the declaring type.
            This parameter is used to resolve the method to its declaring type.</param>
            <param name="method">The method or generic method definition to be instantiated.</param>
            <param name="slotValues">The slot values.</param>
            <param name="converter">The converter to use for converting slot values
            to the required types.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="resolvedType"/>,
            <paramref name="method"/>, <paramref name="slotValues"/> or <paramref name="converter"/> is null.</exception>
            <exception cref="T:System.ArgumentException">Thrown if <paramref name="slotValues"/> contains
            slots that are declared by different methods or have incompatible values.</exception>
        </member>
        <member name="M:Gallio.Framework.Data.MethodInvocationSpec.Invoke(System.Object)">
            <summary>
            Invokes the method.
            </summary>
            <param name="obj">The object on which to invoke the method.  This value is ignored
            if the method is static.</param>
            <returns>The method result value.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="obj"/> is
            null but the method is non-static.</exception>
            <exception cref="T:System.Exception">Any exception thrown by the invoked method.</exception>
        </member>
        <member name="M:Gallio.Framework.Data.MethodInvocationSpec.FormatImpl(System.String,Gallio.Runtime.Formatting.IFormatter)">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Framework.Data.MethodInvocationSpec.Method">
            <summary>
            Gets the method or generic method definition to be invoked.
            </summary>
        </member>
        <member name="P:Gallio.Framework.Data.MethodInvocationSpec.ResolvedType">
            <summary>
            Gets the resolved type that declares the method.
            </summary>
        </member>
        <member name="P:Gallio.Framework.Data.MethodInvocationSpec.ResolvedMethod">
            <summary>
            Gets the resolved method given any generic method arguments that may have
            been provided as slot values.
            </summary>
        </member>
        <member name="P:Gallio.Framework.Data.MethodInvocationSpec.ResolvedArguments">
            <summary>
            Gets the resolved method arguments.
            </summary>
            <remarks>
            <para>
            The values have already been converted to appropriate types for invoking the method.
            </para> 
            </remarks>
        </member>
        <member name="T:Gallio.Framework.Data.NullDataItem">
            <summary>
            A null data item simply returns a null value on each request.
            It has no metadata.
            </summary>
        </member>
        <member name="F:Gallio.Framework.Data.NullDataItem.Instance">
            <summary>
            Gets the singleton null data item instance.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Data.NullDataItem.GetBindingsForInformalDescription">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Data.NullDataItem.GetValueImpl(Gallio.Framework.Data.DataBinding)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Data.NullDataItem.PopulateMetadataImpl(Gallio.Common.Collections.PropertyBag)">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Framework.Data.NullDataItem.IsDynamic">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Framework.Data.ObjectCreationSpec">
            <summary>
            Encapsulates a specification for creating objects given values for
            a type's generic parameters, constructor parameters, fields and properties.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Data.ObjectCreationSpec.#ctor(Gallio.Common.Reflection.ITypeInfo,System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{Gallio.Common.Reflection.ISlotInfo,System.Object}},Gallio.Runtime.Conversions.IConverter)">
            <summary>
            Creates a new object specification.
            </summary>
            <param name="type">The type or generic type definition to be instantiated.</param>
            <param name="slotValues">The slot values.</param>
            <param name="converter">The converter to use for converting slot values
            to the required types.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="type"/>,
            <paramref name="slotValues"/> or <paramref name="converter"/> is null.</exception>
            <exception cref="T:System.ArgumentException">Thrown if <paramref name="type"/>
            has an element type or if <paramref name="slotValues"/> contains
            slots that are declared by different types or have incompatible values.</exception>
        </member>
        <member name="M:Gallio.Framework.Data.ObjectCreationSpec.CreateInstance">
            <summary>
            Creates an instance of the resolved type and initializes it using
            constructor parameter, field and property slot values.
            </summary>
            <returns>The new instance, never null.</returns>
            <exception cref="T:System.InvalidOperationException">Thrown if the type is not instantiable.</exception>
        </member>
        <member name="M:Gallio.Framework.Data.ObjectCreationSpec.FormatImpl(System.String,Gallio.Runtime.Formatting.IFormatter)">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Framework.Data.ObjectCreationSpec.Type">
            <summary>
            Gets the type or generic type definition to be instantiated.
            </summary>
        </member>
        <member name="P:Gallio.Framework.Data.ObjectCreationSpec.ResolvedType">
            <summary>
            Gets the resolved type given any generic type arguments that may have
            been provided as slot values.
            </summary>
        </member>
        <member name="P:Gallio.Framework.Data.ObjectCreationSpec.ResolvedConstructor">
            <summary>
            Gets the resolved constructor, or null if the type was abstract or if it was
            a struct and the default struct constructor is being use.
            </summary>
        </member>
        <member name="P:Gallio.Framework.Data.ObjectCreationSpec.ResolvedConstructorArguments">
            <summary>
            Gets the resolved constructor arguments.
            </summary>
            <remarks>
            <para>
            The values have already been converted to appropriate types for invoking the constructor.
            </para> 
            <para>
            If <see cref="P:Gallio.Framework.Data.ObjectCreationSpec.ResolvedConstructor"/> is null, then this value will be an empty array.
            </para> 
            </remarks>
        </member>
        <member name="P:Gallio.Framework.Data.ObjectCreationSpec.ResolvedFieldValues">
            <summary>
            Gets the resolved fields and their values.
            </summary>
            <remarks>
            <para>
            The values have already been converted to appropriate types for setting the fields.
            </para> 
            </remarks>
        </member>
        <member name="P:Gallio.Framework.Data.ObjectCreationSpec.ResolvedPropertyValues">
            <summary>
            Gets the resolved properties and their values.
            </summary>
            <remarks>
            <para>
            The values have already been converted to appropriate types for setting the properties.
            </para> 
            </remarks>
        </member>
        <member name="T:Gallio.Framework.Data.PairwiseJoinStrategy">
            <summary>
            The pairwise strategy constructs a limited number of combinations of the
            items within the data providers such that they cover all possible pairs
            of values from each data source.
            </summary>
            <remarks>
            <para>
            This strategy can be more efficient than one based on exhaustively testing all
            combinations since many test failures result from the interaction of a relatively
            small number of factors: often just two of them.
            </para>
            <para>
            Computing orthogonal arrays for pairwise joins for large domains can be very expensive
            computationally.  Therefore most practical algorithms use approximations.
            </para>
            <para>
            The algorithm used here makes a list of all pairs that must be covered.  Then it constructs
            combinations greedily by trying to include as many uncovered pairs in each one as possible,
            preferring pairs used less often over other ones.  The combinations produced may not be
            optimal but empirically it covers all pairs using a sufficiently small number of cases for
            most practical purposes.
            </para>
            <para>
            Many thanks to James Bach at Satisfice (www.satisfice.com) for his AllPairs program from
            which the algorithm used here was adapted.
            </para>
            <para>
            The choice of considering only 2 factors was made for the sake of implementation
            convenience.  It turns out that an N-wise combination strategy is much more complex
            to implement efficiently because the general problem is NP-Complete.  However, if you
            should choose to implement such a join strategy on your own, please consider contributing
            it back to the Gallio project for others to use.  Thanks!
            </para>
            <para>
            See also: <a href="http://www.pairwise.org/"/>.
            </para>
            </remarks>
            <seealso cref="T:Gallio.Framework.Data.CombinatorialJoinStrategy"/>
        </member>
        <member name="F:Gallio.Framework.Data.PairwiseJoinStrategy.Instance">
            <summary>
            Gets the singleton instance of the strategy.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Data.PairwiseJoinStrategy.Join(System.Collections.Generic.IList{Gallio.Framework.Data.IDataProvider},System.Collections.Generic.IList{System.Collections.Generic.ICollection{Gallio.Framework.Data.DataBinding}},System.Boolean)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Framework.Data.ItemSequenceDataSet">
            <summary>
            A data set constructed from a sequence of data items.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Data.ItemSequenceDataSet.#ctor(System.Collections.Generic.IEnumerable{Gallio.Framework.Data.IDataItem},System.Int32)">
            <summary>
            Creates a row data set.
            </summary>
            <param name="items">The sequence of items.</param>
            <param name="columnCount">The column count.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="items"/> is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="columnCount"/> is negative.</exception>
        </member>
        <member name="M:Gallio.Framework.Data.ItemSequenceDataSet.CanBindImpl(Gallio.Framework.Data.DataBinding)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Data.ItemSequenceDataSet.GetItemsImpl(System.Collections.Generic.ICollection{Gallio.Framework.Data.DataBinding},System.Boolean)">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Framework.Data.ItemSequenceDataSet.ColumnCount">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Framework.Data.ScalarDataItem`1">
            <summary>
            A scalar data item represents a single static data value combined with
            optional metadata for the item.  Data binding occurs whenever the binding
            index is 0.
            </summary>
            <typeparam name="T">The value type.</typeparam>
        </member>
        <member name="M:Gallio.Framework.Data.ScalarDataItem`1.#ctor(`0,System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.String}},System.Boolean)">
            <summary>
            Creates a scalar data item with optional metadata.
            </summary>
            <param name="value">The value to hold.</param>
            <param name="metadataPairs">The metadata key/value pairs, or null if none.</param>
            <param name="isDynamic">True if the item contains dynamic data.</param>
        </member>
        <member name="M:Gallio.Framework.Data.ScalarDataItem`1.GetBindingsForInformalDescription">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Data.ScalarDataItem`1.GetValueImpl(Gallio.Framework.Data.DataBinding)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Framework.Data.SequentialJoinStrategy">
            <summary>
            The sequential join strategy combines items from each data provider sequentially.
            If one provider contains fewer items than the others, the sequential join strategy
            will insert a <see cref="T:Gallio.Framework.Data.NullDataItem"/> in its place until all other providers have been exhausted.
            This is similar to performing an "outer join" of multiple sources by ordinal index.
            </summary>
        </member>
        <member name="F:Gallio.Framework.Data.SequentialJoinStrategy.Instance">
            <summary>
            Gets the singleton instance of the strategy.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Data.SequentialJoinStrategy.Join(System.Collections.Generic.IList{Gallio.Framework.Data.IDataProvider},System.Collections.Generic.IList{System.Collections.Generic.ICollection{Gallio.Framework.Data.DataBinding}},System.Boolean)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Framework.Data.UnionMergeStrategy">
            <summary>
            The union merge strategy combines the items from multiple providers by
            discarding all items whose values duplicate those of other items that
            have already been enumerated.
            </summary>
            <remarks>
            <para>
            Uniqueness is determined by the natural equality of each bound value in the item.
            </para>
            </remarks>
        </member>
        <member name="F:Gallio.Framework.Data.UnionMergeStrategy.Instance">
            <summary>
            Gets the singleton instance of the strategy.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Data.UnionMergeStrategy.Merge(System.Collections.Generic.IList{Gallio.Framework.Data.IDataProvider},System.Collections.Generic.ICollection{Gallio.Framework.Data.DataBinding},System.Boolean)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Framework.Data.XmlDataSet">
            <summary>
            An XML data set selects nodes from an XML document using XPath
            expressions.  The selected nodes are returned as <see cref="T:System.Xml.XPath.XPathNavigator"/> objects.
            </summary>
            <remarks>
            <para>
            Two XPath expressions are used.
            <list type="bullet">
            <item>
            <strong>Item Path</strong> : An XPath expression that selects a set of nodes that are used to
            uniquely identify records.  For example, the item path might be used to select
            the containing element of each Book element in an XML document of Books.
            The item path is specified in the constructor.
            </item>
            <item>
            <strong>Binding Path</strong> : An XPath expression that selects a node relative to the item path
            that contains a particular data value of interest.  For example, the binding path
            might be used to select the Author attribute of a Book element in an XML document of Books.
            The binding path is specified by the <see cref="T:Gallio.Framework.Data.DataBinding"/>.
            </item>
            </list>
            </para>
            <example>
            <para>
            The XML may contain metadata at the row level by adding metadata elements in the
            <c>http://www.gallio.org/</c> namespace containing metadata entries.  In the following example,
            the row values would be selected using an Item Path of "//row" and a Binding Path of "@value".
            Additionally, some rows would have metadata as specified.
            </para>
            <code>
            <![CDATA[
            <data>
              <row value="somevalue">
                <metadata xmlns="http://www.gallio.org/">
                  <entry key="Description" value="A row..." />
                  <entry key="Author" value="Me" />
                </metadata>
              </row>
              <row value="anothervalue" />
            </data>
            ]]>
            </code>
            </example>
            </remarks>
        </member>
        <member name="M:Gallio.Framework.Data.XmlDataSet.#ctor(Gallio.Common.Func{System.Xml.XPath.IXPathNavigable},System.String,System.Boolean)">
            <summary>
            Creates an XML data set.
            </summary>
            <param name="documentProvider">A delegate that produces the XML document on demand.</param>
            <param name="itemPath">The XPath expression used to select items within the document.</param>
            <param name="isDynamic">True if the data set should be considered dynamic.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="documentProvider"/> or <paramref name="itemPath"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.Data.XmlDataSet.CanBindImpl(Gallio.Framework.Data.DataBinding)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Data.XmlDataSet.GetItemsImpl(System.Collections.Generic.ICollection{Gallio.Framework.Data.DataBinding},System.Boolean)">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Framework.Data.XmlDataSet.DataLocationName">
            <summary>
            Gets the name of the location that is providing the data, or null if none.
            </summary>
            <remarks>
            <para>
            The data location name and line number are exposed as
            <see cref="F:Gallio.Model.MetadataKeys.DataLocation"/> metadata when provided.
            </para>
            </remarks>
            <value>
            The default value is null.
            </value>
        </member>
        <member name="P:Gallio.Framework.Data.XmlDataSet.ColumnCount">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Data.XmlDataSet.Item.GetBindingsForInformalDescription">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Framework.Pattern.AnnotationPatternAttribute">
            <summary>
            Associates an annotation message with a code element.  When the code element
            is processed as part of building some other test, the annotation message will
            be emitted.  This may be used to signal error, warning, and informational
            messages associated with the code element in question.
            </summary>
            <remarks>
            <para>
            Many annotations are automatically generated by the framework.  For example,
            improperly used attributes generally cause error annotations to be emitted.
            This attribute provides an easy way for test authors to leverage the annotation
            mechanism for other discretionary purposes where it is desirable to draw
            attention to a particular code element.
            </para>
            <para>
            Note that the annotation will only be emitted if it is encountered during the
            process of building a test.  If for some reason the annotated code element
            is not processed, then the attribute will have no effect.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Framework.Pattern.AnnotationPatternAttribute.#ctor(Gallio.Model.AnnotationType,System.String)">
            <summary>
            Associates an annotation message of the specified type with the code element.
            </summary>
            <param name="type">The annotation type.</param>
            <param name="message">The annotation message.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="message"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.Pattern.AnnotationPatternAttribute.Process(Gallio.Framework.Pattern.IPatternScope,Gallio.Common.Reflection.ICodeElementInfo)">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Framework.Pattern.AnnotationPatternAttribute.Type">
            <summary>
            Gets the annotation type.
            </summary>
        </member>
        <member name="P:Gallio.Framework.Pattern.AnnotationPatternAttribute.Message">
            <summary>
            Gets the annotation message.
            </summary>
        </member>
        <member name="P:Gallio.Framework.Pattern.AnnotationPatternAttribute.Details">
            <summary>
            Gets or sets optional detail text of the annotation, or null if none.
            </summary>
        </member>
        <member name="T:Gallio.Framework.Pattern.ContributionMethodPatternAttribute">
            <summary>
            A contribution method pattern attribute applies decorations to a containing scope
            such as by introducing a new setup or teardown action to a test.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Pattern.ContributionMethodPatternAttribute.GetTestParts(Gallio.Framework.Pattern.IPatternEvaluator,Gallio.Common.Reflection.ICodeElementInfo)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Pattern.ContributionMethodPatternAttribute.Consume(Gallio.Framework.Pattern.IPatternScope,Gallio.Common.Reflection.ICodeElementInfo,System.Boolean)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Pattern.ContributionMethodPatternAttribute.Validate(Gallio.Framework.Pattern.IPatternScope,Gallio.Common.Reflection.IMethodInfo)">
            <summary>
            Verifies that the attribute is being used correctly.
            </summary>
            <param name="containingScope">The containing scope.</param>
            <param name="method">The method.</param>
            <exception cref="T:Gallio.Framework.Pattern.PatternUsageErrorException">Thrown if the attribute is being used incorrectly.</exception>
        </member>
        <member name="M:Gallio.Framework.Pattern.ContributionMethodPatternAttribute.DecorateContainingScope(Gallio.Framework.Pattern.IPatternScope,Gallio.Common.Reflection.IMethodInfo)">
            <summary>
            Applies decorations to the containing test.
            </summary>
            <param name="containingScope">The containing scope.</param>
            <param name="method">The method to process.</param>
        </member>
        <member name="P:Gallio.Framework.Pattern.ContributionMethodPatternAttribute.IsPrimary">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Framework.Pattern.TestAssemblyDecoratorPatternAttribute">
            <summary>
            A test assembly decorator pattern attribute applies decorations to an
            existing test declared at the assembly-level.
            </summary>
            <seealso cref="T:Gallio.Framework.Pattern.TestAssemblyPatternAttribute"/>
        </member>
        <member name="M:Gallio.Framework.Pattern.TestAssemblyDecoratorPatternAttribute.Process(Gallio.Framework.Pattern.IPatternScope,Gallio.Common.Reflection.ICodeElementInfo)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Pattern.TestAssemblyDecoratorPatternAttribute.Validate(Gallio.Framework.Pattern.IPatternScope,Gallio.Common.Reflection.IAssemblyInfo)">
            <summary>
            Verifies that the attribute is being used correctly.
            </summary>
            <param name="scope">The scope.</param>
            <param name="assembly">The assembly.</param>
            <exception cref="T:Gallio.Framework.Pattern.PatternUsageErrorException">Thrown if the attribute is being used incorrectly.</exception>
        </member>
        <member name="M:Gallio.Framework.Pattern.TestAssemblyDecoratorPatternAttribute.DecorateAssemblyTest(Gallio.Framework.Pattern.IPatternScope,Gallio.Common.Reflection.IAssemblyInfo)">
            <summary>
            Applies decorations to an assembly-level test.
            </summary>
            <remarks>
            <para>
            A typical use of this method is to augment the test with additional metadata
            or to add additional behaviors to the test.
            </para>
            </remarks>
            <param name="assemblyScope">The assembly scope.</param>
            <param name="assembly">The assembly.</param>
        </member>
        <member name="T:Gallio.Framework.Pattern.TestAssemblyInitializationAttribute">
            <summary>
            An assembly initialization attribute gets a chance to perform early initialization
            of the system before enumerating the tests within the assembly.
            </summary>
            <remarks>
            <para>
            For examples, a subclass of this attribute may be used to register an assembly
            resolver before test enumeration occurs to ensure that all referenced assemblies
            can be loaded.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Framework.Pattern.TestAssemblyInitializationAttribute.Initialize(Gallio.Framework.Pattern.IPatternScope,Gallio.Common.Reflection.IAssemblyInfo)">
            <summary>
            Performs early initialization for the specified assembly.
            </summary>
            <param name="rootScope">The root scope that will eventually contain the assembly-level test.</param>
            <param name="assembly">The assembly to process.</param>
        </member>
        <member name="T:Gallio.Framework.Pattern.TestAssemblyPatternAttribute">
            <summary>
            Declares that an assembly generates an assembly-level test.
            </summary>
            <remarks>
            <para>
            Subclasses of this attribute can customize how test enumeration takes place within the assembly.
            </para>
            <para>
            At most one attribute of this type may appear on any given assembly.
            </para>
            </remarks>
            <seealso cref="T:Gallio.Framework.Pattern.TestAssemblyDecoratorPatternAttribute"/>
        </member>
        <member name="F:Gallio.Framework.Pattern.TestAssemblyPatternAttribute.DefaultInstance">
            <summary>
            Gets a default instance of the assembly pattern attribute to use
            when no other pattern consumes an assembly.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Pattern.TestAssemblyPatternAttribute.GetTestParts(Gallio.Framework.Pattern.IPatternEvaluator,Gallio.Common.Reflection.ICodeElementInfo)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Pattern.TestAssemblyPatternAttribute.Consume(Gallio.Framework.Pattern.IPatternScope,Gallio.Common.Reflection.ICodeElementInfo,System.Boolean)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Pattern.TestAssemblyPatternAttribute.Validate(Gallio.Framework.Pattern.IPatternScope,Gallio.Common.Reflection.IAssemblyInfo)">
            <summary>
            Verifies that the attribute is being used correctly.
            </summary>
            <param name="containingScope">The containing scope.</param>
            <param name="assembly">The assembly.</param>
            <exception cref="T:Gallio.Framework.Pattern.PatternUsageErrorException">Thrown if the attribute is being used incorrectly.</exception>
        </member>
        <member name="M:Gallio.Framework.Pattern.TestAssemblyPatternAttribute.InitializeAssemblyTest(Gallio.Framework.Pattern.IPatternScope,Gallio.Common.Reflection.IAssemblyInfo)">
            <summary>
            Initializes a test for an assembly after it has been added to the test model.
            </summary>
            <param name="assemblyScope">The assembly scope.</param>
            <param name="assembly">The assembly.</param>
        </member>
        <member name="M:Gallio.Framework.Pattern.TestAssemblyPatternAttribute.SetTestSemantics(Gallio.Framework.Pattern.ITestBuilder,Gallio.Common.Reflection.IAssemblyInfo)">
            <summary>
            Applies semantic actions to the assembly-level test to estalish its runtime behavior.
            </summary>
            <remarks>
            <para>
            This method is called after <see cref="M:Gallio.Framework.Pattern.TestAssemblyPatternAttribute.InitializeAssemblyTest(Gallio.Framework.Pattern.IPatternScope,Gallio.Common.Reflection.IAssemblyInfo)"/>.
            </para>
            <para>
            The default behavior for a <see cref="T:Gallio.Framework.Pattern.TestAssemblyPatternAttribute"/>
            is to configure the test actions as follows:
            <list type="bullet">
            <item><see cref="P:Gallio.Framework.Pattern.PatternTestActions.InitializeTestChain"/>: Reset the <see cref="T:Gallio.Framework.Pattern.TestAssemblyExecutionParameters"/>
            to defaults.</item>
            </list>
            </para>
            <para>
            You can override this method to change the semantics as required.
            </para>
            </remarks>
            <param name="testBuilder">The test builder.</param>
            <param name="assembly">The assembly.</param>
        </member>
        <member name="M:Gallio.Framework.Pattern.TestAssemblyPatternAttribute.PopulateChildrenImmediately(Gallio.Framework.Pattern.IPatternScope,Gallio.Common.Reflection.IAssemblyInfo)">
            <summary>
            Populates the children of the assembly test all at once.
            </summary>
            <remarks>
            <para>
            The default implementation processes all public and non-public types within the assembly.
            </para>
            </remarks>
            <param name="assemblyScope">The assembly scope.</param>
            <param name="assembly">The assembly.</param>
        </member>
        <member name="M:Gallio.Framework.Pattern.TestAssemblyPatternAttribute.PrepareToPopulateChildrenOnDemand(Gallio.Framework.Pattern.IPatternScope,Gallio.Common.Reflection.IAssemblyInfo)">
            <summary>
            Prepares to populate the children of the assembly test on demand by
            adding a deferred populator with <see cref="M:Gallio.Framework.Pattern.IPatternScope.AddDeferredComponentPopulator(Gallio.Framework.Pattern.DeferredComponentPopulator)"/>.
            </summary>
            <param name="assemblyScope">The assembly scope.</param>
            <param name="assembly">The assembly.</param>
        </member>
        <member name="P:Gallio.Framework.Pattern.TestAssemblyPatternAttribute.IsPrimary">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Framework.Pattern.TestAssemblyPatternAttribute.DefaultTypePattern">
            <summary>
            Gets the default pattern to apply to types that do not have a primary pattern, or null if none.
            </summary>
            <remarks>
            <para>
            The default implementation returns <see cref="F:Gallio.Framework.Pattern.TestTypePatternAttribute.AutomaticInstance"/>.
            </para>
            </remarks>
        </member>
        <member name="T:Gallio.Framework.Pattern.BasePattern">
            <summary>
            Abstract base implementation of <see cref="T:Gallio.Framework.Pattern.IPattern"/> with do-nothing
            implementations.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Pattern.BasePattern.GetTestParts(Gallio.Framework.Pattern.IPatternEvaluator,Gallio.Common.Reflection.ICodeElementInfo)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Pattern.BasePattern.Consume(Gallio.Framework.Pattern.IPatternScope,Gallio.Common.Reflection.ICodeElementInfo,System.Boolean)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Pattern.BasePattern.Process(Gallio.Framework.Pattern.IPatternScope,Gallio.Common.Reflection.ICodeElementInfo)">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Framework.Pattern.BasePattern.IsPrimary">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Framework.Pattern.DataPatternAttribute">
            <summary>
            The data pattern attribute applies a data source to a fixture or test
            parameter declaratively.
            </summary>
            <remarks>
            <para>
            It can be attached to a fixture class, a public property
            or field of a fixture, a test method or a test method parameter.  When attached
            to a property or field of a fixture, implies that the property or field is
            a fixture parameter (so the <see cref="T:Gallio.Framework.Pattern.TestParameterPatternAttribute"/>
            may be omitted).
            </para>
            <para>
            The order in which items contributed by a data pattern attribute are
            use can be controlled via the <see cref="P:Gallio.Framework.Pattern.DecoratorPatternAttribute.Order"/>
            property.  The contents of data sets with lower order indices are processed
            before those with higher indices.
            </para>
            </remarks>
            <example>
            The following example ensures that the rows are processed in exactly the order they appear.
            <code><![CDATA[
            [TestFixture]
            public class Fixture
            {
                [Test]
                [Row(1, "a"), Order=1)]
                [Row(2, "b"), Order=2)]
                [Row(3, "c"), Order=3)]
                public void Test(int x, string y) 
                { 
                    // Code logic here...
                }
            }
            ]]></code>
            </example>
        </member>
        <member name="M:Gallio.Framework.Pattern.DataPatternAttribute.Process(Gallio.Framework.Pattern.IPatternScope,Gallio.Common.Reflection.ICodeElementInfo)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Pattern.DataPatternAttribute.Validate(Gallio.Framework.Pattern.IPatternScope,Gallio.Common.Reflection.ICodeElementInfo)">
            <summary>
            Verifies that the attribute is being used correctly.
            </summary>
            <param name="scope">The scope.</param>
            <param name="codeElement">The code element.</param>
            <exception cref="T:Gallio.Framework.Pattern.PatternUsageErrorException">Thrown if the attribute is being used incorrectly.</exception>
        </member>
        <member name="M:Gallio.Framework.Pattern.DataPatternAttribute.PopulateDataSource(Gallio.Framework.Pattern.IPatternScope,Gallio.Framework.Data.DataSource,Gallio.Common.Reflection.ICodeElementInfo)">
            <summary>
            Populates the data source with the contributions of this attribute.
            </summary>
            <param name="scope">The scope.</param>
            <param name="dataSource">The data source.</param>
            <param name="codeElement">The code element.</param>
        </member>
        <member name="P:Gallio.Framework.Pattern.DataPatternAttribute.SourceName">
            <summary>
            Gets or sets the name of the data source to create so that the values produced
            by this attribute can be referred to elsewhere.
            </summary>
            <remarks>
            <para>
            Multiple data attributes may use the same data source name to produce a compound
            data source consisting of all of their values combined.
            </para>
            <para>
            If no name is given to the data source (or it is an empty string), the data source
            is considered anonymous.  An anonymous data source is only visible
            within the scope of the code element with which the data source declaration
            is associated.  By default, test parameters are bound to
            the anonymous data source of their enclosing scope.
            </para>
            </remarks>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="T:Gallio.Framework.Pattern.DeclarativePatternResolver">
            <summary>
            A declarative pattern resolver based on <see cref="T:Gallio.Framework.Pattern.PatternAttribute"/>.
            </summary>
        </member>
        <member name="T:Gallio.Framework.Pattern.IPatternResolver">
            <summary>
            The pattern resolver provides a means for obtaining the <see cref="T:Gallio.Framework.Pattern.IPattern"/>
            objects associated with an <see cref="T:Gallio.Common.Reflection.ICodeElementInfo"/>.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Pattern.IPatternResolver.GetPatterns(Gallio.Common.Reflection.ICodeElementInfo)">
            <summary>
            Gets the patterns associated with the specified code element.
            </summary>
            <param name="codeElement">The code element.</param>
            <returns>The enumeration of patterns.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="codeElement"/> is null.</exception>
        </member>
        <member name="F:Gallio.Framework.Pattern.DeclarativePatternResolver.Instance">
            <summary>
            Gets the singleton instance of the declarative pattern resolver.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Pattern.DeclarativePatternResolver.GetPatterns(Gallio.Common.Reflection.ICodeElementInfo)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Framework.Pattern.PatternAttributeTargets">
            <summary>
            Standard <see cref="T:System.AttributeTargets"/> flag combinations for <see cref="T:Gallio.Framework.Pattern.PatternAttribute"/> declarations.
            </summary>
        </member>
        <member name="F:Gallio.Framework.Pattern.PatternAttributeTargets.Test">
            <summary>
            Valid attribute targets for tests.
            </summary>
        </member>
        <member name="F:Gallio.Framework.Pattern.PatternAttributeTargets.TestAssembly">
            <summary>
            Valid attribute targets for test assemblies.
            </summary>
        </member>
        <member name="F:Gallio.Framework.Pattern.PatternAttributeTargets.TestType">
            <summary>
            Valid attribute targets for test types.
            </summary>
        </member>
        <member name="F:Gallio.Framework.Pattern.PatternAttributeTargets.TestMethod">
            <summary>
            Valid attribute targets for test methods.
            </summary>
        </member>
        <member name="F:Gallio.Framework.Pattern.PatternAttributeTargets.TestParameter">
            <summary>
            Valid attribute targets for test parameters.
            </summary>
        </member>
        <member name="F:Gallio.Framework.Pattern.PatternAttributeTargets.TestComponent">
            <summary>
            Valid attribute targets for tests or test parameters.
            </summary>
        </member>
        <member name="F:Gallio.Framework.Pattern.PatternAttributeTargets.TestConstructor">
            <summary>
            Valid attribute targets for test constructors.
            </summary>
        </member>
        <member name="F:Gallio.Framework.Pattern.PatternAttributeTargets.DataContext">
            <summary>
            Valid attribute targets for data contexts.
            </summary>
        </member>
        <member name="F:Gallio.Framework.Pattern.PatternAttributeTargets.ContributionMethod">
            <summary>
            Valid attribute targets for contribution methods.
            </summary>
        </member>
        <member name="F:Gallio.Framework.Pattern.PatternAttributeTargets.TestContract">
            <summary>
            Valid attribute targets for test contracts.
            </summary>
        </member>
        <member name="T:Gallio.Framework.Pattern.DefaultPatternScope">
            <summary>
            Default implementation of a pattern scope.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Pattern.DefaultPatternScope.#ctor(Gallio.Framework.Pattern.IPatternEvaluator,Gallio.Common.Reflection.ICodeElementInfo,Gallio.Framework.Pattern.ITestBuilder,Gallio.Framework.Pattern.ITestParameterBuilder,Gallio.Framework.Pattern.ITestDataContextBuilder,System.Boolean)">
            <summary>
            Creates a new scope.
            </summary>
            <param name="evaluator">The pattern evaluator.</param>
            <param name="codeElement">The code element associated with the scope, or null if none.</param>
            <param name="testBuilder">The test builder in scope.</param>
            <param name="testParameterBuilder">The test parameter builder in scope, or null if none.</param>
            <param name="testDataContextBuilder">The test data context builder.</param>
            <param name="isDeclaration">True if the scope represents the initial point of declaration
            of a given test component.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="evaluator"/>,
            <paramref name="testBuilder"/> or <paramref name="testDataContextBuilder"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.Pattern.DefaultPatternScope.CreateScope(Gallio.Common.Reflection.ICodeElementInfo,Gallio.Framework.Pattern.ITestBuilder,Gallio.Framework.Pattern.ITestParameterBuilder,Gallio.Framework.Pattern.ITestDataContextBuilder,System.Boolean)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Pattern.DefaultPatternScope.CreateChildTestScope(System.String,Gallio.Common.Reflection.ICodeElementInfo)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Pattern.DefaultPatternScope.CreateTestParameterScope(System.String,Gallio.Common.Reflection.ICodeElementInfo)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Pattern.DefaultPatternScope.CreateChildTestDataContextScope(Gallio.Common.Reflection.ICodeElementInfo)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Pattern.DefaultPatternScope.AddDeferredComponentPopulator(Gallio.Framework.Pattern.DeferredComponentPopulator)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Pattern.DefaultPatternScope.PopulateDeferredComponents(Gallio.Common.Reflection.ICodeElementInfo)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Pattern.DefaultPatternScope.Consume(Gallio.Common.Reflection.ICodeElementInfo,System.Boolean,Gallio.Framework.Pattern.IPattern)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Pattern.DefaultPatternScope.Process(Gallio.Common.Reflection.ICodeElementInfo)">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Framework.Pattern.DefaultPatternScope.Evaluator">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Framework.Pattern.DefaultPatternScope.CodeElement">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Framework.Pattern.DefaultPatternScope.IsTestDeclaration">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Framework.Pattern.DefaultPatternScope.IsTestParameterDeclaration">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Framework.Pattern.DefaultPatternScope.CanAddChildTest">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Framework.Pattern.DefaultPatternScope.CanAddTestParameter">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Framework.Pattern.DefaultPatternScope.TestBuilder">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Framework.Pattern.DefaultPatternScope.TestParameterBuilder">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Framework.Pattern.DefaultPatternScope.TestComponentBuilder">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Framework.Pattern.DefaultPatternScope.TestDataContextBuilder">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Framework.Pattern.DefaultPatternScope.TestModelBuilder">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Framework.Pattern.IPatternTestComponent">
            <summary>
            An interface shared by <see cref="T:Gallio.Framework.Pattern.PatternTest"/> and <see cref="T:Gallio.Framework.Pattern.PatternTestParameter"/>.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Pattern.IPatternTestComponent.SetName(System.String)">
            <summary>
            Sets the name of the component.
            </summary>
        </member>
        <member name="P:Gallio.Framework.Pattern.IPatternTestComponent.DataContext">
            <summary>
            Gets the data context of the component.
            </summary>
        </member>
        <member name="T:Gallio.Framework.Pattern.PatternTestDataContext">
            <summary>
            A pattern test data context introduces a scope for data source declarations.
            </summary>
            <remarks>
            <para>
            Each <see cref="T:Gallio.Framework.Pattern.PatternTest"/> or <see cref="T:Gallio.Framework.Pattern.PatternTestParameter"/> has a <see cref="T:Gallio.Framework.Pattern.PatternTestDataContext"/>.
            However, data contexts may also be nested.
            </para>
            <para>
            For example, the constructor of a test class typically augments its containing test with
            additional test parameters that represent its own constructor parameters.  If data binding
            attributes are applied to the constructor, they should operate within the scope of that
            constructor only.  To achieve this effect, the constructor declares a new <see cref="T:Gallio.Framework.Pattern.PatternTestDataContext"/>
            within which its test parameters will be created.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Framework.Pattern.PatternTestDataContext.#ctor(Gallio.Framework.Pattern.PatternTestDataContext)">
            <summary>
            Creates a new data context.
            </summary>
            <param name="parent">The containing data context, or null if none.</param>
        </member>
        <member name="M:Gallio.Framework.Pattern.PatternTestDataContext.DefineDataSource(System.String)">
            <summary>
            Defines a new data source within this data context if one does not exist.
            Otherwise returns the existing one.
            </summary>
            <param name="name">The data source name.</param>
            <returns>The defined data source.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="name"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.Pattern.PatternTestDataContext.ResolveDataSource(System.String)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Pattern.PatternTestDataContext.ResolveImplicitDataBindingIndex">
            <summary>
            Returns the index that should be used to implicitly bind to the nearest
            anonymous data source that can be found.  
            </summary>
            <remarks>
            <para>
            The index is computed as the sum of the <see cref="P:Gallio.Framework.Pattern.PatternTestDataContext.ImplicitDataBindingIndexOffset"/> of each data
            context traversed to find the data source excluding the data context
            that actually has the data source.
            </para>
            </remarks>
            <returns>The implicit data binding index, or null if no anonymous data sources were found.</returns>
            <seealso cref="P:Gallio.Framework.Pattern.PatternTestDataContext.ImplicitDataBindingIndexOffset"/>
        </member>
        <member name="M:Gallio.Framework.Pattern.PatternTestDataContext.CreateChild">
            <summary>
            Creates a child data context.
            </summary>
            <returns>A handle for the child context.</returns>
        </member>
        <member name="P:Gallio.Framework.Pattern.PatternTestDataContext.Parent">
            <summary>
            Gets the containing data context, or null if none.
            </summary>
        </member>
        <member name="P:Gallio.Framework.Pattern.PatternTestDataContext.ImplicitDataBindingIndexOffset">
            <summary>
            Gets or sets the offset to add to a test parameter's implicit data binding index to map it
            into the containing data context.
            </summary>
            <remarks>
            <para>
            This property is used to determine the data binding index of a test parameter that
            has not been explicitly bound.  The offsets are summed cumulatively to produce an implicit
            data binding index while traversing the chain of containing data contexts while locating the
            first anonymous data source.
            </para>
            <para>
            For example, suppose <c>Y</c> is the second parameter of a test method.  If <c>Y</c> does not
            have an explicit data binding, we will apply implicit data binding rules as follows.
            <list type="bullet">
            <item>If <c>Y</c>'s data context contains an anonymous data source, then the implicit data binding index will be 0.</item>
            <item>Otherwise, if <c>Y</c>'s containing data context contains an anonymous data source, then the implicit data
            binding index will equal the offset specified in <c>Y</c>'s data context: 1 (since it is the second parameter).</item>
            <item>Otherwise, we continue searching containing data contexts and summing their offsets until we find an
            anonymous data source.  If none is found, then data binding will fail.</item>
            </list>
            </para>
            </remarks>
        </member>
        <member name="T:Gallio.Framework.Pattern.PatternUsageErrorException">
            <summary>
            The type of exception thrown when a test declaration is malformed or
            contains an error.  
            </summary>
            <remarks>
            <para>
            Implementations of <see cref="T:Gallio.Framework.Pattern.IPattern"/> may use this exception to report that a pattern 
            is malformed or not valid in the context in which it appears.
            </para>
            <para>
            The exception effectively halts the processing of the pattern.  The message
            text is then manifested as an error annotation that may be displayed to the user.
            </para>
            <para>
            When you see this error, check to make sure that the syntax of the test
            is correct, all required parameters have been provided and they contain
            valid values.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Framework.Pattern.PatternUsageErrorException.#ctor(System.String)">
            <summary>
            Creates a usage error exception.
            </summary>
            <param name="message">A message that describes how the pattern was misused and possibly what should be done to correct it.</param>
        </member>
        <member name="M:Gallio.Framework.Pattern.PatternUsageErrorException.#ctor(System.String,System.Exception)">
            <summary>
            Creates a usage error exception.
            </summary>
            <param name="message">A message that describes how the pattern was misused and possibly what should be done to correct it.</param>
            <param name="innerException">An optional exception that will be used to provide aditional details about the usage error.</param>
        </member>
        <member name="M:Gallio.Framework.Pattern.PatternUsageErrorException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Creates an exception from serialization info.
            </summary>
            <param name="info">The serialization info.</param>
            <param name="context">The streaming context.</param>
        </member>
        <member name="T:Gallio.Framework.Pattern.TestDependencyPatternAttribute">
            <summary>
            A dependency pattern attribute creates a dependency on the tests defined
            by some other code element.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Pattern.TestDependencyPatternAttribute.Process(Gallio.Framework.Pattern.IPatternScope,Gallio.Common.Reflection.ICodeElementInfo)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Pattern.TestDependencyPatternAttribute.Validate(Gallio.Framework.Pattern.IPatternScope,Gallio.Common.Reflection.ICodeElementInfo)">
            <summary>
            Verifies that the attribute is being used correctly.
            </summary>
            <param name="scope">The scope.</param>
            <param name="codeElement">The code element.</param>
            <exception cref="T:Gallio.Framework.Pattern.PatternUsageErrorException">Thrown if the attribute is being used incorrectly.</exception>
        </member>
        <member name="M:Gallio.Framework.Pattern.TestDependencyPatternAttribute.GetDependency(Gallio.Framework.Pattern.IPatternScope,Gallio.Common.Reflection.ICodeElementInfo)">
            <summary>
            Gets the code element that declares the tests on which this test should depend.
            </summary>
            <param name="scope">The scope.</param>
            <param name="codeElement">The code element.</param>
            <returns>The code element representing the dependency.</returns>
        </member>
        <member name="T:Gallio.Framework.Pattern.DefaultPatternEvaluator">
            <summary>
            Default implementation of a pattern evaluator.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Pattern.DefaultPatternEvaluator.#ctor(Gallio.Framework.Pattern.ITestModelBuilder,Gallio.Framework.Pattern.IPatternResolver)">
            <summary>
            Creates a pattern evaluator.
            </summary>
            <param name="testModelBuilder">The test model builder.</param>
            <param name="patternResolver">The pattern resolver.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="testModelBuilder"/> or
            <paramref name="patternResolver"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.Pattern.DefaultPatternEvaluator.RegisterScope(Gallio.Framework.Pattern.IPatternScope)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Pattern.DefaultPatternEvaluator.GetScopes(Gallio.Common.Reflection.ICodeElementInfo)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Pattern.DefaultPatternEvaluator.GetDeclaredTests(Gallio.Common.Reflection.ICodeElementInfo)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Pattern.DefaultPatternEvaluator.GetTestParts(Gallio.Common.Reflection.ICodeElementInfo,Gallio.Framework.Pattern.IPattern)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Pattern.DefaultPatternEvaluator.Consume(Gallio.Framework.Pattern.IPatternScope,Gallio.Common.Reflection.ICodeElementInfo,System.Boolean,Gallio.Framework.Pattern.IPattern)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Pattern.DefaultPatternEvaluator.Process(Gallio.Framework.Pattern.IPatternScope,Gallio.Common.Reflection.ICodeElementInfo)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Pattern.DefaultPatternEvaluator.HasPatterns(Gallio.Common.Reflection.ICodeElementInfo)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Pattern.DefaultPatternEvaluator.GetPatterns(Gallio.Common.Reflection.ICodeElementInfo)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Pattern.DefaultPatternEvaluator.GetPrimaryPattern(Gallio.Common.Reflection.ICodeElementInfo)">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Framework.Pattern.DefaultPatternEvaluator.TestModelBuilder">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Framework.Pattern.DefaultPatternEvaluator.RootScope">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Framework.Pattern.MetadataPatternAttribute">
            <summary>
            Applies declarative metadata to a test component.
            </summary>
            <remarks>
            <para>
            A metadata attribute is similar to a decorator but more restrictive.  Metadata does
            not modify the structure of a test directly.  Instead it introduces additional metadata
            key / value pairs for classification, filtering, reporting, documentation or other purposes.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Framework.Pattern.MetadataPatternAttribute.Process(Gallio.Framework.Pattern.IPatternScope,Gallio.Common.Reflection.ICodeElementInfo)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Pattern.MetadataPatternAttribute.Validate(Gallio.Framework.Pattern.IPatternScope,Gallio.Common.Reflection.ICodeElementInfo)">
            <summary>
            Verifies that the attribute is being used correctly.
            </summary>
            <param name="scope">The scope.</param>
            <param name="codeElement">The code element.</param>
            <exception cref="T:Gallio.Framework.Pattern.PatternUsageErrorException">Thrown if the attribute is being used incorrectly.</exception>
        </member>
        <member name="M:Gallio.Framework.Pattern.MetadataPatternAttribute.GetMetadata">
            <summary>
            Gets the metadata key / value pairs to be added to the test component.
            </summary>
            <returns>The metadata entries.</returns>
        </member>
        <member name="T:Gallio.Framework.Pattern.PatternTest">
            <summary>
            A test case that has been defined by the <see cref="T:Gallio.Framework.Pattern.PatternTestFramework"/>.
            </summary>
            <seealso cref="T:Gallio.Framework.Pattern.PatternTestFramework"/>
        </member>
        <member name="T:Gallio.Model.Tree.Test">
            <summary>
            A test object represents a parameterized test case or test
            container.  The test parameters are used as placeholders for
            data-binding during test execution.  A single test can
            produce multiple steps (<seealso cref="T:Gallio.Model.Tree.TestStep"/>) at runtime.
            </summary>
            <remarks>
            <para>
            A <see cref="T:Gallio.Model.Tree.Test"/> can be thought of as a declarative
            artifact that describes about what a test "looks like"
            from the outside based on available reflective metadata.
            A <see cref="T:Gallio.Model.Tree.TestStep"/> is then the runtime counterpart of a
            <see cref="T:Gallio.Model.Tree.Test"/> that is created to describe different
            parameter bindigns or other characteristics of a test's structure
            that become manifest only at runtime.
            </para>
            <para>
            A test may depend on one or more other tests.  When a test
            fails, the tests that depend on it are also automatically
            considered failures.  Moreover, the test harness ensures
            that a test will only run once all of its dependencies have
            completed execution successfully.  A run-time error will
            occur when the system detects the presence of circular test dependencies
            or attempts to execute a test concurrently with its dependencies.
            </para>
            <para>
            A test contain child tests.  The children of a test are executed
            in dependency order within the scope of the parent test.  Thus the parent
            test may setup/teardown the execution environment used to execute
            its children.  Tests that belong to different subtrees are executed in
            relative isolation within the common environment established by their common parent.
            </para>
            <para>
            The object model distinguishes between tests that represent individual test cases
            and other test containers.  Test containers are skipped if they do not
            contain any test cases or if none of their test cases have been selected for execution.
            </para>
            <para>
            The kind of type type of test is set to <see cref="F:Gallio.Model.TestKinds.Group"/> by default.
            </para>
            </remarks>
        </member>
        <member name="T:Gallio.Model.Tree.TestComponent">
            <summary>
            Common interface for elements in the test object model.
            </summary>
            <remarks>
            <para>
            All components have a name for presentation, metadata for
            annotations, and a code reference to its point of definition. 
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Model.Tree.TestComponent.#ctor(System.String,Gallio.Common.Reflection.ICodeElementInfo)">
            <summary>
            Initializes a test component.
            </summary>
            <param name="name">The name of the component.</param>
            <param name="codeElement">The point of definition of the component, or null if unknown.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="name"/> is null.</exception>
        </member>
        <member name="M:Gallio.Model.Tree.TestComponent.ToString">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Model.Tree.TestComponent.Id">
            <summary>
            Gets or sets the stable unique identifier of the component.
            </summary>
            <remarks>
            <para>
            The identifier must be unique across all components
            within a given test project.  It should also be stable so that the
            identifier remains valid across recompilations and code changes that
            do not alter the underlying declarations (insofar as is possible).
            </para>
            <para>
            The identifier does not refer to a specific instance of <see cref="T:Gallio.Model.Tree.TestComponent"/>,
            but rather incorporates enough information so that we can unambiguously find a
            corresponding instance in a model that has been populated.  When we rebuild
            the model, assuming the code hasn't changed too much, the objects in the model
            will have the same identifier as before.  This allows the identifier
            to be saved in project files to construct lists of components.  We can also use
            it to refer to components remotely.
            </para>
            </remarks>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="P:Gallio.Model.Tree.TestComponent.Name">
            <summary>
            Gets or sets the name of the component.
            </summary>
            <remarks>
            <para>
            The name does not need to be globally unique.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Model.Tree.TestComponent.Kind">
            <summary>
            Gets or sets the value of the <see cref="F:Gallio.Model.MetadataKeys.TestKind"/>
            metadata entry.
            </summary>
            <remarks>
            <para>
            This is a convenience method.
            </para>
            </remarks>
            <value>
            One of the <see cref="T:Gallio.Model.TestKinds"/> constants.
            </value>
        </member>
        <member name="P:Gallio.Model.Tree.TestComponent.Metadata">
            <summary>
            Gets the metadata of the component.
            </summary>
            <seealso cref="T:Gallio.Model.MetadataKeys"/>
        </member>
        <member name="P:Gallio.Model.Tree.TestComponent.CodeElement">
            <summary>
            Gets or sets a reference to the point of definition of this test
            component in the code, or null if unknown.
            </summary>
        </member>
        <member name="M:Gallio.Model.Tree.Test.#ctor(System.String,Gallio.Common.Reflection.ICodeElementInfo)">
            <summary>
            Initializes a test initially without a parent.
            </summary>
            <param name="name">The name of the test.</param>
            <param name="codeElement">The point of definition of the test, or null if unknown.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="name"/> is null.</exception>
        </member>
        <member name="M:Gallio.Model.Tree.Test.ClearParameters">
            <summary>
            Clears the list of test parameters.
            </summary>
        </member>
        <member name="M:Gallio.Model.Tree.Test.AddParameter(Gallio.Model.Tree.TestParameter)">
            <summary>
            Adds a test parameter and sets its <see cref="P:Gallio.Model.Tree.TestParameter.Owner"/> property.
            </summary>
            <param name="parameter">The test parameter to add.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="parameter"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Thrown if <paramref name="parameter"/> is already
            owned by some other test.</exception>
        </member>
        <member name="M:Gallio.Model.Tree.Test.RemoveParameter(Gallio.Model.Tree.TestParameter)">
            <summary>
            Removes a test parameter and resets its <see cref="P:Gallio.Model.Tree.TestParameter.Owner"/> property.
            </summary>
            <param name="parameter">The test parameter to remove.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="parameter"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Thrown if <paramref name="parameter"/> is not owned by this test.</exception>
        </member>
        <member name="M:Gallio.Model.Tree.Test.ClearChildren">
            <summary>
            Clears the list of children.
            </summary>
        </member>
        <member name="M:Gallio.Model.Tree.Test.AddChild(Gallio.Model.Tree.Test)">
            <summary>
            Adds a child test and sets its <see cref="P:Gallio.Model.Tree.Test.Parent"/> property.
            </summary>
            <param name="test">The test to add as a child.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="test"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Thrown if <paramref name="test"/> is already
            the child of some other test.</exception>
        </member>
        <member name="M:Gallio.Model.Tree.Test.RemoveChild(Gallio.Model.Tree.Test)">
            <summary>
            Removes a child test and resets its <see cref="P:Gallio.Model.Tree.Test.Parent"/> property.
            </summary>
            <param name="test">The child test to remove.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="test"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Thrown if <paramref name="test"/> is not a child of this test.</exception>
        </member>
        <member name="M:Gallio.Model.Tree.Test.ClearDependencies">
            <summary>
            Clears the list of dependencies.
            </summary>
        </member>
        <member name="M:Gallio.Model.Tree.Test.AddDependency(Gallio.Model.Tree.Test)">
            <summary>
            Adds a test dependency.
            </summary>
            <param name="test">The test to add as a dependency.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="test"/> is null.</exception>
        </member>
        <member name="M:Gallio.Model.Tree.Test.RemoveDependency(Gallio.Model.Tree.Test)">
            <summary>
            Removes a test dependency.
            </summary>
            <param name="test">The test to remove as a dependency.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="test"/> is null.</exception>
        </member>
        <member name="M:Gallio.Model.Tree.Test.GetUniqueLocalIdForChild(System.String)">
            <summary>
            Obtains a unique local id for a child of this test.
            </summary>
            <param name="localIdHint">A suggested id which will be used if no conflicts occur.</param>
            <returns>The unique local id to use.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="localIdHint"/> is null.</exception>
        </member>
        <member name="M:Gallio.Model.Tree.Test.ToString">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Model.Tree.Test.Id">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Model.Tree.Test.LocalIdHint">
            <summary>
            Gets or sets a suggested <see cref="P:Gallio.Model.Tree.Test.LocalId"/> hint, or null if none.
            </summary>
            <remarks>
            <para>
            The value returned by this method will be checked for uniqueness and amended as necessary
            to produce a truly unique <see cref="P:Gallio.Model.Tree.Test.LocalId"/>.
            </para>
            </remarks>
            <value>
            The default value of this property is <c>null</c> which causes the <see cref="P:Gallio.Model.Tree.TestComponent.Name"/>
            property to be used as the local id hint.
            </value>
            <returns>The local id hint.</returns>
        </member>
        <member name="P:Gallio.Model.Tree.Test.FullName">
            <summary>
            Gets the full name of the test.  The full name is derived by concatenating the
            <see cref="P:Gallio.Model.Tree.Test.FullName"/> of the <see cref="P:Gallio.Model.Tree.Test.Parent"/> followed by a slash ('/')
            followed by the <see cref="P:Gallio.Model.Tree.TestComponent.Name"/> of this test.
            </summary>
            <remarks>
            <para>
            The full name of the root test is empty.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Model.Tree.Test.Parent">
            <summary>
            Gets or sets the parent of this test, or null if this is the root test.
            </summary>
        </member>
        <member name="P:Gallio.Model.Tree.Test.LocalId">
            <summary>
            Gets a locally unique identifier for this test that satisfies the following conditions:
            </summary>
            <remarks>
            <para>
            <list type="bullet">
            <item>The identifier is unique among all siblings of this test belonging to the same parent.</item>
            <item>The identifier is likely to be stable across multiple sessions including
            changes and recompilations of the test projects.</item>
            <item>The identifier is non-null.</item>
            </list>
            </para>
            <para>
            The local identifier may be the same as the test's name.  However since the name is
            intended for display to end-users, it may contain irrelevant details (such as version
            numbers) that would reduce its long-term stability.  In that case, a different
            local identifier should be selected such as one based on the test's
            <see cref="P:Gallio.Model.Tree.TestComponent.CodeElement"/> and an ordering condition among siblings
            to guarantee uniqueness.
            </para>
            <para>
            The locally unique <see cref="P:Gallio.Model.Tree.Test.LocalId"/> property may be used to generate the
            globally unique <see cref="P:Gallio.Model.Tree.TestComponent.Id"/> property of a test by combining
            it with the locally unique identifiers of its parents.
            </para>
            </remarks>
            <returns>The locally unique identifier.</returns>
        </member>
        <member name="P:Gallio.Model.Tree.Test.IsTestCase">
            <summary>
            Gets whether this test represents an individual test case
            as opposed to a test container such as a fixture or suite.
            </summary>
            <remarks>
            <para>
            The value of this property can be used by the test harness to avoid processing 
            containers that have no test cases.  It can also be used by the reporting infrastructure
            to constrain output statistics to test cases only.
            </para>
            <para>
            Not all test cases are leaf nodes in the test tree and vice-versa.       
            </para>
            <para>
            This value is defined as a property rather than as a metadata key because it
            significantly changes the semantics of test execution.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Model.Tree.Test.Parameters">
            <summary>
            Gets a read-only list of the parameters of this test.
            </summary>
            <remarks>
            <para>
            Each parameter must have a unique name.
            </para>
            <para>
            The order in which the parameters appear is not significant.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Model.Tree.Test.Children">
            <summary>
            Gets a read-only list of the children of this test.
            </summary>
        </member>
        <member name="P:Gallio.Model.Tree.Test.Dependencies">
            <summary>
            Gets a read-only list of the dependencies of this test.
            </summary>
            <remarks>
            <para>
            Some test frameworks may choose to ignore test dependencies or may impose their own dependency schemes.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Model.Tree.Test.Order">
            <summary>
            Gets or sets a number that defines an ordering for the test with respect to its siblings.
            </summary>
            <remarks>
            <para>
            Unless compelled otherwise by test dependencies, tests with a lower order number than
            their siblings will run before those siblings and tests with the same order number
            as their siblings with run in an arbitrary sequence with respect to those siblings.
            </para>
            <para>
            Some test frameworks may choose to ignore test order or may impose their own ordering schemes.
            </para>
            </remarks>
            <value>The test execution order with respect to siblings, initially zero.</value>
        </member>
        <member name="M:Gallio.Framework.Pattern.PatternTest.#ctor(System.String,Gallio.Common.Reflection.ICodeElementInfo,Gallio.Framework.Pattern.PatternTestDataContext)">
            <summary>
            Initializes a test initially without a parent.
            </summary>
            <param name="name">The name of the test.</param>
            <param name="codeElement">The point of definition of the test, or null if unknown.</param>
            <param name="dataContext">The data context.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="name"/> or <paramref name="dataContext"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.Pattern.PatternTest.SetName(System.String)">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Framework.Pattern.PatternTest.TimeoutFunc">
            <summary>
            Gets or sets a functon that returns the maximum amount of time the whole test including
            its setup, teardown and body should be permitted to run.
            </summary>
            <remarks>
            <para>
            If the test runs any longer than this, it will be aborted by the framework.
            The timeout may be null to indicate the absence of a timeout.
            </para>
            </remarks>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
            <value>The timeout.  Default value is null.</value>
        </member>
        <member name="P:Gallio.Framework.Pattern.PatternTest.ApartmentState">
            <summary>
            Gets or sets the apartment state to be used to run the test.
            </summary>
            <remarks>
            <para>
            If the apartment state is <see cref="F:System.Threading.ApartmentState.Unknown"/>
            the test will inherit the apartment state of its parent.  Otherwise
            it will run in a thread with the specified apartment state.
            </para>
            <para>
            The test runner guarantees that the root test runs with the <see cref="F:System.Threading.ApartmentState.STA"/>
            apartment state.  Consequently the apartment state only needs to be overridden to run 
            a test in some mode that may differ from that which it would ordinarily inherit.
            </para>
            </remarks>
            <value>
            The default value of this property is <see cref="F:System.Threading.ApartmentState.Unknown"/>.
            </value>
        </member>
        <member name="P:Gallio.Framework.Pattern.PatternTest.IsParallelizable">
            <summary>
            Gets or sets whether the test is parallelizable.
            </summary>
            <value>
            True if the test is parallelizable.  The default value of this property is <c>false</c>.
            </value>
        </member>
        <member name="P:Gallio.Framework.Pattern.PatternTest.TestActions">
            <summary>
            Gets the set of actions that describe the behavior of the test.
            </summary>
        </member>
        <member name="P:Gallio.Framework.Pattern.PatternTest.TestInstanceActions">
            <summary>
            Gets the set of actions that describe the behavior of the test's instances.
            </summary>
        </member>
        <member name="P:Gallio.Framework.Pattern.PatternTest.DataContext">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Framework.Pattern.PatternTestActions">
            <summary>
            Pattern test action provide the logic that implements the various
            phases of the test execution lifecycle.
            </summary>
            <remarks>
            <para>
            Each chain of actions represents the behavior to be performed during a particular phase.
            Different actions are permitted during each phase.  Consult the
            documentation of the chains for restrictions.
            </para>
            <para>
            The phases generally run in the following order.  Some phases may be skipped
            due to exceptions or if there is no work to be done.
            <list type="bullet">
            <item><see cref="P:Gallio.Framework.Pattern.PatternTestActions.BeforeTestChain"/></item>
            <item><see cref="P:Gallio.Framework.Pattern.PatternTestActions.InitializeTestChain"/></item>
            <item>-- for each test instance --</item>
            <item><see cref="P:Gallio.Framework.Pattern.PatternTestActions.DecorateTestInstanceChain"/></item>
            <item>Run the actions in the decorated <see cref="T:Gallio.Framework.Pattern.PatternTestInstanceActions"/></item>
            <item>-- end --</item>
            <item><see cref="P:Gallio.Framework.Pattern.PatternTestActions.DisposeTestChain"/></item>
            <item><see cref="P:Gallio.Framework.Pattern.PatternTestActions.AfterTestChain"/></item>
            </list>
            </para>
            <para>
            This class is the backbone of the <see cref="T:Gallio.Framework.Pattern.PatternTestFramework"/>
            extensibility model.  Because new behaviors can be defined and added
            to action chains at will by any component that participates in the test
            construction process (typically an <see cref="T:Gallio.Framework.Pattern.IPattern"/>), the framework
            itself does not need to hardcode the mechanism by which the behaviors are
            selected.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Framework.Pattern.PatternTestActions.#ctor">
            <summary>
            Creates a test actions object initially configured with empty action chains
            that do nothing.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Pattern.PatternTestActions.Copy">
            <summary>
            Creates a copy of the test actions.
            </summary>
            <returns>The new copy.</returns>
        </member>
        <member name="P:Gallio.Framework.Pattern.PatternTestActions.TestInstanceActions">
            <summary>
            Gets the test instance actions that describes the lifecycle of a test instance.
            </summary>
            <remarks>
            <para>
            These actions may be further decorated on a per-instance basis using <see cref="P:Gallio.Framework.Pattern.PatternTestActions.DecorateTestInstanceChain"/>.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Framework.Pattern.PatternTestActions.BeforeTestChain">
            <summary>
            Prepares a newly created test state before its use.
            </summary>
            <remarks>
            <para>
            This method runs in the <see cref="T:Gallio.Framework.TestContext"/> of its containing test
            step because the test has not yet been started.
            </para>
            <para>
            The following actions are typically performed during this phase:
            <list type="bullet">
            <item>Configuring the <see cref="P:Gallio.Framework.Pattern.PatternTestState.PrimaryTestStep"/> in anticipation of test execution.</item>
            <item>Accessing user data via <see cref="P:Gallio.Framework.Pattern.PatternTestState.Data"/>.</item>
            <item>Skipping the test by throwing an appropriate <see cref="T:Gallio.Framework.SilentTestException"/>.</item>
            </list>
            </para>
            <para>
            The following actions are forbidden during this phase because they would
            either go unnoticed or have undesirable side-effects upon test execution:
            <list type="bullet">
            <item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTest"/> object in any way.</item>
            </list>
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Framework.Pattern.PatternTestActions.InitializeTestChain">
            <summary>
            Initializes a test prior to the execution of its instances.
            </summary>
            <remarks>
            <para>
            This method runs in the <see cref="T:Gallio.Framework.TestContext"/> of the <see cref="P:Gallio.Framework.Pattern.PatternTestState.PrimaryTestStep"/>.
            </para>
            <para>
            The following actions are typically performed during this phase:
            <list type="bullet">
            <item>Aborting the test run if any preconditions have not been satisfied or if the test is to be skipped.</item>
            <item>Configuring the test environment in advance of the enumeration and execution of all test instances.</item>
            <item>Accessing user data via <see cref="P:Gallio.Framework.Pattern.PatternTestState.Data"/>.</item>
            </list>
            </para>
            <para>
            The following actions are forbidden during this phase because they would
            either go unnoticed or have undesirable side-effects upon test execution:
            <list type="bullet">
            <item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTest"/> object in any way.</item>
            <item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTestStep"/> object in any way.</item>
            </list>
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Framework.Pattern.PatternTestActions.DisposeTestChain">
            <summary>
            Cleans up a test following the execution of its instances.
            </summary>
            <remarks>
            <para>
            This method runs in the <see cref="T:Gallio.Framework.TestContext"/> of the <see cref="P:Gallio.Framework.Pattern.PatternTestState.PrimaryTestStep"/>.
            </para>
            <para>
            The following actions are typically performed during this phase:
            <list type="bullet">
            <item>Deconfiguring the test environment following the enumeration and execution of all test instances.</item>
            <item>Accessing user data via <see cref="P:Gallio.Framework.Pattern.PatternTestState.Data"/>.</item>
            </list>
            </para>
            <para>
            The following actions are forbidden during this phase because they would
            either go unnoticed or have undesirable side-effects upon test execution:
            <list type="bullet">
            <item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTest"/> object in any way.</item>
            <item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTestStep"/> object in any way.</item>
            </list>
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Framework.Pattern.PatternTestActions.AfterTestChain">
            <summary>
            Cleans up a completed test state after its use.
            </summary>
            <remarks>
            <para>
            This method runs in the <see cref="T:Gallio.Framework.TestContext"/> of its containing test
            step because the test has terminated.
            </para>
            <para>
            The following actions are typically performed during this phase:
            <list type="bullet">
            <item>Accessing user data via <see cref="P:Gallio.Framework.Pattern.PatternTestState.Data"/>.</item>
            </list>
            </para>
            <para>
            The following actions are forbidden during this phase because they would
            either go unnoticed or have undesirable side-effects upon test execution:
            <list type="bullet">
            <item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTest"/> object in any way.</item>
            <item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTestStep"/> object in any way.</item>
            </list>
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Framework.Pattern.PatternTestActions.DecorateTestInstanceChain">
            <summary>
            Decorates the <see cref="T:Gallio.Framework.Pattern.PatternTestInstanceActions"/> of a test instance before its
            <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceActions.BeforeTestInstanceChain"/> actions have a chance to run.
            </summary>
            <remarks>
            <para>
            This method runs in the <see cref="T:Gallio.Framework.TestContext"/> of its containing test
            instance because the test has not yet been started.
            </para>
            <para>
            This method may apply any number of decorations to the test instance's actions
            to the supplied <see cref="T:Gallio.Framework.Pattern.PatternTestInstanceActions"/> object.
            The test instance's original actions are unmodified by this operation and the
            decorated actions are discarded once the child test is finished.
            </para>
            <para>
            The following actions are typically performed during this phase:
            <list type="bullet">
            <item>Adding additional actions for the test instance to the <see cref="T:Gallio.Framework.Pattern.PatternTestInstanceActions"/>.</item>
            <item>Accessing user data via <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceState.Data"/>.</item>
            </list>
            </para>
            <para>
            The following actions are forbidden during this phase because they would
            either go unnoticed or have undesirable side-effects upon test execution:
            <list type="bullet">
            <item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTest"/> object in any way.</item>
            <item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTestStep"/> object in any way.</item>
            <item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTestState"/> object in any way.</item>
            </list>
            </para>
            </remarks>
        </member>
        <member name="T:Gallio.Framework.Pattern.PatternTestController">
            <summary>
            Controls the execution of <see cref="T:Gallio.Framework.Pattern.PatternTest"/> instances.
            </summary>
            <seealso cref="T:Gallio.Framework.Pattern.PatternTestFramework"/>
        </member>
        <member name="M:Gallio.Framework.Pattern.PatternTestController.#ctor(Gallio.Runtime.Formatting.IFormatter,Gallio.Runtime.Conversions.IConverter,Gallio.Model.Environments.ITestEnvironmentManager)">
            <summary>
            Creates a pattern test controller.
            </summary>
            <param name="formatter">The formatter for data binding.</param>
            <param name="converter">The converter for data binding.</param>
            <param name="environmentManager">The test environment manager.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="formatter"/>,
            <paramref name="converter"/> or <paramref name="environmentManager"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.Pattern.PatternTestController.RunImpl(Gallio.Model.Commands.ITestCommand,Gallio.Model.Tree.TestStep,Gallio.Model.TestExecutionOptions,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Framework.Pattern.PatternTestExecutor">
            <summary>
            Encapsulates the algorithm for recursively running a <see cref="T:Gallio.Framework.Pattern.PatternTest"/>.
            </summary>
            <remarks>
            <para>
            Please note that this code has been optimized to minimize the stack depth so as
            to be more debugger-friendly.  That means some of these methods (and the methods
            they call) are rather a lot longer and harder to read than they used to be.
            However the payoff is very significant for end-users.  As a result of this optimization
            the effective stack depth for a simple test has been reduced from over 160 to about 30 in many cases.
            -- Jeff.
            </para>
            </remarks>
        </member>
        <member name="T:Gallio.Framework.Pattern.PatternTestDriver">
            <summary>
            Test driver for the pattern test framework.
            </summary>
        </member>
        <member name="T:Gallio.Framework.Pattern.PatternTestFramework">
            <summary>
            The pattern test framework is a built-in framework that Gallio provides based on
            reflection over attributes that implement <see cref="T:Gallio.Framework.Pattern.IPattern"/>.
            </summary>
            <remarks>
            <para>
            The pattern test framework does not provide many attributes that end-users would use
            to write tests.  The framework is intended to be extended by 
            components and libraries that define the test syntax and other facilities.
            </para>
            <para>
            For example, a Test-Driven framework would augment the base framework with a syntax based
            around test fixtures, test methods and assertions.  A Behavior-Driven framework
            would instead use a syntax based around contexts and specifications.  Both frameworks
            would share the common attribute-based model provided by the pattern test framework.
            They may even interoperate to a large extent.
            </para>
            <para>
            Other add-on libraries and tools may further contribute functionality to the pattern
            test framework by registering components with the runtime or by subclassing
            pattern attributes.
            </para>
            <para>
            Gallio supports the use of multiple test frameworks.  The pattern test framework
            model defined here may not be appropriate for all purposes.  Therefore you may
            consider creating a new test framework from scratch by implementing <see cref="T:Gallio.Model.ITestFramework"/>
            and <see cref="T:Gallio.Model.ITestDriver"/> appropriately to obtain the desired semantics.
            </para>
            <para>
            The name of the Pattern Test Framework derives from the similarity between the recursive
            construction process performed by <see cref="T:Gallio.Framework.Pattern.IPattern"/> and the kind of pattern matching
            that is performed by a recursive descent parser.  Each primary <see cref="T:Gallio.Framework.Pattern.IPattern"/> can be
            thought of as a grammar rule that matches a given code element and describes how further
            matching of nested code elements is intended to occur.  The actual matching performed is
            somewhat simplistic (largely based on attribute lookup) but on the whole the framework
            provides a quite flexible implementation pattern for a wide variety of testing features.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Framework.Pattern.PatternTestFramework.GetTestDriverFactory">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Pattern.PatternTestFramework.GetExtensions(Gallio.Common.Reflection.IAssemblyInfo)">
            <summary>
            Gets information about a particular pattern test framework extension.
            </summary>
            <remarks>
            <para>
            The information will be included in the report as part of the framework
            node that contains the assembly.
            </para>
            <para>
            If there are no framework extensions associated with a particular assembly then
            the assembly will not be explored for tests.
            </para>
            </remarks>
            <param name="assembly">The test assembly.</param>
            <returns>The pattern test framework extension information.</returns>
        </member>
        <member name="T:Gallio.Framework.Pattern.PatternTestStep">
            <summary>
            A step that belongs to a <see cref="T:Gallio.Framework.Pattern.PatternTest"/>.
            </summary>
            <seealso cref="T:Gallio.Framework.Pattern.PatternTestFramework"/>
        </member>
        <member name="T:Gallio.Model.Tree.TestStep">
            <summary>
            A test step is a delimited region of a test defined at run-time.
            </summary>
            <remarks>
            <para>
            Each test that is executed consists of at least one step: the "primary" step.
            During execution, each test may spawn additional nested steps that may run in
            parallel or in series with one another as required.
            </para>
            <para>
            A test step may be used to describe a particular instance of a data driven test.
            It can also be used to generate a completely dynamic hierarchy at runtime that
            mirrors and extends the static test hierarchy with new information derived from
            the actual execution of the test.
            </para>
            <para>
            Each step has its own execution log and test result (pass/fail/inconclusive).
            Therefore a multi-step test may possess multiple execution logs and test results.
            This is deliberate.  Think of a <see cref="T:Gallio.Model.Tree.TestStep"/> as being the declarative component
            of a test that specifies which test method to invoke and its arguments.  A
            <see cref="T:Gallio.Model.Tree.Test"/> is the runtime counterpart of the <see cref="T:Gallio.Model.Tree.Test"/> that
            captures output and control flow information about part or all of the test.
            </para>
            <para>
            A test step also has metadata that can be update at run-time to carry additional
            declarative information about the step.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Model.Tree.TestStep.#ctor(Gallio.Model.Tree.Test,Gallio.Model.Tree.TestStep)">
            <summary>
            Creates a primary step using the same name, code element and metadata
            as the test to which it belongs.
            </summary>
            <param name="test">The test to which the step belongs.</param>
            <param name="parent">The parent test step, or null if creating the root step.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="test"/> is null.</exception>
        </member>
        <member name="M:Gallio.Model.Tree.TestStep.#ctor(Gallio.Model.Tree.Test,Gallio.Model.Tree.TestStep,System.String,Gallio.Common.Reflection.ICodeElementInfo,System.Boolean)">
            <summary>
            Creates a step.
            </summary>
            <remarks>
            <para>
            If <paramref name="isPrimary"/> is true, then all metadata from the <paramref name="test"/>
            is copied to the step.  Otherwise the new step will have no metadata initially.
            </para>
            </remarks>
            <param name="test">The test to which the step belongs.</param>
            <param name="parent">The parent step, or null if creating a root step.</param>
            <param name="name">The step name.</param>
            <param name="codeElement">The point of definition of the step, or null if unknown.</param>
            <param name="isPrimary">True if the test step is primary.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="name"/>
            or <paramref name="test"/> is null.</exception>
        </member>
        <member name="M:Gallio.Model.Tree.TestStep.ToString">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Model.Tree.TestStep.Id">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Model.Tree.TestStep.FullName">
            <summary>
            Gets the full name of the step.
            </summary>
            <remarks>
            <para>
            The full name is derived by concatenating the <see cref="P:Gallio.Model.Tree.TestStep.FullName"/> of the
            <see cref="P:Gallio.Model.Tree.TestStep.Parent"/> followed by a slash ('/') followed by the <see cref="P:Gallio.Model.Tree.TestComponent.Name"/>
            of this test step.
            </para>
            <para>
            The full name of the root test step is empty.
            </para>
            <para>
            Examples:
            <list type="bullet">
            <item><strong>""</strong> : The root step.</item>
            <item><strong>"SomeAssembly/SomeFixture/SomeTest"</strong> : The step corresponding to SomeTest.</item>
            <item><strong>"SomeAssembly/SomeFixture/SomeTest/ChildStep"</strong> : A child step of SomeTest.</item>
            </list>
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Model.Tree.TestStep.Parent">
            <summary>
            Gets the step that contains this one, or null if this instance represents the
            root step of the test step tree.
            </summary>
        </member>
        <member name="P:Gallio.Model.Tree.TestStep.Test">
            <summary>
            Gets the test to which this step belongs.
            </summary>
        </member>
        <member name="P:Gallio.Model.Tree.TestStep.IsPrimary">
            <summary>
            Returns true if the test step is the top node of a hierarchy of test steps that are
            all associated with the same test.
            </summary>
            <remarks>
            <para>
            In the case where a single test step is associated with a test, then it is the primary test step.
            There may be multiple primary test steps of the same test if they are not
            directly related by ancestry (ie. one does not contain the other).
            </para>
            <para>
            A non-primary test step is known as a derived test step.
            </para>
            <para>
            For example, suppose we have a data-driven test fixture F which contains a data-driven
            test T.  There will be a primary test step of F that represents the undifferentiated
            fixture with no data bound to it.  Its immediate children will be derived test steps of F with particular data bindings.
            Similarly, each of these derived test steps of F will contain a primary test step of T
            which then contains derived test steps of T.
            </para>
            <para>
            This case is illustrated like this where periods delimit path segments in the test step hierarchy.
            <list type="bullet">
            <item><strong>F</strong> : Primary test step of F</item>
            <item><strong>F.F1</strong> : Non-primary test step of F with data bindings</item>
            <item><strong>F.F1.T</strong> : Primary test step of T</item>
            <item><strong>F.F1.T.T1</strong> : Non-primary test step of T with data bindings</item>
            <item><strong>F.F1.T.T2</strong> : Non-primary test step of T with data bindings</item>
            <item><strong>F.F2</strong> : Non-primary test step of F with data bindings</item>
            <item><strong>F.F2.T</strong> : Primary test step of T</item>
            <item><strong>F.F2.T.T1</strong> : Non-primary test step of T with data bindings</item>
            <item><strong>F.F2.T.T2</strong> : Non-primary test step of T with data bindings</item>
            </list>
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Model.Tree.TestStep.IsDynamic">
            <summary>
            Gets or sets whether the test step is dynamic.
            </summary>
            <remarks>
            <para>
            A dynamic test step is one whose execution is governed by parameters that are not 
            known a priori.  
            </para>
            <para>
            For example, a primary test step is generally not dynamic because its existence
            usually only depends on statically known information derived from the test model.
            However, a child test step created at runtime by a data binding process might be
            considered dynamic if the data items that were used may change between test runs
            even when the static structure of the test code remains the same.  So a test step
            that uses random data items or that owes its existence to processes that are not
            entirely under the control of the test framework should be flagged as dynamic.
            </para>
            <para>
            It can be useful to distinguish between static and dynamic test steps when
            correlating results across test runs.  Dynamic test steps are more likely to 
            change in dramatic ways between test runs than static test steps.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Model.Tree.TestStep.IsTestCase">
            <summary>
            Gets or sets whether the test step represents a distinct test case.
            </summary>
            <remarks>
            <para>
            A test case is typically a leaf of the test step hierarchy.
            </para>
            <para>
            A test step can only be a test case if its associated <see cref="T:Gallio.Model.Tree.Test"/> is a test case. However,
            not all test steps of tests that are test cases will themselves be test cases.  For example, a
            data-driven test might have one primary test step with multiple derived test steps as children.
            The primary test step will generally not be considered a test case but its children will.
            </para>
            </remarks>
            <seealso cref="P:Gallio.Model.Tree.Test.IsTestCase"/>
        </member>
        <member name="M:Gallio.Framework.Pattern.PatternTestStep.#ctor(Gallio.Framework.Pattern.PatternTest,Gallio.Model.Tree.TestStep)">
            <summary>
            Creates a primary step using the same name, code element and metadata
            as the test to which it belongs.
            </summary>
            <param name="test">The test to which the step belongs.</param>
            <param name="parent">The parent test step, or null if creating the root step.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="test"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.Pattern.PatternTestStep.#ctor(Gallio.Framework.Pattern.PatternTest,Gallio.Model.Tree.TestStep,System.String,Gallio.Common.Reflection.ICodeElementInfo,System.Boolean)">
            <summary>
            Creates a step.
            </summary>
            <remarks>
            <para>
            If <paramref name="isPrimary"/> is true, then all metadata from the <paramref name="test"/>
            is copied to the step.  Otherwise the new step will have no metadata initially.
            </para>
            </remarks>
            <param name="test">The test to which the step belongs.</param>
            <param name="parent">The parent step, or null if creating a root step.</param>
            <param name="name">The step name.</param>
            <param name="codeElement">The point of definition of the step, or null if unknown.</param>
            <param name="isPrimary">True if the test step is primary.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="name"/>
            or <paramref name="test"/> is null.</exception>
        </member>
        <member name="P:Gallio.Framework.Pattern.PatternTestStep.Test">
            <summary>
            Gets the associated test.
            </summary>
        </member>
        <member name="T:Gallio.Framework.Pattern.PatternTestInstanceActions">
            <summary>
            Pattern test instance actions provide the logic that implements the various
            phases of the test instance execution lifecycle.
            </summary>
            <remarks>
            <para>
            Each chain represents the behavior to be performed during a particular phase.
            Different actions are permitted during each phase.  Consult the
            documentation of the chains for restrictions.
            </para>
            <para>
            The phases generally run in the following order.  Some phases may be skipped
            due to exceptions or if there is no work to be done.
            <list type="bullet">
            <item><see cref="P:Gallio.Framework.Pattern.PatternTestInstanceActions.BeforeTestInstanceChain"/></item>
            <item>--- begin <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceActions.RunTestInstanceBodyChain"/> ---</item>
            <item><see cref="P:Gallio.Framework.Pattern.PatternTestInstanceActions.InitializeTestInstanceChain"/></item>
            <item><see cref="P:Gallio.Framework.Pattern.PatternTestInstanceActions.SetUpTestInstanceChain"/></item>
            <item><see cref="P:Gallio.Framework.Pattern.PatternTestInstanceActions.ExecuteTestInstanceChain"/></item>
            <item><see cref="P:Gallio.Framework.Pattern.PatternTestInstanceActions.DecorateChildTestChain"/> before each child test</item>
            <item><see cref="P:Gallio.Framework.Pattern.PatternTestInstanceActions.TearDownTestInstanceChain"/></item>
            <item><see cref="P:Gallio.Framework.Pattern.PatternTestInstanceActions.DisposeTestInstanceChain"/></item>
            <item>--- end <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceActions.RunTestInstanceBodyChain"/> ---</item>
            <item><see cref="P:Gallio.Framework.Pattern.PatternTestInstanceActions.AfterTestInstanceChain"/></item>
            </list>
            </para>
            </remarks>
            <seealso cref="T:Gallio.Framework.Pattern.PatternTestActions"/> for actions on tests.
        </member>
        <member name="M:Gallio.Framework.Pattern.PatternTestInstanceActions.#ctor">
            <summary>
            Creates a test instance actions object initially configured with empty action chains
            that do nothing.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Pattern.PatternTestInstanceActions.Copy">
            <summary>
            Creates a copy of the test instance actions.
            </summary>
            <returns>The new copy.</returns>
        </member>
        <member name="P:Gallio.Framework.Pattern.PatternTestInstanceActions.BeforeTestInstanceChain">
            <summary>
            Prepares a newly created test instance state before its use.
            </summary>
            <remarks>
            <para>
            This method runs in the <see cref="T:Gallio.Framework.TestContext"/> of the <see cref="P:Gallio.Framework.Pattern.PatternTestState.PrimaryTestStep"/>
            because the test step for this instance (if different from the primary step) has not yet started.
            </para>
            <para>
            If <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceState.IsReusingPrimaryTestStep"/> is false
            then this method has the opportunity to modify the name or add metadata to the
            brand new <see cref="T:Gallio.Framework.Pattern.PatternTestStep"/> that was created for just this test instance.
            </para>
            <para>
            The following actions are typically performed during this phase:
            <list type="bullet">
            <item>Adding or changing slot values.</item>
            <item>Configuring the test environment in advance of test initialization.</item>
            <item>Modifying the name or metadata of the <see cref="T:Gallio.Framework.Pattern.PatternTestStep"/>, if 
            <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceState.IsReusingPrimaryTestStep"/> is false
            (since the primary test step has already started execution).</item>
            <item>Accessing user data via <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceState.Data"/>.</item>
            </list>
            </para>
            <para>
            The following actions are forbidden during this phase because they would
            either go unnoticed or have undesirable side-effects upon test execution:
            <list type="bullet">
            <item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTest"/> object in any way.</item>
            <item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTestState"/> object in any way.</item>
            <item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTestStep"/> object in any way UNLESS <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceState.IsReusingPrimaryTestStep"/>
            is false.</item>
            <item>Skipping the test instance by throwing an appropriate <see cref="T:Gallio.Framework.SilentTestException"/>.</item>
            </list>
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Framework.Pattern.PatternTestInstanceActions.InitializeTestInstanceChain">
            <summary>
            Initializes a test instance that has just started running.
            </summary>
            <remarks>
            <para>
            This method runs in the <see cref="T:Gallio.Framework.TestContext"/> of the test instance
            in the <see cref="F:Gallio.Model.LifecyclePhases.Initialize"/> lifecycle phase.
            </para>
            <para>
            The following actions are typically performed during this phase:
            <list type="bullet">
            <item>Creating the test fixture instance and setting <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceState.FixtureType"/>
            and <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceState.FixtureInstance"/>.</item>
            <item>Configuring the test fixture in advance of test execution.</item>
            <item>Accessing user data via <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceState.Data"/>.</item>
            </list>
            </para>
            <para>
            The following actions are forbidden during this phase because they would
            either go unnoticed or have undesirable side-effects upon test execution:
            <list type="bullet">
            <item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTest"/> object in any way.</item>
            <item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTestState"/> object in any way.</item>
            <item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTestStep"/> object in any way.</item>
            </list>
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Framework.Pattern.PatternTestInstanceActions.SetUpTestInstanceChain">
            <summary>
            Sets up a test instance prior to execution.
            </summary>
            <remarks>
            <para>
            This method runs in the <see cref="T:Gallio.Framework.TestContext"/> of the test instance
            in the <see cref="F:Gallio.Model.LifecyclePhases.SetUp"/> lifecycle phase.
            </para>
            <para>
            The following actions are typically performed during this phase:
            <list type="bullet">
            <item>Invoking test setup methods.</item>
            <item>Accessing user data via <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceState.Data"/>.</item>
            </list>
            </para>
            <para>
            The following actions are forbidden during this phase because they would
            either go unnoticed or have undesirable side-effects upon test execution:
            <list type="bullet">
            <item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTest"/> object in any way.</item>
            <item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTestState"/> object in any way.</item>
            <item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTestStep"/> object in any way.</item>
            </list>
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Framework.Pattern.PatternTestInstanceActions.ExecuteTestInstanceChain">
            <summary>
            Executes the test instance.
            </summary>
            <remarks>
            <para>
            This method runs in the <see cref="T:Gallio.Framework.TestContext"/> of the test instance
            in the <see cref="F:Gallio.Model.LifecyclePhases.Execute"/> lifecycle phase.
            </para>
            <para>
            The following actions are typically performed during this phase:
            <list type="bullet">
            <item>Invoking test methods.</item>
            <item>Accessing user data via <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceState.Data"/>.</item>
            </list>
            </para>
            <para>
            The following actions are forbidden during this phase because they would
            either go unnoticed or have undesirable side-effects upon test execution:
            <list type="bullet">
            <item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTest"/> object in any way.</item>
            <item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTestState"/> object in any way.</item>
            <item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTestStep"/> object in any way.</item>
            </list>
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Framework.Pattern.PatternTestInstanceActions.TearDownTestInstanceChain">
            <summary>
            Tears down a test instance following execution.
            </summary>
            <remarks>
            <para>
            This method runs in the <see cref="T:Gallio.Framework.TestContext"/> of the test instance
            in the <see cref="F:Gallio.Model.LifecyclePhases.TearDown"/> lifecycle phase.
            </para>
            <para>
            The following actions are typically performed during this phase:
            <list type="bullet">
            <item>Invoking test teardown methods.</item>
            <item>Accessing user data via <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceState.Data"/>.</item>
            </list>
            </para>
            <para>
            The following actions are forbidden during this phase because they would
            either go unnoticed or have undesirable side-effects upon test execution:
            <list type="bullet">
            <item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTest"/> object in any way.</item>
            <item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTestState"/> object in any way.</item>
            <item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTestStep"/> object in any way.</item>
            </list>
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Framework.Pattern.PatternTestInstanceActions.DisposeTestInstanceChain">
            <summary>
            Disposes a test instance that is about to terminate.
            </summary>
            <remarks>
            <para>
            This method runs in the <see cref="T:Gallio.Framework.TestContext"/> of the test instance
            in the <see cref="F:Gallio.Model.LifecyclePhases.Dispose"/> lifecycle phase.
            </para>
            <para>
            The following actions are typically performed during this phase:
            <list type="bullet">
            <item>Deconfiguring the test fixture following test execution.</item>
            <item>Disposing the test fixture instance.</item>
            <item>Disposing other resources.</item>
            <item>Accessing user data via <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceState.Data"/>.</item>
            </list>
            </para>
            <para>
            The following actions are forbidden during this phase because they would
            either go unnoticed or have undesirable side-effects upon test execution:
            <list type="bullet">
            <item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTest"/> object in any way.</item>
            <item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTestState"/> object in any way.</item>
            <item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTestStep"/> object in any way.</item>
            </list>
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Framework.Pattern.PatternTestInstanceActions.AfterTestInstanceChain">
            <summary>
            Cleans up a completed test instance after its use.
            </summary>
            <remarks>
            <para>
            This method runs in the <see cref="T:Gallio.Framework.TestContext"/> of the <see cref="P:Gallio.Framework.Pattern.PatternTestState.PrimaryTestStep"/>
            because the test step for this instance (if different from the primary step) has terminated.
            </para>
            <para>
            The following actions are typically performed during this phase:
            <list type="bullet">
            <item>Deconfiguring the test environment following the test disposal.</item>
            <item>Accessing user data via <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceState.Data"/>.</item>
            </list>
            </para>
            <para>
            The following actions are forbidden during this phase because they would
            either go unnoticed or have undesirable side-effects upon test execution:
            <list type="bullet">
            <item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTest"/> object in any way.</item>
            <item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTestState"/> object in any way.</item>
            <item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTestStep"/> object in any way.</item>
            </list>
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Framework.Pattern.PatternTestInstanceActions.DecorateChildTestChain">
            <summary>
            Decorates the <see cref="T:Gallio.Framework.Pattern.PatternTestActions"/> of a child test before its
            <see cref="P:Gallio.Framework.Pattern.PatternTestActions.BeforeTestChain"/> actions have a chance to run.
            </summary>
            <remarks>
            <para>
            This method runs in the <see cref="T:Gallio.Framework.TestContext"/> of the test instance
            in the <see cref="F:Gallio.Model.LifecyclePhases.Execute"/> lifecycle phase.
            </para>
            <para>
            This method may apply any number of decorations to the child test's actions
            to the supplied <see cref="T:Gallio.Framework.Pattern.PatternTestActions"/> object.
            The child test's original actions are unmodified by this operation and the
            decorated actions are discarded once the child test is finished.
            </para>
            <para>
            A typical use of this method is to augment the <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceActions.SetUpTestInstanceChain"/>
            and <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceActions.TearDownTestInstanceChain"/> behaviors of the child test with
            additional contributions provided by the parent.
            </para>
            <para>
            It is also possible to decorate descendants besides direct children.
            To do so, decorate the child's <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceActions.DecorateChildTestChain"/> behavior
            to perpetuate the decoration down to more deeply nested descendants.  This
            process of recursive decoration may be carried along to whatever depth is required.
            </para>
            <para>
            The following actions are typically performed during this phase:
            <list type="bullet">
            <item>Adding additional actions for the child test to the <see cref="T:Gallio.Framework.Pattern.PatternTestActions"/>.</item>
            <item>Accessing user data via <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceState.Data"/>.</item>
            </list>
            </para>
            <para>
            The following actions are forbidden during this phase because they would
            either go unnoticed or have undesirable side-effects upon test execution:
            <list type="bullet">
            <item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTest"/> object in any way.</item>
            <item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTestState"/> object in any way.</item>
            <item>Modifying the <see cref="T:Gallio.Framework.Pattern.PatternTestStep"/> object in any way.</item>
            </list>
            </para>
            <para>
            The <see cref="T:Gallio.Framework.Pattern.PatternTestInstanceState"/> represents the state of the currently
            executing instance of this test; not the child.  The child has not started
            running yet.  When the child runs, the decorator actions installed in
            <see cref="T:Gallio.Framework.Pattern.PatternTestActions"/> will be invoked with references to the
            child's state as usual.
            </para>
            <para>
            For some purposes it may be useful to save the <see cref="T:Gallio.Framework.Pattern.PatternTestInstanceState"/>
            for later use in the decorated action.  For example, if the decorated action
            needs to invoke a method on the parent test fixture, then it will need to
            have the parent's <see cref="T:Gallio.Framework.Pattern.PatternTestInstanceState"/>.  This is very easy
            using anonymous delegates (due to variable capture) but can also be accomplished
            with other means as required.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Framework.Pattern.PatternTestInstanceActions.RunTestInstanceBodyChain">
            <summary>
            Runs the body of the test from the Initialize phase through the Dispose phase.
            </summary>
            <remarks>
            <para>
            This method is somewhat special in that it gives the test instance actions a chance to
            encapsulate the context in which the test runs.  It can cause the test to run repeatedly,
            or in another thread, or with some special execution context.  Of course, if it does any
            of these things then it is responsible for properly cleaning up the test and responding
            in a timely manner to abort events from the current test context's <see cref="T:Gallio.Framework.Sandbox"/>.
            </para>
            </remarks>
        </member>
        <member name="T:Gallio.Framework.Pattern.PatternTestInstanceState">
            <summary>
            Represents the run-time state of a single instance of a <see cref="T:Gallio.Framework.Pattern.PatternTest"/>
            that is to be executed.
            </summary>
            <remarks>
            <para>
            Typical lifecycle of <see cref="T:Gallio.Framework.Pattern.PatternTestInstanceState"/>:
            <list type="bullet">
            <item>The <see cref="T:Gallio.Framework.Pattern.PatternTestController"/> creates a <see cref="T:Gallio.Framework.Pattern.PatternTestInstanceState"/> for the
            instance of the <see cref="T:Gallio.Framework.Pattern.PatternTest"/> to be executed using particular data bindings.</item>
            <item>The controller populates the instance state with slot values for each slot with
            an associated <see cref="T:Gallio.Framework.Data.IDataAccessor"/> in the <see cref="T:Gallio.Framework.Pattern.PatternTestState"/>.</item>
            <item>The controller calls <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceActions.BeforeTestInstanceChain"/> to give test extensions
            the opportunity to modify the instance state.</item>
            <item>The controller initializes, sets up, executes, tears down and disposes the test instance.</item>
            <item>The controller calls <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceActions.AfterTestInstanceChain"/> to give test extensions
            the opportunity to clean up the instance state.</item>
            </list>
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Framework.Pattern.PatternTestInstanceState.#ctor(Gallio.Framework.Pattern.PatternTestStep,Gallio.Framework.Pattern.PatternTestInstanceActions,Gallio.Framework.Pattern.PatternTestState,Gallio.Framework.Data.IDataItem,Gallio.Framework.Pattern.TestAction)">
            <summary>
            Creates an initial test instance state object.
            </summary>
            <param name="testStep">The test step used to execute the test instance.</param>
            <param name="testInstanceActions">The test instance actions.</param>
            <param name="testState">The test state.</param>
            <param name="bindingItem">The data item.</param>
            <param name="body">The body of the test instance.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="testStep"/>,
            <paramref name="testInstanceActions"/> or <paramref name="testState"/> or <paramref name="bindingItem"/> is null.</exception>
            <exception cref="T:System.ArgumentException">Thrown if <paramref name="testState"/> belongs to a
            different test from the <paramref name="testStep"/>.</exception>
        </member>
        <member name="M:Gallio.Framework.Pattern.PatternTestInstanceState.FromContext(Gallio.Framework.TestContext)">
            <summary>
            Gets the pattern test instance state from the specified context.
            </summary>
            <param name="context">The context.</param>
            <returns>The pattern test instance state, or null if none.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="context"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.Pattern.PatternTestInstanceState.AddNameSuffix(System.String)">
            <summary>
            Adds a suffix to the name base.
            </summary>
            <param name="suffix">The suffix to add.</param>
            <remarks>
            <para>
            The suffixes may only be added during <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceActions.BeforeTestInstanceChain"/>
            when <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceState.IsReusingPrimaryTestStep"/> is false.
            </para>
            </remarks>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="suffix"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.Pattern.PatternTestInstanceState.GetFixtureObjectCreationSpec(Gallio.Common.Reflection.ITypeInfo)">
            <summary>
            Gets a fixture object creation specification using the state's bound <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceState.SlotValues"/>.
            </summary>
            <param name="type">The fixture type or generic type definition.</param>
            <returns>The fixture instance.</returns>
            <remarks>
            The values of <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceState.FixtureType"/> and <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceState.FixtureInstance"/> are not used.
            </remarks>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="type"/> is null.</exception>
            <exception cref="T:System.ArgumentException">Thrown if the slots or values in <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceState.SlotValues"/>
            are not appropriate for instantiating <paramref name="type"/>.</exception>
            <seealso cref="T:Gallio.Framework.Data.ObjectCreationSpec"/>
        </member>
        <member name="M:Gallio.Framework.Pattern.PatternTestInstanceState.GetTestMethodInvocationSpec(Gallio.Common.Reflection.IMethodInfo)">
            <summary>
            Gets a test method invocation specification using the state's bound <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceState.SlotValues"/>.
            </summary>
            <param name="method">The test method or generic method definition,
            possibly declared by a generic type or generic type defintion.</param>
            <returns>The method return value.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="method"/> is null.</exception>
            <exception cref="T:System.ArgumentException">Thrown if the slots or values in <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceState.SlotValues"/>
            or <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceState.FixtureType"/> are not appropriate for invoking <paramref name="method"/></exception>
            <exception cref="T:System.InvalidOperationException">Thrown if <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceState.FixtureType"/> is null.</exception>
            <seealso cref="T:Gallio.Framework.Data.MethodInvocationSpec"/>
        </member>
        <member name="M:Gallio.Framework.Pattern.PatternTestInstanceState.InvokeFixtureMethod(Gallio.Common.Reflection.IMethodInfo,System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{Gallio.Common.Reflection.ISlotInfo,System.Object}})">
            <summary>
            Invokes a fixture method using the specified <paramref name="slotValues"/>.
            </summary>
            <param name="method">The fixture method or generic method definition,
            possibly declared by a generic type or generic type defintion.</param>
            <param name="slotValues">The slot values to use for invoking the method.</param>
            <returns>The method return value.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="method"/> or <paramref name="slotValues"/> is null.</exception>
            <exception cref="T:System.ArgumentException">Thrown if the slots or values in <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceState.SlotValues"/>
            or <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceState.FixtureType"/> or <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceState.FixtureInstance"/> are not appropriate for
            invoking <paramref name="method"/></exception>
            <exception cref="T:System.InvalidOperationException">Thrown if <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceState.FixtureType"/> is null.</exception>
            <exception cref="T:System.Exception">Any exception thrown by the invoked method.</exception>
            <seealso cref="T:Gallio.Framework.Data.MethodInvocationSpec"/>
        </member>
        <member name="M:Gallio.Framework.Pattern.PatternTestInstanceState.InvokeTestMethod">
            <summary>
            Invokes the test method specified by <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceState.TestMethod"/>, <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceState.FixtureInstance"/>
            and <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceState.TestArguments"/>.  
            </summary>
            <remarks>
            <para>
            If there is no test method or no arguments, the method does nothing.
            </para>
            </remarks>
            <returns>The method return value, or null if there was none.</returns>
            <exception cref="T:System.Exception">Any exception thrown by the invoked method.</exception>
        </member>
        <member name="M:Gallio.Framework.Pattern.PatternTestInstanceState.RunBody(Gallio.Framework.Pattern.PatternTestInstanceState)">
            <summary>
            Runs the body of the test.
            </summary>
            <returns>The test outcome.</returns>
        </member>
        <member name="P:Gallio.Framework.Pattern.PatternTestInstanceState.Converter">
            <summary>
            Gets the converter for data binding.
            </summary>
        </member>
        <member name="P:Gallio.Framework.Pattern.PatternTestInstanceState.Formatter">
            <summary>
            Gets the formatter for data binding.
            </summary>
        </member>
        <member name="P:Gallio.Framework.Pattern.PatternTestInstanceState.TestStep">
            <summary>
            Gets the test step used to execute the test instance.
            </summary>
        </member>
        <member name="P:Gallio.Framework.Pattern.PatternTestInstanceState.TestInstanceActions">
            <summary>
            Gets the test instance actions.
            </summary>
        </member>
        <member name="P:Gallio.Framework.Pattern.PatternTestInstanceState.Test">
            <summary>
            Gets the test associated with this test instance state.
            </summary>
        </member>
        <member name="P:Gallio.Framework.Pattern.PatternTestInstanceState.TestState">
            <summary>
            Gets the test state associated with this test instance state.
            </summary>
        </member>
        <member name="P:Gallio.Framework.Pattern.PatternTestInstanceState.BindingItem">
            <summary>
            Gets the data item obtained from the test's <see cref="T:Gallio.Framework.Data.DataBindingContext"/>
            to create this state.
            </summary>
        </member>
        <member name="P:Gallio.Framework.Pattern.PatternTestInstanceState.Data">
            <summary>
            Gets the user data collection associated with the test instance state.
            </summary>
            <remarks>
            <para>
            It may be used
            to associate arbitrary key/value pairs with the execution of the test instance.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Framework.Pattern.PatternTestInstanceState.FixtureType">
            <summary>
            Gets or sets the test fixture type or null if none.
            </summary>
            <exception cref="T:System.ArgumentException">Thrown if <paramref name="value"/>
            contains unbound generic parameters, is a generic parameter, has an element type.</exception>
        </member>
        <member name="P:Gallio.Framework.Pattern.PatternTestInstanceState.FixtureInstance">
            <summary>
            Gets or sets the test fixture instance or null if none.
            </summary>
        </member>
        <member name="P:Gallio.Framework.Pattern.PatternTestInstanceState.TestMethod">
            <summary>
            Gets or sets the test method or null if none.
            </summary>
            <exception cref="T:System.ArgumentException">Thrown if <paramref name="value"/>
            is contains unbound generic parameters.</exception>
        </member>
        <member name="P:Gallio.Framework.Pattern.PatternTestInstanceState.TestArguments">
            <summary>
            Gets or sets the test method arguments or null if none.
            </summary>
        </member>
        <member name="P:Gallio.Framework.Pattern.PatternTestInstanceState.SlotValues">
            <summary>
            Gets a mutable dictionary of slots and their bound values.
            </summary>
            <remarks>
            <para>
            The dictionary maps slots to the values that will be stored in them
            during test execution.
            </para>
            <para>
            The slots should be valid for the type of test in question.  For example,
            a test fixture supports constructor parameters, generic type parameters,
            fields and properies declared by the test fixture type.  Likewise a test method
            supports method parameters and generic method parameters declared by the test
            method.  Other novel kinds of tests might additional capabilities.
            </para>
            <para>
            A value should be of a type that is compatible with the slot's <see cref="P:Gallio.Common.Reflection.ISlotInfo.ValueType"/>.
            If any type conversion is required, it should already have taken place prior to
            adding the value to this dictionary.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Framework.Pattern.PatternTestInstanceState.TestParameterValues">
            <summary>
            Gets a mutable dictionary of values assigned to test parameters.
            </summary>
            <remarks>
            <para>
            The contents of the dictionary are initialized by the framework as part of the
            test parameter binding phase for the test instance, just before the "before test instance"
            actions run.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Framework.Pattern.PatternTestInstanceState.IsReusingPrimaryTestStep">
            <summary>
            Returns true if the <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceState.TestStep"/> is the <see cref="P:Gallio.Framework.Pattern.PatternTestState.PrimaryTestStep"/>
            that was created for the test.  
            </summary>
            <remarks>
            <para>
            False if a new <see cref="T:Gallio.Framework.Pattern.PatternTestStep"/> 
            was created as a child of the primary test step just for this test instance.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Framework.Pattern.PatternTestInstanceState.NameBase">
            <summary>
            Gets or sets the basic name of the test instance which usually consists of the method or
            class name and a description of its bound argument values.
            </summary>
            <remarks>
            <para>
            The name may only be changed during <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceActions.BeforeTestInstanceChain"/>
            when <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceState.IsReusingPrimaryTestStep"/> is false.
            </para>
            </remarks>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="T:Gallio.Framework.Pattern.PatternTestParameter">
            <summary>
            Represents an parameter of a <see cref="T:Gallio.Framework.Pattern.PatternTest"/> derived from a field, property
            or method parameter.
            </summary>
            <seealso cref="T:Gallio.Framework.Pattern.PatternTestFramework"/>
        </member>
        <member name="T:Gallio.Model.Tree.TestParameter">
            <summary>
            A test parameter describes a formal parameter of a <see cref="P:Gallio.Model.Tree.TestComponent.Name"/>
            to which a value may be bound and used during test execution.
            </summary>
            <remarks>
            <para>
            The <see cref="T:Gallio.Model.Tree.TestComponent"/> property of a test parameter should be
            unique among the set parameters belonging to its <see cref="T:Gallio.Model.Tree.Test"/> to ensure
            that it can be differentiated from others.  However, this constraint is not enforced.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Model.Tree.TestParameter.#ctor(System.String,Gallio.Common.Reflection.ICodeElementInfo)">
            <summary>
            Initializes a test parameter.
            </summary>
            <param name="name">The name of the test parameter.</param>
            <param name="codeElement">The point of definition of the parameter, or null if unknown.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="name"/> is null.</exception>
        </member>
        <member name="P:Gallio.Model.Tree.TestParameter.Id">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Model.Tree.TestParameter.Owner">
            <summary>
            Gets or sets the test that owns this parameter, or null if this parameter
            does not yet have an owner.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Pattern.PatternTestParameter.#ctor(System.String,Gallio.Common.Reflection.ICodeElementInfo,Gallio.Framework.Pattern.PatternTestDataContext)">
            <summary>
            Creates a test pattern parameter.
            </summary>
            <param name="name">The name of the test parameter.</param>
            <param name="codeElement">The code element (usually a slot) represented by the parameter, or null if none.</param>
            <param name="dataContext">The data context of the test parameter.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="name"/>
            or <paramref name="dataContext"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.Pattern.PatternTestParameter.SetName(System.String)">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Framework.Pattern.PatternTestParameter.TestParameterActions">
            <summary>
            Gets the set of actions that describe the behavior of the test parameter.
            </summary>
        </member>
        <member name="P:Gallio.Framework.Pattern.PatternTestParameter.Owner">
            <summary>
            Gets the test that owns this parameter.
            </summary>
        </member>
        <member name="P:Gallio.Framework.Pattern.PatternTestParameter.Binder">
            <summary>
            Gets or sets the <see cref="T:Gallio.Framework.Data.IDataBinder"/> for this test parameter.
            </summary>
            <remarks>
            The default value is a <see cref="T:Gallio.Framework.Data.ScalarDataBinder"/> bound to the anonymous
            data source using a <see cref="T:Gallio.Framework.Data.DataBinding"/> whose path is the name of this parameter and whose
            index is the implicit index computed by the pararameter's data context.
            </remarks>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="P:Gallio.Framework.Pattern.PatternTestParameter.DataContext">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Framework.Pattern.PatternTestPopulator">
            <summary>
            A delegate used to lazily populate the children of an <see cref="T:Gallio.Framework.Pattern.PatternTest"/>.
            </summary>
            <param name="recurse">If true, the populator should recursively populate
            all of its newly populated test elements in addition to itself.</param>
            <seealso cref="T:Gallio.Framework.Pattern.PatternTestFramework"/>
        </member>
        <member name="T:Gallio.Framework.Pattern.PatternTestState">
            <summary>
            Represents the run-time state of a <see cref="T:Gallio.Framework.Pattern.PatternTest"/> that is to be executed.
            </summary>
            <remarks>
            <para>
            Typical lifecycle of <see cref="T:Gallio.Framework.Pattern.PatternTestState"/>:
            <list type="bullet">
            <item>The <see cref="T:Gallio.Framework.Pattern.PatternTestController"/> creates a <see cref="T:Gallio.Framework.Pattern.PatternTestState"/> for the
            <see cref="T:Gallio.Framework.Pattern.PatternTest"/> to be executed.</item>
            <item>The controller populates the test state with slot binding accessors for each <see cref="T:Gallio.Framework.Pattern.PatternTestParameter"/>
            associated with the test.</item>
            <item>The controller calls <see cref="P:Gallio.Framework.Pattern.PatternTestActions.BeforeTestChain"/> to give test extensions
            the opportunity to modify the test state.</item>
            <item>The controller begins iterating over the <see cref="T:Gallio.Framework.Data.IDataItem"/>s produced by the
            state's <see cref="P:Gallio.Framework.Pattern.PatternTestState.BindingContext"/>.  For each item it constructs a <see cref="T:Gallio.Framework.Pattern.PatternTestInstanceState"/>
            and executes the test instance.</item>
            <item>The controller calls <see cref="P:Gallio.Framework.Pattern.PatternTestActions.AfterTestChain"/> to give test extensions
            the opportunity to clean up the test state.</item>
            </list>
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Framework.Pattern.PatternTestState.#ctor(Gallio.Framework.Pattern.PatternTestStep,Gallio.Framework.Pattern.PatternTestActions,Gallio.Runtime.Conversions.IConverter,Gallio.Runtime.Formatting.IFormatter,System.Boolean)">
            <summary>
            Creates an initial test state object.
            </summary>
            <param name="primaryTestStep">The primary test step.</param>
            <param name="testActions">The test actions.</param>
            <param name="converter">The converter for data binding.</param>
            <param name="formatter">The formatter for data binding.</param>
            <param name="isExplicit">True if the test was selected explicitly.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="primaryTestStep"/>,
            <paramref name="testActions"/>, <paramref name="converter"/>
            or <paramref name="formatter"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.Pattern.PatternTestState.FromContext(Gallio.Framework.TestContext)">
            <summary>
            Gets the pattern test state from the specified context.
            </summary>
            <param name="context">The context.</param>
            <returns>The pattern test state, or null if none.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="context"/> is null.</exception>
        </member>
        <member name="P:Gallio.Framework.Pattern.PatternTestState.Test">
            <summary>
            Gets the test associated with this test state.
            </summary>
        </member>
        <member name="P:Gallio.Framework.Pattern.PatternTestState.PrimaryTestStep">
            <summary>
            Gets the primary test step associated with this test state.
            </summary>
            <remarks>
            <para>
            If the test has data bindings, the test instance for each data item will
            be executed as children of the primary test step.  Otherwise,
            the primary test step will be used for the entire test run.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Framework.Pattern.PatternTestState.TestActions">
            <summary>
            Gets the test actions.
            </summary>
        </member>
        <member name="P:Gallio.Framework.Pattern.PatternTestState.BindingContext">
            <summary>
            Gets the data binding context of the test.
            </summary>
            <remarks>
            <para>
            The context is used to produce data items for test instances.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Framework.Pattern.PatternTestState.Converter">
            <summary>
            Gets the converter for data binding.
            </summary>
        </member>
        <member name="P:Gallio.Framework.Pattern.PatternTestState.Formatter">
            <summary>
            Gets the formatter for data binding.
            </summary>
        </member>
        <member name="P:Gallio.Framework.Pattern.PatternTestState.IsExplicit">
            <summary>
            Returns true if the test was selected explicitly.
            </summary>
        </member>
        <member name="P:Gallio.Framework.Pattern.PatternTestState.Data">
            <summary>
            Gets the user data collection associated with the test state.  
            </summary>
            <remarks>
            <para>
            It may be used to associate arbitrary key/value pairs with the execution of the test.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Framework.Pattern.PatternTestState.TestParameterDataAccessors">
            <summary>
            Gets a mutable dictionary of data accessors that will provide
            values assigned to test parameters given a data binding item.
            </summary>
            <remarks>
            <para>
            The contents of the dictionary are initialized by the framework as part of the
            test parameter binding phase for the test instance, just before the "before test"
            actions run.
            </para>
            </remarks>
        </member>
        <member name="T:Gallio.Framework.Pattern.TestConstructorPatternAttribute">
            <summary>
            Declares that a constructor is used to provide test fixture parameters.
            </summary>
            <remarks>
            <para>
            Subclasses of this attribute can control what happens with the constructor.
            </para>
            <para>
            At most one attribute of this type may appear on any given constructor.
            </para>
            </remarks>
        </member>
        <member name="F:Gallio.Framework.Pattern.TestConstructorPatternAttribute.DefaultInstance">
            <summary>
            Gets a default instance of the constructor pattern attribute to use
            when no other pattern consumes a contructor.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Pattern.TestConstructorPatternAttribute.GetTestParts(Gallio.Framework.Pattern.IPatternEvaluator,Gallio.Common.Reflection.ICodeElementInfo)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Pattern.TestConstructorPatternAttribute.Consume(Gallio.Framework.Pattern.IPatternScope,Gallio.Common.Reflection.ICodeElementInfo,System.Boolean)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Pattern.TestConstructorPatternAttribute.Validate(Gallio.Framework.Pattern.IPatternScope,Gallio.Common.Reflection.IConstructorInfo)">
            <summary>
            Verifies that the attribute is being used correctly.
            </summary>
            <param name="containingScope">The containing scope.</param>
            <param name="constructor">The constructor.</param>
            <exception cref="T:Gallio.Framework.Pattern.PatternUsageErrorException">Thrown if the attribute is being used incorrectly.</exception>
        </member>
        <member name="M:Gallio.Framework.Pattern.TestConstructorPatternAttribute.InitializeDataContext(Gallio.Framework.Pattern.IPatternScope,Gallio.Common.Reflection.IConstructorInfo)">
            <summary>
            Initializes the <see cref="T:Gallio.Framework.Pattern.PatternTestDataContext"/>.
            </summary>
            <param name="dataContextScope">The data context scope.</param>
            <param name="constructor">The constructor.</param>
        </member>
        <member name="P:Gallio.Framework.Pattern.TestConstructorPatternAttribute.IsPrimary">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Framework.Pattern.TestConstructorPatternAttribute.DefaultConstructorParameterPattern">
            <summary>
            Gets the default pattern to apply to constructor parameters that do not have a primary pattern, or null if none.
            </summary>
            <remarks>
            <para>
            The default implementation returns <see cref="F:Gallio.Framework.Pattern.TestParameterPatternAttribute.DefaultInstance"/>.
            </para>
            </remarks>
        </member>
        <member name="T:Gallio.Framework.Pattern.TestDecoratorPatternAttribute">
            <summary>
            A test decorator pattern attribute applies decorations to a test defined by an
            assembly, type, or method.
            </summary>
            <seealso cref="T:Gallio.Framework.Pattern.TestTypePatternAttribute"/>
        </member>
        <member name="M:Gallio.Framework.Pattern.TestDecoratorPatternAttribute.Process(Gallio.Framework.Pattern.IPatternScope,Gallio.Common.Reflection.ICodeElementInfo)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Pattern.TestDecoratorPatternAttribute.Validate(Gallio.Framework.Pattern.IPatternScope,Gallio.Common.Reflection.ICodeElementInfo)">
            <summary>
            Verifies that the attribute is being used correctly.
            </summary>
            <param name="scope">The scope.</param>
            <param name="codeElement">The code element.</param>
            <exception cref="T:Gallio.Framework.Pattern.PatternUsageErrorException">Thrown if the attribute is being used incorrectly.</exception>
        </member>
        <member name="M:Gallio.Framework.Pattern.TestDecoratorPatternAttribute.DecorateTest(Gallio.Framework.Pattern.IPatternScope,Gallio.Common.Reflection.ICodeElementInfo)">
            <summary>
            Applies decorations to a test.
            </summary>
            <remarks>
            <para>
            A typical use of this method is to augment the test with additional metadata
            or to add additional behaviors to the test.
            </para>
            </remarks>
            <param name="scope">The scope.</param>
            <param name="codeElement">The code element.</param>
        </member>
        <member name="T:Gallio.Framework.Pattern.TestMethodDecoratorPatternAttribute">
            <summary>
            A test decorator pattern attribute applies decorations to an
            existing test declared at the method-level.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Pattern.TestMethodDecoratorPatternAttribute.Process(Gallio.Framework.Pattern.IPatternScope,Gallio.Common.Reflection.ICodeElementInfo)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Pattern.TestMethodDecoratorPatternAttribute.Validate(Gallio.Framework.Pattern.IPatternScope,Gallio.Common.Reflection.IMethodInfo)">
            <summary>
            Verifies that the attribute is being used correctly.
            </summary>
            <param name="scope">The scope.</param>
            <param name="method">The method.</param>
            <exception cref="T:Gallio.Framework.Pattern.PatternUsageErrorException">Thrown if the attribute is being used incorrectly.</exception>
        </member>
        <member name="M:Gallio.Framework.Pattern.TestMethodDecoratorPatternAttribute.DecorateMethodTest(Gallio.Framework.Pattern.IPatternScope,Gallio.Common.Reflection.IMethodInfo)">
            <summary>
            Applies decorations to a method-level test.
            </summary>
            <remarks>
            <para>
            A typical use of this method is to augment the test with additional metadata
            or to add additional behaviors to the test.
            </para>
            </remarks>
            <param name="methodScope">The method scope.</param>
            <param name="method">The method.</param>
        </member>
        <member name="T:Gallio.Framework.Pattern.TestMethodPatternAttribute">
            <summary>
            Declares that a method represents a test.
            </summary>
            <remarks>
            <para>
            Subclasses of this attribute can control what happens with the method.
            </para>
            <para>
            At most one attribute of this type may appear on any given method.
            </para>
            <para>
            A test method has a timeout of 10 minutes by default.
            </para>
            </remarks>
            <seealso cref="T:Gallio.Framework.Pattern.TestMethodDecoratorPatternAttribute"/>
        </member>
        <member name="M:Gallio.Framework.Pattern.TestMethodPatternAttribute.GetTestParts(Gallio.Framework.Pattern.IPatternEvaluator,Gallio.Common.Reflection.ICodeElementInfo)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Pattern.TestMethodPatternAttribute.Consume(Gallio.Framework.Pattern.IPatternScope,Gallio.Common.Reflection.ICodeElementInfo,System.Boolean)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Pattern.TestMethodPatternAttribute.Validate(Gallio.Framework.Pattern.IPatternScope,Gallio.Common.Reflection.IMethodInfo)">
            <summary>
            Verifies that the attribute is being used correctly.
            </summary>
            <param name="containingScope">The containing scope.</param>
            <param name="method">The method.</param>
            <exception cref="T:Gallio.Framework.Pattern.PatternUsageErrorException">Thrown if the attribute is being used incorrectly.</exception>
        </member>
        <member name="M:Gallio.Framework.Pattern.TestMethodPatternAttribute.InitializeTest(Gallio.Framework.Pattern.IPatternScope,Gallio.Common.Reflection.IMethodInfo)">
            <summary>
            Initializes a test for a method after it has been added to the test model.
            </summary>
            <param name="methodScope">The method scope.</param>
            <param name="method">The method.</param>
        </member>
        <member name="M:Gallio.Framework.Pattern.TestMethodPatternAttribute.SetTestSemantics(Gallio.Framework.Pattern.ITestBuilder,Gallio.Common.Reflection.IMethodInfo)">
            <summary>
            Applies semantic actions to a test to estalish its runtime behavior.
            </summary>
            <remarks>
            <para>
            This method is called after <see cref="M:Gallio.Framework.Pattern.TestMethodPatternAttribute.InitializeTest(Gallio.Framework.Pattern.IPatternScope,Gallio.Common.Reflection.IMethodInfo)"/>.
            </para>
            <para>
            The default behavior for a <see cref="T:Gallio.Framework.Pattern.TestMethodPatternAttribute"/>
            is to configure the test actions as follows:
            <list type="bullet">
            <item><see cref="P:Gallio.Framework.Pattern.PatternTestInstanceActions.BeforeTestInstanceChain"/>: Set the
            test step name, <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceState.TestMethod"/> and
            <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceState.TestArguments"/> based on any values bound
            to the test method's generic parameter and method parameter slots.</item>
            <item><see cref="P:Gallio.Framework.Pattern.PatternTestInstanceActions.ExecuteTestInstanceChain"/>: Invoke the method.</item>
            </list>
            </para>
            <para>
            You can override this method to change the semantics as required.
            </para>
            </remarks>
            <param name="testBuilder">The test builder.</param>
            <param name="method">The test method.</param>
        </member>
        <member name="M:Gallio.Framework.Pattern.TestMethodPatternAttribute.Execute(Gallio.Framework.Pattern.PatternTestInstanceState)">
            <summary>
            Executes the test method.
            </summary>
            <remarks>
            <para>
            The default implementation just calls <see cref="M:Gallio.Framework.Pattern.PatternTestInstanceState.InvokeTestMethod"/>
            and ignores the result.
            </para>
            </remarks>
            <param name="state">The test instance state, not null.</param>
        </member>
        <member name="P:Gallio.Framework.Pattern.TestMethodPatternAttribute.Order">
            <summary>
            Gets or sets a number that defines an ordering for the test with respect to its siblings.
            </summary>
            <remarks>
            <para>
            Unless compelled otherwise by test dependencies, tests with a lower order number than
            their siblings will run before those siblings and tests with the same order number
            as their siblings with run in an arbitrary sequence with respect to those siblings.
            </para>
            </remarks>
            <value>The test execution order with respect to siblings, initially zero.</value>
        </member>
        <member name="P:Gallio.Framework.Pattern.TestMethodPatternAttribute.IsPrimary">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Framework.Pattern.TestMethodPatternAttribute.DefaultGenericParameterPattern">
            <summary>
            Gets the default pattern to apply to generic parameters that do not have a primary pattern, or null if none.
            </summary>
            <remarks>
            <para>
            The default implementation returns <see cref="F:Gallio.Framework.Pattern.TestParameterPatternAttribute.DefaultInstance"/>.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Framework.Pattern.TestMethodPatternAttribute.DefaultMethodParameterPattern">
            <summary>
            Gets the default pattern to apply to method parameters that do not have a primary pattern, or null if none.
            </summary>
            <remarks>
            <para>
            The default implementation returns <see cref="F:Gallio.Framework.Pattern.TestParameterPatternAttribute.DefaultInstance"/>.
            </para>
            </remarks>
        </member>
        <member name="T:Gallio.Framework.Pattern.TestParameterDecoratorPatternAttribute">
            <summary>
            A test parameter decorator pattern attribute applies decorations to an
            existing <see cref="T:Gallio.Framework.Pattern.PatternTestParameter"/>.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Pattern.TestParameterDecoratorPatternAttribute.Process(Gallio.Framework.Pattern.IPatternScope,Gallio.Common.Reflection.ICodeElementInfo)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Pattern.TestParameterDecoratorPatternAttribute.Validate(Gallio.Framework.Pattern.IPatternScope,Gallio.Common.Reflection.ISlotInfo)">
            <summary>
            Verifies that the attribute is being used correctly.
            </summary>
            <param name="scope">The scope.</param>
            <param name="slot">The slot.</param>
            <exception cref="T:Gallio.Framework.Pattern.PatternUsageErrorException">Thrown if the attribute is being used incorrectly.</exception>
        </member>
        <member name="M:Gallio.Framework.Pattern.TestParameterDecoratorPatternAttribute.DecorateTestParameter(Gallio.Framework.Pattern.IPatternScope,Gallio.Common.Reflection.ISlotInfo)">
            <summary>
            Applies decorations to a <see cref="T:Gallio.Framework.Pattern.PatternTestParameter"/>.
            </summary>
            <remarks>
            <para>
            A typical use of this method is to augment the test parameter with additional metadata
            or to add additional behaviors to the test parameter.
            </para>
            </remarks>
            <param name="slotScope">The slot scope.</param>
            <param name="slot">The slot.</param>
        </member>
        <member name="T:Gallio.Framework.Pattern.TestParameterPatternAttribute">
            <summary>
            Declares that a field, property, method parameter or generic parameter
            represents a <see cref="T:Gallio.Framework.Pattern.PatternTestParameter"/>.
            </summary>
            <remarks>
            <para>
            Subclasses of this attribute can control what happens with the parameter.
            </para>
            <para>
            At most one attribute of this type may appear on any given property,
            field or parameter declaration.
            </para>
            </remarks>
        </member>
        <member name="F:Gallio.Framework.Pattern.TestParameterPatternAttribute.DefaultInstance">
            <summary>
            Gets a default instance of the parameter pattern attribute to use
            when no other pattern consumes the parameter.
            </summary>
        </member>
        <member name="F:Gallio.Framework.Pattern.TestParameterPatternAttribute.AutomaticInstance">
            <summary>
            Gets an instance of the parameter pattern attribute to use when no
            other pattern consumes the parameter but when the parameter appears to have
            other contributing pattern attributes associated with it. 
            </summary>
            <remarks>
            <para>
            So a test parameter is created automatically if we try to apply contributions to it, such as data items,
            but otherwise it is silent.  This is particularly useful with fields and properties.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Framework.Pattern.TestParameterPatternAttribute.GetTestParts(Gallio.Framework.Pattern.IPatternEvaluator,Gallio.Common.Reflection.ICodeElementInfo)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Pattern.TestParameterPatternAttribute.Consume(Gallio.Framework.Pattern.IPatternScope,Gallio.Common.Reflection.ICodeElementInfo,System.Boolean)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Pattern.TestParameterPatternAttribute.Validate(Gallio.Framework.Pattern.IPatternScope,Gallio.Common.Reflection.ISlotInfo)">
            <summary>
            Verifies that the attribute is being used correctly.
            </summary>
            <param name="containingScope">The containing scope.</param>
            <param name="slot">The slot.</param>
            <exception cref="T:Gallio.Framework.Pattern.PatternUsageErrorException">Thrown if the attribute is being used incorrectly.</exception>
        </member>
        <member name="M:Gallio.Framework.Pattern.TestParameterPatternAttribute.InitializeTestParameter(Gallio.Framework.Pattern.IPatternScope,Gallio.Common.Reflection.ISlotInfo)">
            <summary>
            Initializes a test parameter after it has been added to the containing test.
            </summary>
            <param name="testParameterScope">The test parameter scope.</param>
            <param name="slot">The slot.</param>
        </member>
        <member name="P:Gallio.Framework.Pattern.TestParameterPatternAttribute.IsPrimary">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Framework.Pattern.TestTypeDecoratorPatternAttribute">
            <summary>
            A test type decorator pattern attribute applies decorations to an
            existing test declared at the type-level.
            </summary>
            <seealso cref="T:Gallio.Framework.Pattern.TestTypePatternAttribute"/>
        </member>
        <member name="M:Gallio.Framework.Pattern.TestTypeDecoratorPatternAttribute.Process(Gallio.Framework.Pattern.IPatternScope,Gallio.Common.Reflection.ICodeElementInfo)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Pattern.TestTypeDecoratorPatternAttribute.Validate(Gallio.Framework.Pattern.IPatternScope,Gallio.Common.Reflection.ITypeInfo)">
            <summary>
            Verifies that the attribute is being used correctly.
            </summary>
            <param name="scope">The scope.</param>
            <param name="type">The type.</param>
            <exception cref="T:Gallio.Framework.Pattern.PatternUsageErrorException">Thrown if the attribute is being used incorrectly.</exception>
        </member>
        <member name="M:Gallio.Framework.Pattern.TestTypeDecoratorPatternAttribute.DecorateTest(Gallio.Framework.Pattern.IPatternScope,Gallio.Common.Reflection.ITypeInfo)">
            <summary>
            Applies decorations to a type-level test.
            </summary>
            <remarks>
            <para>
            A typical use of this method is to augment the test with additional metadata
            or to add additional behaviors to the test.
            </para>
            </remarks>
            <param name="typeScope">The type scope.</param>
            <param name="type">The type.</param>
        </member>
        <member name="T:Gallio.Framework.Pattern.TestTypePatternAttribute">
            <summary>
            Declares that a type represents a test.
            </summary>
            <remarks>
            <para>
            Subclasses of this attribute can control what happens with the type.
            </para>
            <para>
            At most one attribute of this type may appear on any given class.
            </para>
            <para>
            A test type has no timeout by default.
            </para>
            </remarks>
            <seealso cref="T:Gallio.Framework.Pattern.TestTypeDecoratorPatternAttribute"/>
        </member>
        <member name="F:Gallio.Framework.Pattern.TestTypePatternAttribute.AutomaticInstance">
            <summary>
            Gets an instance of the test type pattern attribute to use when no
            other pattern consumes the type. 
            </summary>
            <remarks>
            If the type can be inferred to be a test type then the pattern will behave as if the type has a 
            test type pattern attribute applied to it. Otherwise it will simply recurse into nested types.
            </remarks>
            <seealso cref="M:Gallio.Framework.Pattern.TestTypePatternAttribute.InferTestType(Gallio.Framework.Pattern.IPatternEvaluator,Gallio.Common.Reflection.ITypeInfo)"/>
        </member>
        <member name="M:Gallio.Framework.Pattern.TestTypePatternAttribute.GetTestParts(Gallio.Framework.Pattern.IPatternEvaluator,Gallio.Common.Reflection.ICodeElementInfo)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Pattern.TestTypePatternAttribute.Consume(Gallio.Framework.Pattern.IPatternScope,Gallio.Common.Reflection.ICodeElementInfo,System.Boolean)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Framework.Pattern.TestTypePatternAttribute.Validate(Gallio.Framework.Pattern.IPatternScope,Gallio.Common.Reflection.ITypeInfo)">
            <summary>
            Verifies that the attribute is being used correctly.
            </summary>
            <param name="containingScope">The containing scope.</param>
            <param name="type">The type.</param>
            <exception cref="T:Gallio.Framework.Pattern.PatternUsageErrorException">Thrown if the attribute is being used incorrectly.</exception>
        </member>
        <member name="M:Gallio.Framework.Pattern.TestTypePatternAttribute.InitializeTest(Gallio.Framework.Pattern.IPatternScope,Gallio.Common.Reflection.ITypeInfo)">
            <summary>
            Initializes a test for a type after it has been added to the test model.
            </summary>
            <remarks>
            <para>
            The members of base types are processed before those of subtypes.
            </para>
            <para>
            The default implementation processes all public members of the type including
            the first constructor found, then recurses to process all public and non-public
            nested types.  Non-public members other than nested types are ignored.
            </para>
            </remarks>
            <param name="typeScope">The type scope.</param>
            <param name="type">The type.</param>
        </member>
        <member name="M:Gallio.Framework.Pattern.TestTypePatternAttribute.ConsumeMembers(Gallio.Framework.Pattern.IPatternScope,Gallio.Common.Reflection.ITypeInfo)">
            <summary>
            Consumes type members including fields, properties, methods and events.
            </summary>
            <param name="typeScope">The scope to be used as the containing scope.</param>
            <param name="type">The type whose members are to be consumed.</param>
        </member>
        <member name="M:Gallio.Framework.Pattern.TestTypePatternAttribute.ConsumeConstructors(Gallio.Framework.Pattern.IPatternScope,Gallio.Common.Reflection.ITypeInfo)">
            <summary>
            Consumes type constructors.
            </summary>
            <param name="typeScope">The scope to be used as the containing scope.</param>
            <param name="type">The type whose constructors are to be consumed.</param>
        </member>
        <member name="M:Gallio.Framework.Pattern.TestTypePatternAttribute.ConsumeNestedTypes(Gallio.Framework.Pattern.IPatternScope,Gallio.Common.Reflection.ITypeInfo)">
            <summary>
            Consumes nested types.
            </summary>
            <param name="typeScope">The scope to be used as the containing scope.</param>
            <param name="type">The type whose nested types are to be consumed.</param>
        </member>
        <member name="M:Gallio.Framework.Pattern.TestTypePatternAttribute.SetTestSemantics(Gallio.Framework.Pattern.ITestBuilder,Gallio.Common.Reflection.ITypeInfo)">
            <summary>
            Applies semantic actions to a test to estalish its runtime behavior.
            </summary>
            <remarks>
            <para>
            This method is called after <see cref="M:Gallio.Framework.Pattern.TestTypePatternAttribute.InitializeTest(Gallio.Framework.Pattern.IPatternScope,Gallio.Common.Reflection.ITypeInfo)"/>.
            </para>
            <para>
            The default behavior for a <see cref="T:Gallio.Framework.Pattern.TestTypePatternAttribute"/>
            is to configure the test actions as follows:
            <list type="bullet">
            <item><see cref="P:Gallio.Framework.Pattern.PatternTestInstanceActions.BeforeTestInstanceChain"/>: Set the
            fixture instance name and <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceState.FixtureType"/>.</item>
            <item><see cref="P:Gallio.Framework.Pattern.PatternTestInstanceActions.InitializeTestInstanceChain"/>: Create
            the fixture instance and set the <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceState.FixtureInstance"/>
            property accordingly.</item>
            <item><see cref="P:Gallio.Framework.Pattern.PatternTestInstanceActions.DisposeTestInstanceChain"/>: If the fixture type
            implements <see cref="T:System.IDisposable"/>, disposes the fixture instance.</item>
            <item><see cref="P:Gallio.Framework.Pattern.PatternTestInstanceActions.DecorateChildTestChain"/>: Decorates the child's
            <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceActions.BeforeTestInstanceChain"/> to set its <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceState.FixtureInstance"/>
            and <see cref="P:Gallio.Framework.Pattern.PatternTestInstanceState.FixtureType"/> properties to those
            of the fixture.  The child test may override these values later on but this
            is a reasonable default setting for test methods within a fixture.</item>
            </list>
            </para>
            <para>
            You can override this method to change the semantics as required.
            </para>
            </remarks>
            <param name="testBuilder">The test builder.</param>
            <param name="type">The test type.</param>
        </member>
        <member name="M:Gallio.Framework.Pattern.TestTypePatternAttribute.GetMemberBindingFlags(Gallio.Common.Reflection.ITypeInfo)">
            <summary>
            Gets the binding flags that should be used to enumerate non-nested type members
            of the type for determining their contribution to the test fixture.  
            </summary>
            <remarks>
            <para>
            Instance members are only included if the type is not abstract.
            </para>
            </remarks>
            <param name="type">The type.</param>
            <returns>The binding flags for enumerating members.</returns>
        </member>
        <member name="M:Gallio.Framework.Pattern.TestTypePatternAttribute.InferTestType(Gallio.Framework.Pattern.IPatternEvaluator,Gallio.Common.Reflection.ITypeInfo)">
            <summary>
            Infers whether the type is a test type based on its structure.
            </summary>
            <remarks>
            <para>
            Returns true if the type any associated patterns, if it has
            non-nested type members (subject to <see cref="M:Gallio.Framework.Pattern.TestTypePatternAttribute.GetMemberBindingFlags(Gallio.Common.Reflection.ITypeInfo)"/>)
            with patterns, if it has generic parameters with patterns, or if any
            of its nested types satisfy the preceding rules.
            </para>
            </remarks>
            <param name="evaluator">The pattern evaluator.</param>
            <param name="type">The type.</param>
            <returns>True if the type is likely a test type.</returns>
        </member>
        <member name="P:Gallio.Framework.Pattern.TestTypePatternAttribute.Order">
            <summary>
            Gets or sets a number that defines an ordering for the test with respect to its siblings.
            </summary>
            <remarks>
            <para>
            Unless compelled otherwise by test dependencies, tests with a lower order number than
            their siblings will run before those siblings and tests with the same order number
            as their siblings with run in an arbitrary sequence with respect to those siblings.
            </para>
            </remarks>
            <value>The test execution order with respect to siblings, initially zero.</value>
        </member>
        <member name="P:Gallio.Framework.Pattern.TestTypePatternAttribute.IsPrimary">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Framework.Pattern.TestTypePatternAttribute.DefaultGenericParameterPattern">
            <summary>
            Gets the default pattern to apply to generic parameters that do not have a primary pattern, or null if none.
            </summary>
            <remarks>
            <para>
            The default implementation returns <see cref="F:Gallio.Framework.Pattern.TestParameterPatternAttribute.DefaultInstance"/>.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Framework.Pattern.TestTypePatternAttribute.DefaultMethodPattern">
            <summary>
            Gets the default pattern to apply to methods that do not have a primary pattern, or null if none.
            </summary>
            <remarks>
            <para>
            The default implementation returns <c>null</c>.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Framework.Pattern.TestTypePatternAttribute.DefaultEventPattern">
            <summary>
            Gets the default pattern to apply to events that do not have a primary pattern, or null if none.
            </summary>
            <remarks>
            <para>
            The default implementation returns <c>null</c>.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Framework.Pattern.TestTypePatternAttribute.DefaultFieldPattern">
            <summary>
            Gets the default pattern to apply to fields that do not have a primary pattern, or null if none.
            </summary>
            <remarks>
            <para>
            The default implementation returns <see cref="F:Gallio.Framework.Pattern.TestParameterPatternAttribute.AutomaticInstance"/>.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Framework.Pattern.TestTypePatternAttribute.DefaultPropertyPattern">
            <summary>
            Gets the default pattern to apply to properties that do not have a primary pattern, or null if none.
            </summary>
            <remarks>
            <para>
            The default implementation returns <see cref="F:Gallio.Framework.Pattern.TestParameterPatternAttribute.AutomaticInstance"/>.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Framework.Pattern.TestTypePatternAttribute.DefaultConstructorPattern">
            <summary>
            Gets the default pattern to apply to constructors that do not have a primary pattern, or null if none.
            </summary>
            <remarks>
            <para>
            The default implementation returns <see cref="F:Gallio.Framework.Pattern.TestConstructorPatternAttribute.DefaultInstance"/>.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Framework.Pattern.TestTypePatternAttribute.DefaultNestedTypePattern">
            <summary>
            Gets the default pattern to apply to nested types that do not have a primary pattern, or null if none.
            </summary>
            <remarks>
            <para>
            The default implementation returns <see cref="F:Gallio.Framework.Pattern.TestTypePatternAttribute.AutomaticInstance"/>.
            </para>
            </remarks>
        </member>
        <member name="T:Gallio.Framework.Sandbox">
            <summary>
            A sandbox is an isolated environments for executing test actions.
            </summary>
            <remarks>
            <para>
            It provides the ability to abort actions in progress so that the test runner can proceed
            to run other actions.
            </para>
            <para>
            Sandboxes are hierarchically structured. When an outer sandbox is aborted, all
            of its inner sandboxes are likewise aborted. A sandbox also provides the ability
            to create new child sandboxes at will so that test actions can be isolated with
            fine granularity.
            </para>
            <para>
            This class is safe for use from multiple concurrent threads.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Framework.Sandbox.#ctor">
            <summary>
            Creates a root sandbox.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Sandbox.Dispose">
            <summary>
            Disposes the sandbox.
            </summary>
            <remarks>
            <para>
            All currently executing actions are aborted with <see cref="P:Gallio.Model.TestOutcome.Error"/>
            if <see cref="M:Gallio.Framework.Sandbox.Abort(Gallio.Model.TestOutcome,System.String)"/> has not already been called.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Framework.Sandbox.CreateChild">
            <summary>
            Creates a child sandbox.
            </summary>
            <remarks>
            <para>
            When the parent sandbox is aborted, the child will likewise be aborted.  This policy
            offers a mechanism to scope actions recursively.
            </para>
            </remarks>
            <returns>The child sandbox.</returns>
            <exception cref="T:System.ObjectDisposedException">Thrown if the sandbox was disposed.</exception>
        </member>
        <member name="M:Gallio.Framework.Sandbox.Abort(Gallio.Model.TestOutcome,System.String)">
            <summary>
            Aborts all actions in progress within this context.
            </summary>
            <remarks>
            <para>
            The abort is persistent and cannot be reverted.  Therefore once aborted, no further
            test actions will be permitted to run.  Subsequent calls to <see cref="M:Gallio.Framework.Sandbox.Abort(Gallio.Model.TestOutcome,System.String)"/>
            will have no effect.
            </para>
            </remarks>
            <param name="outcome">The outcome to be returned from aborted actions.</param>
            <param name="message">A message to be logged when the action is aborted, or null if none.</param>
            <exception cref="T:System.ObjectDisposedException">Thrown if the sandbox was disposed.</exception>
        </member>
        <member name="M:Gallio.Framework.Sandbox.StartTimer(System.Nullable{System.TimeSpan})">
            <summary>
            Uses a specified timeout for all actions run within a block of code.
            When the timeout expires, the sandbox will be aborted.
            </summary>
            <example>
            <![CDATA[
            using (sandbox.UseTimeout(TimeSpan.FromSeconds(5))
            {
                // do abortable code
            }
            ]]>
            </example>
            <param name="timeout">The execution timeout or null if none.</param>
            <returns>An object that when disposed ends the timeout block, possibly null if there was no timeout.</returns>
            <exception cref="T:System.ObjectDisposedException">Thrown if the sandbox was disposed.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="timeout"/> is negative.</exception>
        </member>
        <member name="M:Gallio.Framework.Sandbox.Run(Gallio.Common.Markup.MarkupDocumentWriter,Gallio.Common.Action,System.String)">
            <summary>
            Runs a test action.
            </summary>
            <remarks>
            <para>
            If the action throws an exception or if the test action is aborted, then logs a
            message to the <paramref name="markupDocumentWriter"/>.  Exceptions of type <see cref="T:Gallio.Framework.TestException"/>
            are handled specially since they may modify the effective outcome of the run.
            If <see cref="P:Gallio.Framework.TestException.ExcludeStackTrace"/> is <c>true</c> and <see cref="P:Gallio.Framework.TestException.HasNonDefaultMessage"/>
            is <c>false</c> then the exception is effectively silent.  Therefore the action can modify
            its outcome and cause messages to be logged by throwing a suitable exception such as
            <see cref="T:Gallio.Framework.TestException"/> or <see cref="T:Gallio.Framework.SilentTestException"/>.
            </para>
            <para>
            If the <see cref="M:Gallio.Framework.Sandbox.Abort(Gallio.Model.TestOutcome,System.String)"/> method is called or has already been called, the action
            is aborted and the appropriate outcome is returned.  The abort is manifested as an
            asynchronous <see cref="T:System.Threading.ThreadAbortException"/> which should cause the action to
            terminate.  It may not terminate immediately, however.
            </para>
            <para>
            Produces an outcome in the following manner:
            <list type="bullet">
            <item>If the action completed without throwing an exception returns <see cref="P:Gallio.Model.TestOutcome.Passed"/>.</item>
            <item>If the action threw a <see cref="T:Gallio.Framework.TestException"/>, returns the value of the
            <see cref="P:Gallio.Framework.TestException.Outcome"/> property.</item>
            <item>If the action threw an different kind of exception, logs
            the exception and returns <see cref="P:Gallio.Model.TestOutcome.Failed"/>.</item>
            <item>If the action was aborted, returns <see cref="P:Gallio.Framework.Sandbox.AbortOutcome"/>.</item>
            <item>If the action timed out, returns <see cref="P:Gallio.Model.TestOutcome.Timeout"/>.</item>
            </list>
            </para>
            </remarks>
            <param name="markupDocumentWriter">The log writer for reporting failures.</param>
            <param name="action">The action to run.</param>
            <param name="description">A description of the action being performed,
            to be used as a log section name when reporting failures, or null if none.</param>
            <returns>The outcome of the action.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="markupDocumentWriter"/> or <paramref name="action"/> is null.</exception>
            <exception cref="T:System.ObjectDisposedException">Thrown if the sandbox was disposed.</exception>
        </member>
        <member name="M:Gallio.Framework.Sandbox.Protect">
            <summary>
            Runs an action inside of a protected context wherein it cannot receive
            a thread abort from this <see cref="T:Gallio.Framework.Sandbox"/>.
            </summary>
            <remarks>
            <para>
            This method enables critical system code to be protected from aborts that
            may affect the sandbox.  This call cannot be nested.
            </para>
            </remarks>
            <returns>An object that when disposed ends the protected block, possibly null if there was no protection necessary.</returns>
        </member>
        <member name="E:Gallio.Framework.Sandbox.Aborted">
            <summary>
            An event that is dispatched when <see cref="M:Gallio.Framework.Sandbox.Abort(Gallio.Model.TestOutcome,System.String)"/> is called.
            </summary>
            <remarks>
            <para>
            If the sandbox has already been aborted then the event handler is immediately invoked.
            </para>
            </remarks>
            <exception cref="T:System.ObjectDisposedException">Thrown if the sandbox was disposed.</exception>
        </member>
        <member name="P:Gallio.Framework.Sandbox.WasAborted">
            <summary>
            Returns <c>true</c> if <see cref="M:Gallio.Framework.Sandbox.Abort(Gallio.Model.TestOutcome,System.String)"/> was called.
            </summary>
            <exception cref="T:System.ObjectDisposedException">Thrown if the sandbox was disposed.</exception>
        </member>
        <member name="P:Gallio.Framework.Sandbox.AbortOutcome">
            <summary>
            Returns the <see cref="T:Gallio.Model.TestOutcome"/> passed to <see cref="M:Gallio.Framework.Sandbox.Abort(Gallio.Model.TestOutcome,System.String)"/>,
            or null if <see cref="M:Gallio.Framework.Sandbox.Abort(Gallio.Model.TestOutcome,System.String)"/> has not been called.
            </summary>
            <exception cref="T:System.ObjectDisposedException">Thrown if the sandbox was disposed.</exception>
        </member>
        <member name="P:Gallio.Framework.Sandbox.AbortMessage">
            <summary>
            Gets a message that will be logged when the sandbox is aborted, or null if none.
            </summary>
            <exception cref="T:System.ObjectDisposedException">Thrown if the sandbox was disposed.</exception>
        </member>
        <member name="T:Gallio.Framework.SilentTestException">
            <summary>
            This exception type is used to signal a test outcome silently without logging the exception.
            </summary>
        </member>
        <member name="M:Gallio.Framework.SilentTestException.#ctor(Gallio.Model.TestOutcome)">
            <summary>
            Creates a silent test exception with the specified outcome.
            </summary>
            <param name="outcome">The test outcome.</param>
        </member>
        <member name="M:Gallio.Framework.SilentTestException.#ctor(Gallio.Model.TestOutcome,System.String)">
            <summary>
            Creates a silent test exception with the specified outcome.
            </summary>
            <param name="outcome">The test outcome.</param>
            <param name="message">The message, or null if none.</param>
        </member>
        <member name="M:Gallio.Framework.SilentTestException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Creates a exception from serialization info.
            </summary>
            <param name="info">The serialization info.</param>
            <param name="context">The streaming context.</param>
        </member>
        <member name="P:Gallio.Framework.SilentTestException.ExcludeStackTrace">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Framework.TestStep">
            <summary>
            Provides functions for manipulating test steps.
            </summary>
            <remarks>
            <para>
            A step is a delimited region of a test.  Each step appears in the report as
            if it were a dynamically generated test nested within the body of the test
            (or some other step) that spawned it.  The step has its own execution log,
            pass/fail/inconclusive result and in all other respects behaves much like
            an ordinary test would.
            </para>
            <para>
            The number of steps within a test does not need to be known ahead of time.
            This can be useful in situations where insufficient information is known
            about the internal structure of a test to be able to fully populate the
            test tree will all of its details.  Because steps are dynamically generated
            at runtime, they appear in test reports but they are invisible to test runners.
            that traverse the test tree.
            </para>
            <para>
            There are many interesting uses for steps.  For example:
            <list type="bullet">
            <item>A single test consisting of a long sequence of actions can be subdivided
            into steps to simplify analysis.</item>
            <item>A test might depend on environmental configuration that cannot be
            known a priori.</item>
            <item>A performance test might be scheduled to run for a certain duration
            but the total number of iterations is unknown.  By running each iteration
            as a step within a single test, the test report can display the execution
            log and pass/fail result of each iteration independently of the others.</item>
            <item>A script-driven test driver could execute a scripted sequence of verification
            commands as a distinct step.  If the script is written in a general purpose
            programming language, the total number of commands and the order in which they
            will be performed might not be known ahead of time.  Using steps enables the
            integration of tests written in forms that cannot be directly adapted
            to the framework's native testing primitives.</item>
            <item>When testing non-deterministic algorithms, it is sometimes useful to repeat
            a test multiple times under slightly different conditions until a certain level
            of confidence is reached.  The variety of conditions tested might be determined
            adaptively based on an error estimation metric.  Using steps each condition
            verified can be reported independently.</item>
            </list>
            </para>
            </remarks>
            <example>
            <para>
            Running as many iterations of a test as possible for a set maximum duration.
            Each iteration will run as a separate test step so that it has its own test
            execution log and test outcome included in the test report.
            <code><![CDATA[
            [TestFixture]
            public class Fixture
            {
                [Test]
                public void MeasurePerformance()
                {
                    // Warm up.
                    TestStep.RunStepAndVerify("Warm Up", DoSomething, TestOutcome.Passed);
            
                    // Run as many iterations as possible for 10 seconds.
                    int iterations = 0;
                    Stopwatch stopwatch = Stopwatch.StartNew();
                    while (stopwatch.ElapsedMilliseconds < 10000)
                    {
                        iterations += 1;
                        TestStep.RunStepAndVerify("Iteration #" + i, DoSomething, TestOutcome.Passed);
                    }
            
                    double iterationsPerSecond = iterations * 1000.0 / stopwatch.ElapsedMilliseconds;
                    Assert.GreaterEqualThan(iterationsPerSecond, 5, "Unacceptable performance.");
                }
            
                private void DoSomething()
                {
                    objectUnderTest.Wibble();
                }
            }
            ]]></code>
            </para>
            </example>
        </member>
        <member name="M:Gallio.Framework.TestStep.RunStep(System.String,Gallio.Common.Action)">
            <summary>
            Performs an action as a new step within the current context and associates
            it with the calling function.  Does not verify the outcome of the step.
            </summary>
            <remarks>
            <para>
            This method creates a new child context with a new nested <see cref="T:Gallio.Model.Tree.TestStep"/>,
            enters the child context, performs the action, then exits the child context.
            </para>
            <para>
            This method may be called recursively to create nested steps or concurrently
            to create parallel steps.
            </para>
            <para>
            This method does not verify that the test step completed successfully.  Check the
            <see cref="P:Gallio.Framework.TestContext.Outcome"/> of the test step or call <see cref="M:Gallio.Framework.TestStep.RunStepAndVerifyOutcome(System.String,Gallio.Common.Action,Gallio.Model.TestOutcome)"/>
            to ensure that the expected outcome was obtained.
            </para>
            </remarks>
            <param name="name">The name of the step.</param>
            <param name="action">The action to perform.</param>
            <returns>The context of the step that ran.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="name"/> or
            <paramref name="action"/> is null.</exception>
            <exception cref="T:System.ArgumentException">Thrown if <paramref name="name"/> is the empty string.</exception>
            <exception cref="T:System.InvalidOperationException">Thrown if there is no current test context.</exception>
        </member>
        <member name="M:Gallio.Framework.TestStep.RunStep(System.String,Gallio.Common.Action,System.Nullable{System.TimeSpan})">
            <summary>
            Performs an action as a new step within the current context and associates
            it with the calling function.  Does not verify the outcome of the step.
            </summary>
            <remarks>
            <para>
            This method creates a new child context with a new nested <see cref="T:Gallio.Model.Tree.TestStep"/>,
            enters the child context, performs the action, then exits the child context.
            </para>
            <para>
            This method may be called recursively to create nested steps or concurrently
            to create parallel steps.
            </para>
            <para>
            This method does not verify that the test step completed successfully.  Check the
            <see cref="P:Gallio.Framework.TestContext.Outcome"/> of the test step or call <see cref="M:Gallio.Framework.TestStep.RunStepAndVerifyOutcome(System.String,Gallio.Common.Action,System.Nullable{System.TimeSpan},Gallio.Model.TestOutcome)"/>
            to ensure that the expected outcome was obtained.
            </para>
            </remarks>
            <param name="name">The name of the step.</param>
            <param name="action">The action to perform.</param>
            <param name="timeout">The step execution timeout, or null if none.</param>
            <returns>The context of the step that ran.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="name"/> or
            <paramref name="action"/> is null.</exception>
            <exception cref="T:System.ArgumentException">Thrown if <paramref name="name"/> is the empty string.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="timeout"/> is negative.</exception>
            <exception cref="T:System.InvalidOperationException">Thrown if there is no current test context.</exception>
        </member>
        <member name="M:Gallio.Framework.TestStep.RunStep(System.String,Gallio.Common.Action,System.Nullable{System.TimeSpan},System.Boolean,Gallio.Common.Reflection.ICodeElementInfo)">
            <summary>
            Performs an action as a new step within the current context and associates it
            with the specified code reference.  Does not verify the outcome of the step.
            </summary>
            <remarks>
            <para>
            This method creates a new child context with a new nested <see cref="T:Gallio.Model.Tree.TestStep"/>,
            enters the child context, performs the action, then exits the child context.
            </para>
            <para>
            This method may be called recursively to create nested steps or concurrently
            to create parallel steps.
            </para>
            <para>
            This method does not verify that the test step completed successfully.  Check the
            <see cref="P:Gallio.Framework.TestContext.Outcome"/> of the test step or call <see cref="M:Gallio.Framework.TestStep.RunStepAndVerifyOutcome(System.String,Gallio.Common.Action,System.Nullable{System.TimeSpan},System.Boolean,Gallio.Common.Reflection.ICodeElementInfo,Gallio.Model.TestOutcome)"/>
            to ensure that the expected outcome was obtained.
            </para>
            </remarks>
            <param name="name">The name of the step.</param>
            <param name="action">The action to perform.</param>
            <param name="timeout">The step execution timeout, or null if none.</param>
            <param name="isTestCase">True if the step represents an independent test case.</param>
            <param name="codeElement">The associated code element, or null if none.</param>
            <returns>The context of the step that ran.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="name"/> or
            <paramref name="action"/> is null.</exception>
            <exception cref="T:System.ArgumentException">Thrown if <paramref name="name"/> is the empty string.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="timeout"/> is negative.</exception>
            <exception cref="T:System.InvalidOperationException">Thrown if there is no current test context.</exception>
        </member>
        <member name="M:Gallio.Framework.TestStep.RunStepAndVerifyOutcome(System.String,Gallio.Common.Action,Gallio.Model.TestOutcome)">
            <summary>
            Performs an action as a new step within the current context and associates
            it with the calling function.  Verifies that the step produced the expected outcome.
            </summary>
            <remarks>
            <para>
            This method creates a new child context with a new nested <see cref="T:Gallio.Model.Tree.TestStep"/>,
            enters the child context, performs the action, then exits the child context.
            </para>
            <para>
            This method may be called recursively to create nested steps or concurrently
            to create parallel steps.
            </para>
            <para>
            This method verifies that the step produced the expected outcome.  If a different outcome
            was obtained, then raises an assertion failure.
            </para>
            </remarks>
            <param name="name">The name of the step.</param>
            <param name="action">The action to perform.</param>
            <param name="expectedOutcome">The expected outcome of the step.</param>
            <returns>The context of the step that ran.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="name"/> or
            <paramref name="action"/> is null.</exception>
            <exception cref="T:System.ArgumentException">Thrown if <paramref name="name"/> is the empty string.</exception>
            <exception cref="T:Gallio.Framework.Assertions.AssertionFailureException">Thrown if the expected outcome was not obtained.</exception>
            <exception cref="T:System.InvalidOperationException">Thrown if there is no current test context.</exception>
        </member>
        <member name="M:Gallio.Framework.TestStep.RunStepAndVerifyOutcome(System.String,Gallio.Common.Action,System.Nullable{System.TimeSpan},Gallio.Model.TestOutcome)">
            <summary>
            Performs an action as a new step within the current context and associates
            it with the calling function.  Verifies that the step produced the expected outcome.
            </summary>
            <remarks>
            <para>
            This method creates a new child context with a new nested <see cref="T:Gallio.Model.Tree.TestStep"/>,
            enters the child context, performs the action, then exits the child context.
            </para>
            <para>
            This method may be called recursively to create nested steps or concurrently
            to create parallel steps.
            </para>
            <para>
            This method verifies that the step produced the expected outcome.  If a different outcome
            was obtained, then raises an assertion failure.
            </para>
            </remarks>
            <param name="name">The name of the step.</param>
            <param name="action">The action to perform.</param>
            <param name="timeout">The step execution timeout, or null if none.</param>
            <param name="expectedOutcome">The expected outcome of the step.</param>
            <returns>The context of the step that ran.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="name"/> or
            <paramref name="action"/> is null.</exception>
            <exception cref="T:System.ArgumentException">Thrown if <paramref name="name"/> is the empty string.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="timeout"/> is negative.</exception>
            <exception cref="T:Gallio.Framework.Assertions.AssertionFailureException">Thrown if the expected outcome was not obtained.</exception>
            <exception cref="T:System.InvalidOperationException">Thrown if there is no current test context.</exception>
        </member>
        <member name="M:Gallio.Framework.TestStep.RunStepAndVerifyOutcome(System.String,Gallio.Common.Action,System.Nullable{System.TimeSpan},System.Boolean,Gallio.Common.Reflection.ICodeElementInfo,Gallio.Model.TestOutcome)">
            <summary>
            Performs an action as a new step within the current context and associates it
            with the specified code reference.  Verifies that the step produced the expected outcome.
            </summary>
            <remarks>
            <para>
            This method creates a new child context with a new nested <see cref="T:Gallio.Model.Tree.TestStep"/>,
            enters the child context, performs the action, then exits the child context.
            </para>
            <para>
            This method may be called recursively to create nested steps or concurrently
            to create parallel steps.
            </para>
            <para>
            This method verifies that the step produced the expected outcome.  If a different outcome
            was obtained, then raises an assertion failure.
            </para>
            </remarks>
            <param name="name">The name of the step.</param>
            <param name="action">The action to perform.</param>
            <param name="timeout">The step execution timeout, or null if none.</param>
            <param name="isTestCase">True if the step represents an independent test case.</param>
            <param name="codeElement">The associated code element, or null if none.</param>
            <param name="expectedOutcome">The expected outcome of the step.</param>
            <returns>The context of the step that ran.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="name"/> or
            <paramref name="action"/> is null.</exception>
            <exception cref="T:System.ArgumentException">Thrown if <paramref name="name"/> is the empty string.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="timeout"/> is negative.</exception>
            <exception cref="T:Gallio.Framework.Assertions.AssertionFailureException">Thrown if the expected outcome was not obtained.</exception>
            <exception cref="T:System.InvalidOperationException">Thrown if there is no current test context.</exception>
        </member>
        <member name="M:Gallio.Framework.TestStep.AddMetadata(System.String,System.String)">
            <summary>
            Adds metadata to the step that is running in the context.
            </summary>
            <param name="metadataKey">The metadata key.</param>
            <param name="metadataValue">The metadata value.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="metadataKey"/>
            or <paramref name="metadataValue"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Thrown if there is no current test context.</exception>
        </member>
        <member name="P:Gallio.Framework.TestStep.CurrentStep">
            <summary>
            Gets reflection information about the current step.
            </summary>
            <exception cref="T:System.InvalidOperationException">Thrown if there is no current test context.</exception>
        </member>
        <member name="T:Gallio.Framework.Tasks">
            <summary>
            The tasks class provides a mechanism for coordinating the actions of multiple
            tasks within a test case.
            </summary>
            <remarks>
            <para>
            Each task started by a test case is monitored.  When the test exits, any
            remaining tasks are automatically aborted and disposed.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Framework.Tasks.WatchTask(Gallio.Common.Concurrency.Task)">
            <summary>
            Adds a new task for the task manager to watch.
            </summary>
            <remarks>
            <para>
            The task manager will track when the task starts and finishes, ensure
            that the task is aborted when the test ends, report any exception thrown
            by the task as a warning in the log, and include the task in the list of those
            to join and/or verify.
            </para>
            </remarks>
            <param name="task">The task to watch.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="task"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.Tasks.CreateThreadTask(System.String,Gallio.Common.Action)">
            <summary>
            Creates a new thread task but does not start it.
            </summary>
            <remarks>
            <para>
            There is no need to call <see cref="M:Gallio.Framework.Tasks.WatchTask(Gallio.Common.Concurrency.Task)"/> on the returned task.
            </para>
            </remarks>
            <param name="name">The name of the task, or null to create a new name based
            on the method associated with the action.</param>
            <param name="action">The action to perform.</param>
            <returns>The new thread task.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="action"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.Tasks.StartThreadTask(System.String,Gallio.Common.Action)">
            <summary>
            Starts a new thread task.
            </summary>
            <remarks>
            <para>
            There is no need to call <see cref="M:Gallio.Framework.Tasks.WatchTask(Gallio.Common.Concurrency.Task)"/> on the returned task.
            </para>
            </remarks>
            <param name="name">The name of the task, or null to create a new name based
            on the method associated with the action.</param>
            <param name="action">The action to perform.</param>
            <returns>The new thread task.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="action"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.Tasks.CreateProcessTask(System.String,System.String,System.String)">
            <summary>
            Creates a new process task but does not start it.
            </summary>
            <remarks>
            <para>
            The output of the process will be logged and included as part of the test results.  It
            may also be examined using the <see cref="P:Gallio.Common.Concurrency.ProcessTask.ConsoleOutput"/> and
            <see cref="P:Gallio.Common.Concurrency.ProcessTask.ConsoleError"/> properties while the process executes and
            after it terminates.
            </para>
            <para>
            There is no need to call <see cref="M:Gallio.Framework.Tasks.WatchTask(Gallio.Common.Concurrency.Task)"/> on the returned task.
            </para>
            </remarks>
            <param name="executablePath">The path of the executable executable.</param>
            <param name="arguments">The arguments for the executable.</param>
            <param name="workingDirectory">The working directory.</param>
            <returns>The new thread task.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="executablePath"/>,
            <paramref name="arguments"/> or <paramref name="workingDirectory"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.Tasks.StartProcessTask(System.String,System.String,System.String)">
            <summary>
            Starts a new process and begins watching it.
            </summary>
            <remarks>
            <para>
            The output of the process will be logged and included as part of the test results.  It
            may also be examined using the <see cref="P:Gallio.Common.Concurrency.ProcessTask.ConsoleOutput"/> and
            <see cref="P:Gallio.Common.Concurrency.ProcessTask.ConsoleError"/> properties while the process executes and
            after it terminates.
            </para>
            <para>
            There is no need to call <see cref="M:Gallio.Framework.Tasks.WatchTask(Gallio.Common.Concurrency.Task)"/> on the returned task.
            </para>
            </remarks>
            <param name="executablePath">The path of the executable executable.</param>
            <param name="arguments">The arguments for the executable.</param>
            <param name="workingDirectory">The working directory.</param>
            <returns>The new thread task.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="executablePath"/>,
            <paramref name="arguments"/> or <paramref name="workingDirectory"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.Tasks.JoinAndVerify(System.TimeSpan)">
            <summary>
            Waits for all tasks to complete or for timeout to occur;
            then verifies that no failures have occurred in any of the tasks.
            </summary>
            <param name="timeout">The timeout.</param>
            <exception cref="T:Gallio.Framework.TestException">Thrown if some of the tasks did not complete
            or if any of the tasks failed.</exception>
        </member>
        <member name="M:Gallio.Framework.Tasks.Verify">
            <summary>
            Verifies that no failures have occurred in any of the tasks.
            </summary>
            <exception cref="T:Gallio.Framework.TestException">Thrown if any of the tasks failed.</exception>
        </member>
        <member name="P:Gallio.Framework.Tasks.TaskContainer">
            <summary>
            Gets the task container for the current <see cref="T:Gallio.Framework.TestContext"/>.
            </summary>
        </member>
        <member name="T:Gallio.Framework.Utilities.SampleRunner">
            <summary>
            Runs sample test cases within an embedded copy of the test runner and provides
            access to the resulting test report.
            </summary>
            <remarks>
            <para>
            Logs debug output from the embedded test runner while the sample tests run.
            </para>
            <para>
            This utility class is intended to help write integration tests for test framework features.
            </para>
            <para>
            This class is NOT intended to be used for instructional purposes as a template for
            creating a new test runner.  Do NOT copy this code and try to make a new test runner
            out of it.  Instead, please examine the code for the Gallio Echo test runner and pay
            attention to how it uses the <see cref="T:Gallio.Runner.TestLauncher"/>.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Framework.Utilities.SampleRunner.#ctor">
            <summary>
            Creates a sample runner.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Utilities.SampleRunner.AddFile(System.IO.FileInfo)">
            <summary>
            Adds a test file to the package configuration, if not already added.
            </summary>
            <param name="file">The file to add.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="file"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.Utilities.SampleRunner.AddAssembly(System.Reflection.Assembly)">
            <summary>
            Adds a test assembly to the package configuration, if not already added.
            </summary>
            <param name="assembly">The assembly to add.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="assembly"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.Utilities.SampleRunner.AddFixture(System.Type)">
            <summary>
            Adds a test fixture type to the list of filters, and automatically adds its containing
            test assembly to the package configuration, if not already added.
            </summary>
            <param name="fixtureType">The test fixture type to add.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="fixtureType"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.Utilities.SampleRunner.AddMethod(System.Type,System.String)">
            <summary>
            Adds a test method to the list of filters, and automatically adds its containing
            test assembly to the package configuration, if not already added.
            </summary>
            <param name="fixtureType">The test fixture type.</param>
            <param name="methodName">The test method name.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="fixtureType"/> or <paramref name="methodName"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.Utilities.SampleRunner.AddFilter(Gallio.Model.Filters.Filter{Gallio.Model.Filters.ITestDescriptor})">
            <summary>
            Adds a test filter to the combined list of filters that select which tests to include in the run,
            if not already added.
            </summary>
            <param name="filter">The filter to add.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="filter"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.Utilities.SampleRunner.GetTestData(Gallio.Common.Reflection.CodeReference)">
            <summary>
            Gets information about the test with the given code reference.
            </summary>
            <remarks>
            <para>
            Can only be called after the tests have run.
            </para>
            </remarks>
            <param name="codeReference">The code reference of the test.</param>
            <returns>The test data, or null if not found.</returns>
        </member>
        <member name="M:Gallio.Framework.Utilities.SampleRunner.GetTestData(System.Predicate{Gallio.Model.Schema.TestData})">
            <summary>
            Gets information about the test that matches a predicate.
            </summary>
            <remarks>
            <para>
            Can only be called after the tests have run.
            </para>
            </remarks>
            <param name="predicate">The predicate to match.</param>
            <returns>The test data, or null if not found.</returns>
        </member>
        <member name="M:Gallio.Framework.Utilities.SampleRunner.GetTestStepRuns(Gallio.Common.Reflection.CodeReference)">
            <summary>
            Gets all test step runs with the given code reference.
            </summary>
            <remarks>
            <para>
            Can only be called after the tests have run.
            </para>
            </remarks>
            <param name="codeReference">The code reference of the test.</param>
            <returns>The enumeration of test step runs, or null if not found.</returns>
        </member>
        <member name="M:Gallio.Framework.Utilities.SampleRunner.GetTestStepRuns(System.Predicate{Gallio.Runner.Reports.Schema.TestStepRun})">
            <summary>
            Gets all test step runs that match a predicate.
            </summary>
            <remarks>
            <para>
            Can only be called after the tests have run.
            </para>
            </remarks>
            <param name="predicate">The predicate to match.</param>
            <returns>The enumeration of test step runs, or null if not found.</returns>
        </member>
        <member name="M:Gallio.Framework.Utilities.SampleRunner.GetTestStepRuns(System.Type,System.String)">
            <summary>
            Gets all test step runs with the code reference infered from the method of the specified type.
            </summary>
            <remarks>
            <para>
            Can only be called after the tests have run.
            </para>
            </remarks>
            <param name="type">The searched type.</param>
            <param name="methodName">The name of the searched method.</param>
            <returns>The enumeration of test step runs, or null if not found.</returns>
        </member>
        <member name="M:Gallio.Framework.Utilities.SampleRunner.GetPrimaryTestStepRun(Gallio.Common.Reflection.CodeReference)">
            <summary>
            Gets the primary test step run of a test with the given code reference.
            </summary>
            <remarks>
            <para>
            If there are multiple primary steps, returns the first one found.
            </para>
            <para>
            Can only be called after the tests have run.
            </para>
            </remarks>
            <param name="codeReference">The code reference of the test.</param>
            <returns>The first test step run, or null if not found.</returns>
        </member>
        <member name="M:Gallio.Framework.Utilities.SampleRunner.GetPrimaryTestStepRun(System.Predicate{Gallio.Runner.Reports.Schema.TestStepRun})">
            <summary>
            Gets the primary test step run that match a predicate.
            </summary>
            <remarks>
            <para>
            If there are multiple primary steps, returns the first one found.
            </para>
            <para>
            Can only be called after the tests have run.
            </para>
            </remarks>
            <param name="predicate">The predicate to match.</param>
            <returns>The first test step run, or null if not found.</returns>
        </member>
        <member name="M:Gallio.Framework.Utilities.SampleRunner.GetPrimaryTestStepRun(System.Type,System.String)">
            <summary>
            Gets the primary test step run of a test with the code reference infered from the method of the specified type.
            </summary>
            <remarks>
            <para>
            If there are multiple primary steps, returns the first one found.
            </para>
            <para>
            Can only be called after the tests have run.
            </para>
            </remarks>
            <param name="type">The searched type.</param>
            <param name="methodName">The name of the searched method.</param>
            <returns>The first test step run, or null if not found.</returns>
        </member>
        <member name="M:Gallio.Framework.Utilities.SampleRunner.GetTestCaseRunsWithin(Gallio.Common.Reflection.CodeReference)">
            <summary>
            Gets all test step runs that represent test cases within a test with
            the specified code reference.
            </summary>
            <remarks>
            <para>
            Can only be called after the tests have run.
            </para>
            </remarks>
            <param name="codeReference">The code reference of the test.</param>
            <returns>The first test step run, or null if not found.</returns>
        </member>
        <member name="M:Gallio.Framework.Utilities.SampleRunner.Explore">
            <summary>
            Explores the tests but does not run them.
            </summary>
        </member>
        <member name="M:Gallio.Framework.Utilities.SampleRunner.Run">
            <summary>
            Runs the tests.
            </summary>
        </member>
        <member name="P:Gallio.Framework.Utilities.SampleRunner.Report">
            <summary>
            Gets the test report that was produced by the test run.
            </summary>
        </member>
        <member name="P:Gallio.Framework.Utilities.SampleRunner.Result">
            <summary>
            Gets the result of the test run.
            </summary>
        </member>
        <member name="P:Gallio.Framework.Utilities.SampleRunner.TestPackage">
            <summary>
            Gets the test package for the test run.
            </summary>
            <remarks>
            <para>
            The returned object may be modified prior to running the tests to configure
            various parameters of the test run.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Framework.Utilities.SampleRunner.TestRunnerFactoryName">
            <summary>
            Gets or sets the name of the test runner factory to use.
            </summary>
            <value>The test runner factory name, defaults to <see cref="F:Gallio.Runner.StandardTestRunnerFactoryNames.Local"/></value>
        </member>
        <member name="P:Gallio.Framework.Utilities.SampleRunner.TestRunnerOptions">
            <summary>
            Gets the test runner options.
            </summary>
        </member>
        <member name="T:Gallio.Model.Tree.Annotation">
            <summary>
            An annotation associates a message with a source code location
            to inform the user about a problem.
            </summary>
        </member>
        <member name="M:Gallio.Model.Tree.Annotation.#ctor(Gallio.Model.AnnotationType,Gallio.Common.Reflection.ICodeElementInfo,System.String,System.String)">
            <summary>
            Creates an annotation with a detail message string.
            </summary>
            <param name="type">The annotation type.</param>
            <param name="codeElement">The associated code element, or null if none.</param>
            <param name="message">The annotation message.</param>
            <param name="details">Additional details such as exception text or null if none.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="message"/> is null.</exception>
        </member>
        <member name="M:Gallio.Model.Tree.Annotation.#ctor(Gallio.Model.AnnotationType,Gallio.Common.Reflection.ICodeElementInfo,System.String,System.Exception)">
            <summary>
            Creates an annotation with a detail exception.
            </summary>
            <param name="type">The annotation type.</param>
            <param name="codeElement">The associated code element, or null if none.</param>
            <param name="message">The annotation message.</param>
            <param name="ex">The exception to use as additional details or null if none.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="message"/> is null.</exception>
        </member>
        <member name="M:Gallio.Model.Tree.Annotation.#ctor(Gallio.Model.AnnotationType,Gallio.Common.Reflection.ICodeElementInfo,System.String)">
            <summary>
            Creates an annotation with no details.
            </summary>
            <param name="type">The annotation type.</param>
            <param name="codeElement">The associated code element, or null if none.</param>
            <param name="message">The annotation message.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="message"/> is null.</exception>
        </member>
        <member name="P:Gallio.Model.Tree.Annotation.Type">
            <summary>
            Gets the annotation type.
            </summary>
        </member>
        <member name="P:Gallio.Model.Tree.Annotation.CodeElement">
            <summary>
            Gets the code element associated with the annotation.
            </summary>
        </member>
        <member name="P:Gallio.Model.Tree.Annotation.Message">
            <summary>
            Gets the annotation message.
            </summary>
        </member>
        <member name="P:Gallio.Model.Tree.Annotation.Details">
            <summary>
            Gets additional details such as exception text, or null if none.
            </summary>
        </member>
        <member name="T:Gallio.Model.AnnotationType">
            <summary>
            Specifies the type of an annotation.
            </summary>
        </member>
        <member name="F:Gallio.Model.AnnotationType.Info">
            <summary>
            An informational annotation.
            </summary>
        </member>
        <member name="F:Gallio.Model.AnnotationType.Warning">
            <summary>
            A warning annotation.
            </summary>
        </member>
        <member name="F:Gallio.Model.AnnotationType.Error">
            <summary>
            An error annotation.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.InstallationConfiguration">
            <summary>
            Describes the configuration of a Gallio installation.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.InstallationConfiguration.LoadFromRegistry">
            <summary>
            Loads the configuration from the registry.
            </summary>
            <returns>The installed configuration.</returns>
        </member>
        <member name="M:Gallio.Runtime.InstallationConfiguration.ClearAdditionalPluginDirectories">
            <summary>
            Clears the list of additional plugin directories.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.InstallationConfiguration.AddAdditionalPluginDirectory(System.String)">
            <summary>
            Adds an additional plugin directory if not already in the configuration.
            </summary>
            <param name="pluginDirectory">The relative or absolute path of a directory to be
            searched for plugin configuration files in addition to the
            primary Gallio directories.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="pluginDirectory"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.InstallationConfiguration.RemoveAdditionalPluginDirectory(System.String)">
            <summary>
            Removes an additional plugin directory.
            </summary>
            <param name="pluginDirectory">The plugin directory to remove.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="pluginDirectory"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.InstallationConfiguration.SaveAdditionalPluginDirectoriesToRegistry">
            <summary>
            Saves the additional plugin directories into the registry.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.InstallationConfiguration.SaveInstallationIdToRegistry">
            <summary>
            Saves the installation id into the registry.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.InstallationConfiguration.InstalledVersion">
            <summary>
            Get or sets the version that was installed, or null if Gallio is not installed.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.InstallationConfiguration.InstallationFolder">
            <summary>
            Get or sets the folder where Gallio was installed, or null if Gallio is not installed.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.InstallationConfiguration.InstallationId">
            <summary>
            Gets or sets the unique id of this Gallio installation.
            </summary>
            <remarks>
            <para>
            Returns <see cref="F:System.Guid.Empty"/> if Gallio does not appear to have an installation id.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Runtime.InstallationConfiguration.AdditionalPluginDirectories">
            <summary>
            Gets a read-only list of additional plugin directories.
            </summary>
        </member>
        <member name="T:Gallio.Model.Commands.ManagedTestCommand">
            <summary>
            A <see cref="T:Gallio.Model.Commands.ITestCommand"/> implementation based on a <see cref="T:Gallio.Model.Contexts.ITestContextManager"/>.
            </summary>
        </member>
        <member name="T:Gallio.Model.Commands.ITestCommand">
            <summary>
            A test command requests the execution of a tree of <see cref="T:Gallio.Model.Tree.Test"/>s.
            The test command hierarchy mirrors a filtered subset of the test hierarchy.
            </summary>
            <remarks>
            <para>
            The order in which commands appear in the command tree is significant.
            Commands should be sorted such that if command A depends on command B,
            then B will appear before A in a pre-order traversal of the tree.
            </para>
            <para>
            The ordering constraint is intended to simplify the implementation of
            <see cref="T:Gallio.Model.ITestDriver"/>s.  Test drivers may assume that executing
            <see cref="T:Gallio.Model.Commands.ITestCommand"/>s in pre-order traversal sequence will be
            sufficient to ensure that all dependencies can be evaluated in time.
            </para>
            <para>
            However, a <see cref="T:Gallio.Model.ITestDriver"/> is not required to run the
            tests in the specified order.  Moreover, it is not required to run them
            serially at all.  (In fact, it is not even required to use this API.)
            A smart <see cref="T:Gallio.Model.ITestDriver"/> might run tests in parallel or take
            into account additional sequencing constraints governing execution order.
            </para>
            <para>
            In order to achieve correct behavior, a <see cref="T:Gallio.Model.ITestDriver"/>
            should satisfy the following guarantees with respect to test commands:
            <list type="bullet">
            <item>A test command runs within the scope of its parent test command.</item>
            <item>A test command runs only after all of the test commands it depends on have passed.</item>
            <item>A test command with a failed dependency or that is not run for internal reasons reports a test outcome of <see cref="P:Gallio.Model.TestOutcome.Skipped"/>.</item>
            </list>
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Model.Commands.ITestCommand.GetAllCommands">
            <summary>
            Gets a list consisting of this command and all of its descendants as
            enumerated by pre-order tree traversal.
            </summary>
            <returns>The list of all command.</returns>
        </member>
        <member name="M:Gallio.Model.Commands.ITestCommand.AreDependenciesSatisfied">
            <summary>
            Returns true if all of the dependencies of this test command have
            been satisfied including transitive dependencies.
            </summary>
            <returns>True if the dependencies of this test command have been satisfied.</returns>
        </member>
        <member name="M:Gallio.Model.Commands.ITestCommand.StartStep(Gallio.Model.Tree.TestStep)">
            <summary>
            Starts a new step of the test using the specified test step object.
            </summary>
            <remarks>
            <para>
            The current thread's test context is set to a new context for the
            test step that is starting.  The new context will be a child of the
            current thread's context.
            </para>
            </remarks>
            <param name="testStep">The test step to start.</param>
            <returns>The test context for the test step.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="testStep"/> is null.</exception>
            <exception cref="T:System.ArgumentException">Thrown if <paramref name="testStep"/> does not
            belong to the test associated with this test command.</exception>
        </member>
        <member name="M:Gallio.Model.Commands.ITestCommand.StartPrimaryChildStep(Gallio.Model.Tree.TestStep)">
            <summary>
            Starts the primary step of the test associated with this command as a child
            of the specified test step and returns its test context.
            </summary>
            <remarks>
            <para>
            This method is equivalent to calling <see cref="M:Gallio.Model.Commands.ITestCommand.StartStep(Gallio.Model.Tree.TestStep)"/>
            using a default implementation of <see cref="T:Gallio.Model.Tree.TestStep"/> that is
            initialized with the metadata of the test associated with this test command.
            </para>
            </remarks>
            <param name="parentTestStep">The parent test step, or null if none.</param>
            <returns>The test context for the new primary test step.</returns>
            <seealso cref="M:Gallio.Model.Commands.ITestCommand.StartStep(Gallio.Model.Tree.TestStep)"/>
        </member>
        <member name="P:Gallio.Model.Commands.ITestCommand.Test">
            <summary>
            Gets the test that is to be executed.
            </summary>
        </member>
        <member name="P:Gallio.Model.Commands.ITestCommand.TestCount">
            <summary>
            Gets the total number of tests in the command subtree, including itself.
            </summary>
        </member>
        <member name="P:Gallio.Model.Commands.ITestCommand.IsExplicit">
            <summary>
            Returns true if the test was explicitly selected by a filter.
            </summary>
            <remarks>
            <para>
            This flag enables test controllers to distinguish the case when a particular test
            was explicitly selected by a user-specified filter rather than by virtue of
            one of its parents having been selected.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Model.Commands.ITestCommand.RootStepFailureCount">
            <summary>
            Gets the number of times that a root step of this test has failed.
            </summary>
            <remarks>
            <para>
            The value of this field is automatically updated as each root step
            created by <see cref="M:Gallio.Model.Commands.ITestCommand.StartPrimaryChildStep(Gallio.Model.Tree.TestStep)"/> finishes.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Model.Commands.ITestCommand.Children">
            <summary>
            Gets the list of child commands to run within the scope of this command.
            </summary>
            <remarks>
            <para>
            Each child command represents a test that is a child of the test
            managed by this command.
            </para>
            <para>
            The children are listed in an order that is consistent with
            their dependencies.  See class commends for details.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Model.Commands.ITestCommand.Dependencies">
            <summary>
            Gets the list of other commands that this command depends upon.
            </summary>
            <remarks>
            <para>
            The dependent commands are guaranteed to have appeared before this
            command in a pre-order traversal of the command tree.
            A test command cannot depend on one of its direct ancestors.
            </para>
            <para>
            There must be no circular dependencies.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Model.Commands.ITestCommand.PreOrderTraversal">
            <summary>
            Enumerates this command and all of its descendants in pre-order tree
            traversal.
            </summary>
        </member>
        <member name="M:Gallio.Model.Commands.ManagedTestCommand.#ctor(Gallio.Model.Contexts.ITestContextManager,Gallio.Model.Tree.Test,System.Boolean)">
            <summary>
            Creates a test command.
            </summary>
            <param name="contextManager">The test context manager.</param>
            <param name="test">The test.</param>
            <param name="isExplicit">True if the test is being executed explicitly.</param>
        </member>
        <member name="M:Gallio.Model.Commands.ManagedTestCommand.GetAllCommands">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.Commands.ManagedTestCommand.AreDependenciesSatisfied">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.Commands.ManagedTestCommand.StartStep(Gallio.Model.Tree.TestStep)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.Commands.ManagedTestCommand.StartPrimaryChildStep(Gallio.Model.Tree.TestStep)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.Commands.ManagedTestCommand.AddChild(Gallio.Model.Commands.ManagedTestCommand)">
            <summary>
            Adds a child test command.
            </summary>
            <param name="child">The child to add.</param>
        </member>
        <member name="M:Gallio.Model.Commands.ManagedTestCommand.AddDependency(Gallio.Model.Commands.ManagedTestCommand)">
            <summary>
            Adds a test command dependency.
            </summary>
            <param name="dependency">The dependency to add.</param>
        </member>
        <member name="M:Gallio.Model.Commands.ManagedTestCommand.ClearChildren">
            <summary>
            Clears the children of the command.
            </summary>
        </member>
        <member name="M:Gallio.Model.Commands.ManagedTestCommand.ChildrenToArray">
            <summary>
            Gets the list of children as an array.
            </summary>
            <returns>The array of children.</returns>
        </member>
        <member name="M:Gallio.Model.Commands.ManagedTestCommand.ToString">
            <summary>
            Returns a description of the test command for debugging purposes.
            </summary>
            <returns>A description of the test command.</returns>
        </member>
        <member name="P:Gallio.Model.Commands.ManagedTestCommand.Test">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Model.Commands.ManagedTestCommand.IsExplicit">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Model.Commands.ManagedTestCommand.RootStepFailureCount">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Model.Commands.ManagedTestCommand.TestCount">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Model.Commands.ManagedTestCommand.Children">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Model.Commands.ManagedTestCommand.Dependencies">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Model.Commands.ManagedTestCommand.PreOrderTraversal">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Model.Contexts.ObservableTestContext">
            <summary>
            An observable test context monitors translates state changes on the
            test context into notifications on a <see cref="T:Gallio.Common.Messaging.IMessageSink"/>.
            </summary>
        </member>
        <member name="T:Gallio.Model.Contexts.ITestContext">
            <summary>
            The context provides information about the environment in which
            a test is executing.  A new context is created each time a test or
            test step begins execution.
            </summary>
            <remarks>
            <para>
            Contexts are arranged in a hierarchy that corresponds to the order in which
            the contexts were entered.  Thus the context for a test likely has as
            its parent the context for its containing test fixture.
            </para>
            <para>
            Arbitrary user data can be associated with a context.  Furthermore, client
            code may attach <see cref="E:Gallio.Model.Contexts.ITestContext.Finishing"/> event handlers to perform resource
            reclamation or other updates when the test step is finished.
            </para>
            <para>
            When the context is disposed, its associated test step is automatically
            marked as being finished unless <see cref="M:Gallio.Model.Contexts.ITestContext.FinishStep(Gallio.Model.TestOutcome,System.Nullable{System.TimeSpan})"/> was previously called.
            When this occurs the test step is finished with an outcome of
            <see cref="P:Gallio.Model.TestOutcome.Error"/>.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Model.Contexts.ITestContext.AddAssertCount(System.Int32)">
            <summary>
            Adds the specified amount to the assert count atomically.
            </summary>
            <param name="value">The amount to add to the assert count.</param>
            <exception cref="T:System.InvalidOperationException">Thrown if the test is not running.</exception>
        </member>
        <member name="M:Gallio.Model.Contexts.ITestContext.AddMetadata(System.String,System.String)">
            <summary>
            Adds metadata to the step that is running in the context.
            </summary>
            <param name="metadataKey">The metadata key.</param>
            <param name="metadataValue">The metadata value.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="metadataKey"/>
            or <paramref name="metadataValue"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Thrown if the test is not running.</exception>
        </member>
        <member name="M:Gallio.Model.Contexts.ITestContext.SetInterimOutcome(Gallio.Model.TestOutcome)">
            <summary>
            Sets the step's interim <see cref="P:Gallio.Model.Contexts.ITestContext.Outcome"/>.
            </summary>
            <remarks>
            <para>
            The interim outcome is used to communicate the anticipated outcome of the step to 
            later phases of execution.
            </para>
            <para>
            The value set here will be overridden by whatever final outcome the step
            returns.  Consequently the actual outcome may still differ from the anticipated 
            outcome that was set using this method.
            </para>
            </remarks>
            <exception cref="T:System.InvalidOperationException">Thrown if attempting to set the outcome while the test is not running.</exception>
            <seealso cref="P:Gallio.Model.Contexts.ITestContext.Outcome"/>
        </member>
        <member name="M:Gallio.Model.Contexts.ITestContext.StartChildStep(Gallio.Model.Tree.TestStep)">
            <summary>
            Starts a child step of the test and returns its context.
            </summary>
            <remarks>
            <para>
            The current thread's test context is set to the context of the
            test step that is starting.
            </para>
            </remarks>
            <param name="childStep">The step to start.</param>
            <returns>The context of the child step.</returns>
            <exception cref="T:System.InvalidOperationException">Thrown if the step has finished.</exception>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="childStep"/> is null.</exception>
            <exception cref="T:System.ArgumentException">Thrown if <paramref name="childStep"/> is not a child
            of the this step.</exception>
        </member>
        <member name="M:Gallio.Model.Contexts.ITestContext.FinishStep(Gallio.Model.TestOutcome,System.Nullable{System.TimeSpan})">
            <summary>
            Finishes a step and submits its final result.
            </summary>
            <remarks>
            <para>
            If any children of the step are still executing their contexts are automatically
            disposed.  Then <see cref="E:Gallio.Model.Contexts.ITestContext.Finishing"/> actions are executed.  Finally, the current
            thread's test context is exited (unless <see cref="M:Gallio.Model.Contexts.ITestContext.BecomeMultiThreadAware"/> was called).
            </para>
            </remarks>
            <param name="outcome">The final test outcome.</param>
            <param name="actualDuration">The actual duration of the step, if null the step monitor
            will record the duration as the total amount of time since the step monitor was started.</param>
            <returns>The final test result.</returns>
            <seealso cref="E:Gallio.Model.Contexts.ITestContext.Finishing"/>
        </member>
        <member name="M:Gallio.Model.Contexts.ITestContext.BecomeMultiThreadAware">
            <summary>
            This method informs the test context that it may be finished on a
            different thread than it started.  This changes how the test context
            will exit when finished.
            </summary>
            <remarks>
            <para>
            After this method is called, the caller will become responsible for
            exiting the context after <see cref="M:Gallio.Model.Contexts.ITestContext.FinishStep(Gallio.Model.TestOutcome,System.Nullable{System.TimeSpan})"/> if necessary.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Model.Contexts.ITestContext.Parent">
            <summary>
            Gets the parent context or null if this context has no parent.
            </summary>
        </member>
        <member name="P:Gallio.Model.Contexts.ITestContext.TestStep">
            <summary>
            Gets the test step associated with the context.
            </summary>
        </member>
        <member name="P:Gallio.Model.Contexts.ITestContext.LogWriter">
            <summary>
            Gets the log writer for the test executing in this context.
            </summary>
            <remarks>
            <para>
            Each test step gets its own log writer that is distinct from those
            of other steps.  So the log writer returned by this property is
            particular to the step represented by this test context.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Model.Contexts.ITestContext.LifecyclePhase">
            <summary>
            Gets or sets the lifecycle phase the context is in.
            </summary>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Thrown if attempting to set the phase while the test is not running.</exception>
            <seealso cref="T:Gallio.Model.LifecyclePhases"/>
        </member>
        <member name="P:Gallio.Model.Contexts.ITestContext.Outcome">
            <summary>
            Gets the step's outcome or its interim outcome if the test is still running.
            </summary>
            <remarks>
            <para>
            The value of this property is initially <see cref="P:Gallio.Model.TestOutcome.Passed"/> but may change
            over the course of execution to reflect the anticipated outcome of the test.  When
            the test finishes, its outcome is frozen.
            </para>
            <para>
            For example, this property enables code running as part of the tear down phase to
            determine whether the test is failing and to perform different actions in that case.
            </para>
            </remarks>
            <seealso cref="M:Gallio.Model.Contexts.ITestContext.SetInterimOutcome(Gallio.Model.TestOutcome)"/>
        </member>
        <member name="P:Gallio.Model.Contexts.ITestContext.Data">
            <summary>
            Gets the user data collection associated with the context.
            </summary>
            <remarks>
            <para>
            It may be used to associate arbitrary key/value pairs with the context.
            </para>
            <para>
            Each context has its own distinct user data collection.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Model.Contexts.ITestContext.AssertCount">
            <summary>
            Gets the current assertion count.
            </summary>
        </member>
        <member name="P:Gallio.Model.Contexts.ITestContext.Result">
            <summary>
            Gets the final test result or null if the test has not yet finished running.
            </summary>
            <remarks>
            <para>
            The test result cannot be changed.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Model.Contexts.ITestContext.MessageSink">
            <summary>
            Gets the message sink to which custom test messages may be published.
            </summary>
        </member>
        <member name="P:Gallio.Model.Contexts.ITestContext.IsFinished">
            <summary>
            Returns true if the step associated with the context has finished execution
            and completed all <see cref="E:Gallio.Model.Contexts.ITestContext.Finishing"/> actions.
            </summary>
        </member>
        <member name="E:Gallio.Model.Contexts.ITestContext.Finishing">
            <summary>
            The <see cref="E:Gallio.Model.Contexts.ITestContext.Finishing"/> event is raised when the test step
            is finishing to perform resource reclamation or other updates.
            </summary>
            <remarks>
            <para>
            Clients may attach handlers to this event to perform cleanup
            activities and other tasks as needed.  If a new event handler is
            added and the step has already finished, the handler is immediately invoked.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Model.Contexts.ObservableTestContext.#ctor(Gallio.Model.Contexts.ObservableTestContextManager,Gallio.Model.Tree.TestStep,Gallio.Model.Contexts.ITestContext)">
            <summary>
            Creates an observable test context.
            </summary>
            <param name="manager">The test context manager.</param>
            <param name="testStep">The test step.</param>
            <param name="parent">The parent test context.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="manager"/> or <paramref name="testStep"/> is null.</exception>
        </member>
        <member name="T:Gallio.Model.Contexts.ObservableTestContextManager">
            <summary>
            An observable test context manager creates and tracks test contexts and
            publishes test messages back to a <see cref="T:Gallio.Common.Messaging.IMessageSink"/>.
            </summary>
        </member>
        <member name="T:Gallio.Model.Contexts.ITestContextManager">
            <summary>
            A test context manager provides access to the <see cref="T:Gallio.Model.Contexts.ITestContextTracker"/>
            and creates new <see cref="T:Gallio.Model.Contexts.ITestContext"/>s with the help of the tracker.
            </summary>
        </member>
        <member name="M:Gallio.Model.Contexts.ITestContextManager.StartStep(Gallio.Model.Tree.TestStep)">
            <summary>
            Starts a test step and returns its associated test context.
            </summary>
            <remarks>
            <para>
            The current thread's test context is set to a new context for the
            test step that is starting.  The new context will be a child of the
            current thread's context.
            </para>
            </remarks>
            <param name="testStep">The test step.</param>
            <returns>The test context associated with the test step.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="testStep"/> is null.</exception>
        </member>
        <member name="P:Gallio.Model.Contexts.ITestContextManager.ContextTracker">
            <summary>
            Gets the test context tracker.
            </summary>
        </member>
        <member name="M:Gallio.Model.Contexts.ObservableTestContextManager.#ctor(Gallio.Model.Contexts.ITestContextTracker,Gallio.Common.Messaging.IMessageSink)">
            <summary>
            Creates a test context manager.
            </summary>
            <param name="contextTracker">The test context tracker.</param>
            <param name="messageSink">The message sink to which test message are published.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="contextTracker"/>
            or <paramref name="messageSink"/> is null.</exception>
        </member>
        <member name="M:Gallio.Model.Contexts.ObservableTestContextManager.StartStep(Gallio.Model.Tree.TestStep)">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Model.Contexts.ObservableTestContextManager.ContextTracker">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Model.Contexts.ObservableTestContextManager.MessageSink">
            <summary>
            Gets the message sink to which test messages are published.
            </summary>
        </member>
        <member name="T:Gallio.Model.Contexts.ObservableTestLogWriter">
            <summary>
            A log writer that sends messages to a <see cref="T:Gallio.Common.Messaging.IMessageSink"/>.
            </summary>
        </member>
        <member name="M:Gallio.Model.Contexts.ObservableTestLogWriter.#ctor(Gallio.Common.Messaging.IMessageSink,System.String)">
            <summary>
            Creates a log writer.
            </summary>
            <param name="messageSink">The test listener to which test messages are published.</param>
            <param name="stepId">The step id.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="messageSink"/> or
            <paramref name="stepId"/> is null.</exception>
        </member>
        <member name="M:Gallio.Model.Contexts.ObservableTestLogWriter.CloseImpl">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.Contexts.ObservableTestLogWriter.AttachImpl(Gallio.Common.Markup.Attachment)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.Contexts.ObservableTestLogWriter.StreamWriteImpl(System.String,System.String)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.Contexts.ObservableTestLogWriter.StreamEmbedImpl(System.String,System.String)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.Contexts.ObservableTestLogWriter.StreamBeginSectionImpl(System.String,System.String)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.Contexts.ObservableTestLogWriter.StreamBeginMarkerImpl(System.String,Gallio.Common.Markup.Marker)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.Contexts.ObservableTestLogWriter.StreamEndImpl(System.String)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Model.Contexts.StubTestContext">
            <summary>
            A stub implementation of <see cref="T:Gallio.Common.Markup.TextualMarkupDocumentWriter"/> using a <see cref="T:Gallio.Model.Contexts.StubTestContextTracker"/>.
            </summary>
            <remarks>
            <para>
            Does not fully support nested test steps or other dynamic features.
            </para>
            </remarks>
            <seealso cref="T:Gallio.Common.Markup.TextualMarkupDocumentWriter"/>
            <seealso cref="T:Gallio.Model.Contexts.ITestContext"/>
        </member>
        <member name="M:Gallio.Model.Contexts.StubTestContext.#ctor">
            <summary>
            Creates a stub context.
            </summary>
        </member>
        <member name="M:Gallio.Model.Contexts.StubTestContext.AddAssertCount(System.Int32)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.Contexts.StubTestContext.StartChildStep(Gallio.Model.Tree.TestStep)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.Contexts.StubTestContext.FinishStep(Gallio.Model.TestOutcome,System.Nullable{System.TimeSpan})">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.Contexts.StubTestContext.BecomeMultiThreadAware">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.Contexts.StubTestContext.AddMetadata(System.String,System.String)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.Contexts.StubTestContext.SetInterimOutcome(Gallio.Model.TestOutcome)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.Contexts.StubTestContext.Dispose">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Model.Contexts.StubTestContext.Parent">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Model.Contexts.StubTestContext.TestStep">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Model.Contexts.StubTestContext.LogWriter">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Model.Contexts.StubTestContext.LifecyclePhase">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Model.Contexts.StubTestContext.Outcome">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Model.Contexts.StubTestContext.Data">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Model.Contexts.StubTestContext.AssertCount">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Model.Contexts.StubTestContext.Result">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Model.Contexts.StubTestContext.MessageSink">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Model.Contexts.StubTestContext.IsFinished">
            <inheritdoc />
        </member>
        <member name="E:Gallio.Model.Contexts.StubTestContext.Finishing">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Model.Contexts.StubTestContextTracker">
            <summary>
            The stub context tracker is a dummy implementation of <see cref="T:Gallio.Model.Contexts.ITestContextTracker"/>
            that is used in situations where the runtime environment has not been initialized.
            </summary>
            <remarks>
            <para>
            A typical use of this stub is to support the use of certain framework methods from
            clients that are not being executed inside of the Gallio test harness such as when
            test code is run by third party tools.
            </para>
            </remarks>
        </member>
        <member name="T:Gallio.Model.Contexts.DefaultTestContextTracker">
            <summary>
            The default context tracker tracks the current context by way
            of the thread's <see cref="T:System.Threading.ExecutionContext"/> and <see cref="T:System.Runtime.Remoting.Messaging.CallContext"/>.
            </summary>
            <remarks>
            <para>
            The .Net framework ensures that this context information flows across threads
            during asynchronous callbacks, timer events and thread pool work item execution.
            </para>
            </remarks>
        </member>
        <member name="T:Gallio.Model.Contexts.ITestContextTracker">
            <summary>
            The context tracker tracks the <see cref="T:Gallio.Model.Contexts.ITestContext"/> associated with threads.
            </summary>
            <remarks>
            <para>
            All context tracker operations are thread safe.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Model.Contexts.ITestContextTracker.EnterContext(Gallio.Model.Contexts.ITestContext)">
            <summary>
            Enters a context.
            </summary>
            <param name="context">The context to enter, or null to enter a scope without a context.</param>
            <returns>A cookie that can be used to restore the current thread's context to its previous value when disposed.</returns>
        </member>
        <member name="M:Gallio.Model.Contexts.ITestContextTracker.SetThreadDefaultContext(System.Threading.Thread,Gallio.Model.Contexts.ITestContext)">
            <summary>
            Sets the default context for the specified thread.
            </summary>
            <remarks>
            <para>
            The default context for a thread is <see cref="P:Gallio.Model.Contexts.ITestContextTracker.GlobalContext"/> unless the thread's
            default context has been overridden with <see cref="M:Gallio.Model.Contexts.ITestContextTracker.SetThreadDefaultContext(System.Threading.Thread,Gallio.Model.Contexts.ITestContext)"/>.
            </para>
            <para>
            Changing the default context of a thread is useful for capturing existing threads created
            outside of a test into a particular context.  Among other things, this ensures that side-effects
            of the thread, such as writing text to the console, are recorded as part of the step
            represented by the specified context.
            </para>
            </remarks>
            <param name="thread">The thread.</param>
            <param name="context">The context to associate with the thread, or null to reset the
            thread's default context to inherit the <see cref="P:Gallio.Model.Contexts.ITestContextTracker.GlobalContext"/> once again.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="thread"/> is null.</exception>
        </member>
        <member name="M:Gallio.Model.Contexts.ITestContextTracker.GetThreadDefaultContext(System.Threading.Thread)">
            <summary>
            Gets the default context for the specified thread.
            </summary>
            <remarks>
            <para>
            The default context for a thread is <see cref="P:Gallio.Model.Contexts.ITestContextTracker.GlobalContext"/> unless the thread's
            default context has been overridden with <see cref="M:Gallio.Model.Contexts.ITestContextTracker.SetThreadDefaultContext(System.Threading.Thread,Gallio.Model.Contexts.ITestContext)"/>.
            </para>
            <para>
            Changing the default context of a thread is useful for capturing existing threads created
            outside of a test into a particular context.  Among other things, this ensures that side-effects
            of the thread, such as writing text to the console, are recorded as part of the step
            represented by the specified context.
            </para>
            </remarks>
            <param name="thread">The thread.</param>
            <returns>The default context of the thread.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="thread"/> is null.</exception>
        </member>
        <member name="P:Gallio.Model.Contexts.ITestContextTracker.CurrentContext">
            <summary>
            Gets the context of the current thread, or null if there is no
            current context.
            </summary>
            <remarks>
            <para>
            A thread's current context is determined in the following manner:
            <list type="bullet">
            <item>If the thread's context stack is not empty then the top-most item of the
            stack is used.  <see cref="M:Gallio.Model.Contexts.ITestContextTracker.EnterContext(Gallio.Model.Contexts.ITestContext)"/> pushed a new item on this stack.</item>
            <item>Otherwise, if the thread has an default context, then it is used.
            <see cref="M:Gallio.Model.Contexts.ITestContextTracker.SetThreadDefaultContext(System.Threading.Thread,Gallio.Model.Contexts.ITestContext)"/> sets the default context for a thread.</item>
            <item>Otherwise, the <see cref="P:Gallio.Model.Contexts.ITestContextTracker.GlobalContext"/> is used.</item>
            </list>
            </para>
            <para>
            Context information may flow across threads by inheritance such that a child
            thread acquires the context of its parent.  However, each thread has its own
            context stack distinct from that of any other.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Model.Contexts.ITestContextTracker.GlobalContext">
            <summary>
            Gets or the global context of the environment, or null if there is no
            such context.
            </summary>
        </member>
        <member name="M:Gallio.Model.Contexts.DefaultTestContextTracker.#ctor">
            <summary>
            Initializes the context tracker.
            </summary>
        </member>
        <member name="M:Gallio.Model.Contexts.DefaultTestContextTracker.EnterContext(Gallio.Model.Contexts.ITestContext)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.Contexts.DefaultTestContextTracker.SetThreadDefaultContext(System.Threading.Thread,Gallio.Model.Contexts.ITestContext)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.Contexts.DefaultTestContextTracker.GetThreadDefaultContext(System.Threading.Thread)">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Model.Contexts.DefaultTestContextTracker.GlobalContext">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Model.Contexts.DefaultTestContextTracker.CurrentContext">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.Contexts.StubTestContextTracker.#ctor">
            <summary>
            Creates a stub context tracker.
            </summary>
        </member>
        <member name="T:Gallio.Common.Func`1">
            <summary>
            A function with zero arguments.
            </summary>
            <typeparam name="TResult">The result type.</typeparam>
            <returns>The function result.</returns>
        </member>
        <member name="T:Gallio.Common.Func`2">
            <summary>
            A function with one argument.
            </summary>
            <typeparam name="T1">The first argument type.</typeparam>
            <typeparam name="TResult">The result type.</typeparam>
            <param name="arg1">The first argument.</param>
            <returns>The function result.</returns>
        </member>
        <member name="T:Gallio.Common.Func`3">
            <summary>
            A function with two arguments.
            </summary>
            <typeparam name="T1">The first argument type.</typeparam>
            <typeparam name="T2">The second argument type.</typeparam>
            <typeparam name="TResult">The result type.</typeparam>
            <param name="arg1">The first argument.</param>
            <param name="arg2">The second argument.</param>
            <returns>The function result.</returns>
        </member>
        <member name="T:Gallio.Common.Func`4">
            <summary>
            A function with three arguments.
            </summary>
            <typeparam name="T1">The first argument type.</typeparam>
            <typeparam name="T2">The second argument type.</typeparam>
            <typeparam name="T3">The third argument type.</typeparam>
            <typeparam name="TResult">The result type.</typeparam>
            <param name="arg1">The first argument.</param>
            <param name="arg2">The second argument.</param>
            <param name="arg3">The third argument.</param>
            <returns>The function result.</returns>
        </member>
        <member name="T:Gallio.Common.Func`5">
            <summary>
            A function with four arguments.
            </summary>
            <typeparam name="T1">The first argument type.</typeparam>
            <typeparam name="T2">The second argument type.</typeparam>
            <typeparam name="T3">The third argument type.</typeparam>
            <typeparam name="T4">The fourth argument type.</typeparam>
            <typeparam name="TResult">The result type.</typeparam>
            <param name="arg1">The first argument.</param>
            <param name="arg2">The second argument.</param>
            <param name="arg3">The third argument.</param>
            <param name="arg4">The fourth argument.</param>
            <returns>The function result.</returns>
        </member>
        <member name="T:Gallio.Framework.TestInconclusiveException">
            <summary>
            This exception type is used to signal that a test has not produced a conclusive
            pass or fail result.
            </summary>
            <remarks>
            <para>
            The exception message, if present, should explain the
            reason no conclusive result was obtained.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Framework.TestInconclusiveException.#ctor">
            <summary>
            Creates an exception.
            </summary>
        </member>
        <member name="M:Gallio.Framework.TestInconclusiveException.#ctor(System.String)">
            <summary>
            Creates an exception.
            </summary>
            <param name="message">The message.</param>
        </member>
        <member name="M:Gallio.Framework.TestInconclusiveException.#ctor(System.String,System.Exception)">
            <summary>
            Creates an exception.
            </summary>
            <param name="message">The message.</param>
            <param name="innerException">The inner exception.</param>
        </member>
        <member name="M:Gallio.Framework.TestInconclusiveException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Creates an exception from serialization info.
            </summary>
            <param name="info">The serialization info.</param>
            <param name="context">The streaming context.</param>
        </member>
        <member name="P:Gallio.Framework.TestInconclusiveException.Outcome">
            <summary>
            Returns <see cref="P:Gallio.Model.TestOutcome.Inconclusive"/>.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.Hosting.HostAssemblyResolverHook">
            <summary>
            Attaches to a <see cref="T:Gallio.Runtime.Hosting.IHost"/> to provide assembly resolution services.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Hosting.HostAssemblyResolverHook.Bootstrap(Gallio.Runtime.Hosting.IHost,System.String)">
            <summary>
            Installs an assembly resolver that provides access to the installation path
            using the <see cref="T:Gallio.Runtime.Loader.AssemblyLoaderBootstrap"/>.
            </summary>
            <remarks>
            <para>
            Does nothing if the host is local.
            </para>
            <para>
            This hook is recommended for newly created domains.
            </para>
            </remarks>
            <param name="host">The host.</param>
            <param name="runtimePath">The Gallio runtime path.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="host"/> or
            <paramref name="runtimePath"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Hosting.HostAssemblyResolverHook.InstallCallback(Gallio.Runtime.Hosting.IHost)">
            <summary>
            Installs an assembly resolver that delegates to the creating <see cref="T:System.AppDomain"/>'s
            assembly resolver to locate assemblies whenever the host is unable to find them.
            </summary>
            <remarks>
            <para>
            Does nothing if the host is local.
            </para>
            <para>
            This hook is useful for testing but should not be used in production code.
            </para>
            </remarks>
            <param name="host">The host.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="host"/> is null.</exception>
        </member>
        <member name="T:Gallio.Runtime.Hosting.IsolatedAppDomainHost">
            <summary>
            An isolated app domain host is a <see cref="T:Gallio.Runtime.Hosting.IHost"/> the runs code within an
            isolated <see cref="T:System.AppDomain"/> of this process.  Communication with the
            <see cref="T:System.AppDomain"/> occurs over an inter-<see cref="T:System.AppDomain"/> .Net
            remoting channel.
            </summary>
            <remarks>
            <para>
            The <see cref="T:Gallio.Runtime.Hosting.IsolatedAppDomainHost"/> does not support the
            <see cref="P:Gallio.Runtime.Hosting.HostConfiguration.LegacyUnhandledExceptionPolicyEnabled"/>
            option because it seems to be ignored by the .Net runtime except when set on
            the default AppDomain of the process.
            </para>
            </remarks>
        </member>
        <member name="T:Gallio.Runtime.Hosting.RemoteHost">
            <summary>
            An implementation of <see cref="T:Gallio.Runtime.Hosting.IHost"/> that communicates with a 
            <see cref="T:Gallio.Runtime.Hosting.RemoteHostService"/> that resides in a different context
            using .Net remoting.
            </summary>
            <remarks>
            <para>
            This implementation also provides a mechanism for periodically polling
            the remote service to keep it alive and to detect abrupt disconnection.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Runtime.Hosting.RemoteHost.#ctor(Gallio.Runtime.Hosting.HostSetup,Gallio.Runtime.Logging.ILogger,System.Nullable{System.TimeSpan})">
            <summary>
            Creates an uninitialized host.
            </summary>
            <param name="hostSetup">The host setup.</param>
            <param name="logger">The logger for host message output.</param>
            <param name="pingInterval">The automatic ping interval, or null if none.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="hostSetup"/>
            or <paramref name="logger"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Hosting.RemoteHost.AcquireHostService">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Hosting.RemoteHost.ReleaseHostService(Gallio.Runtime.Hosting.IHostService)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Hosting.RemoteHost.Dispose(System.Boolean)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Hosting.RemoteHost.AcquireRemoteHostService">
            <summary>
            Connects to the remote host service.
            </summary>
            <returns>The remote host service.</returns>
        </member>
        <member name="P:Gallio.Runtime.Hosting.RemoteHost.IsLocal">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Hosting.IsolatedAppDomainHost.#ctor(Gallio.Runtime.Hosting.HostSetup,Gallio.Runtime.Logging.ILogger,Gallio.Runtime.Debugging.IDebuggerManager)">
            <summary>
            Creates an uninitialized host.
            </summary>
            <param name="hostSetup">The host setup.</param>
            <param name="logger">The logger for host message output.</param>
            <param name="debuggerManager">The debugger manager.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="hostSetup"/>, <paramref name="logger"/>
            or <paramref name="debuggerManager"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Hosting.IsolatedAppDomainHost.Dispose(System.Boolean)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Hosting.IsolatedAppDomainHost.AcquireRemoteHostService">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runtime.Hosting.IsolatedProcessHost">
            <summary>
            An isolated process host is a <see cref="T:Gallio.Runtime.Hosting.IHost"/> that runs code within a
            new external process.  
            </summary>
            <remarks>
            <para>
            Communication with the external process occurs over
            an inter-process communication channel.
            </para>
            <para>
            The host application is copied to a unique temporary folder and configured
            in place according to the <see cref="T:Gallio.Runtime.Hosting.HostSetup"/>.  Then it is launched
            and connected to with inter-process communication.  The process is pinged
            periodically by the <see cref="T:Gallio.Common.Remoting.BinaryIpcClientChannel"/>.  Therefore it
            can be configured to self-terminate when it looks like the connection
            has been severed.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Runtime.Hosting.IsolatedProcessHost.#ctor(Gallio.Runtime.Hosting.HostSetup,Gallio.Runtime.Logging.ILogger,System.String)">
            <summary>
            Creates an uninitialized host.
            </summary>
            <param name="hostSetup">The host setup.</param>
            <param name="logger">The logger for host message output.</param>
            <param name="runtimePath">The runtime path where the hosting executable will be found.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="hostSetup"/> 
            <paramref name="logger"/>, or <paramref name="runtimePath"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Hosting.IsolatedProcessHost.AcquireRemoteHostService">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Hosting.IsolatedProcessHost.Dispose(System.Boolean)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Hosting.IsolatedProcessHost.CreateProcessTask(System.String,System.String,System.String)">
            <summary>
            Creates the process task to start the process.
            </summary>
            <remarks>
            <para>
            This method can be overridden to change how the process is started.
            </para>
            </remarks>
            <param name="executablePath">The executable path.</param>
            <param name="arguments">The command-line arguments.</param>
            <param name="workingDirectory">The working directory.</param>
            <returns>The process task.</returns>
        </member>
        <member name="M:Gallio.Runtime.Hosting.IsolatedProcessHost.PrepareConnection(System.String,System.String@,Gallio.Common.Func{Gallio.Common.Remoting.IClientChannel}@,Gallio.Common.Func{Gallio.Common.Remoting.IServerChannel}@)">
            <summary>
            Prepares the parameters for the remote connection.
            </summary>
            <param name="uniqueId">The unique id of the host.</param>
            <param name="hostConnectionArguments">Set to the host application arguments used to configure its server channel.</param>
            <param name="clientChannelFactory">Set to a factory used to create the local client channel.</param>
            <param name="callbackChannelFactory">Set to a factory used to create the local server channel to allow the remote host to call back to this one.</param>
        </member>
        <member name="T:Gallio.Common.Platform.DotNetRuntimeSupport">
            <summary>
            Provides support for working with different implementations of the .Net runtime.
            </summary>
        </member>
        <member name="M:Gallio.Common.Platform.DotNetRuntimeSupport.CreateReentrantProcessStartInfo(System.String,System.String)">
            <summary>
            When using _Mono, creates <see cref="T:System.Diagnostics.ProcessStartInfo"/> that re-enters the Mono runtime
            if the executable is .Net otherwise creates a standard process start info.
            </summary>
            <param name="executablePath">The executable path.</param>
            <param name="arguments">The arguments.</param>
            <returns>The process start info.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="executablePath"/>
            or <paramref name="arguments"/> is null.</exception>
        </member>
        <member name="P:Gallio.Common.Platform.DotNetRuntimeSupport.IsUsingMono">
            <summary>
            Returns true if the application is running within the Mono runtime.
            </summary>
            <remarks>
            <para>
            It is occasionally necessary to tailor the execution of the test runner
            depending on whether Mono is running. However, the number of such
            customizations should be very limited.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Common.Platform.DotNetRuntimeSupport.RuntimeType">
            <summary>
            Get the type of the .Net runtime currently executing this process.
            </summary>
        </member>
        <member name="P:Gallio.Common.Platform.DotNetRuntimeSupport.RuntimeVersion">
            <summary>
            Gets the .Net runtime version in use.
            </summary>
            <remarks>
            <para>
            The runtime version indicates the version of the virtual machine that is running.
            It cannot be used to distinguish among the .Net 2.0, 3.0 and 3.5 frameworks because
            those frameworks are just libraries that usually run on the 2.0.50727 runtime on the CLR.
            </para>
            </remarks>
            <returns>The runtime version, eg. "v2.0.50727" or "v4.0.30319"</returns>
        </member>
        <member name="P:Gallio.Common.Platform.DotNetRuntimeSupport.InstalledDotNet20RuntimeVersion">
            <summary>
            Gets the version of the installed .Net 2.0 runtime, or null if not installed.
            </summary>
            <returns>The runtime version, eg. "v2.0.50727"</returns>
        </member>
        <member name="P:Gallio.Common.Platform.DotNetRuntimeSupport.InstalledDotNet40RuntimeVersion">
            <summary>
            Gets the version of the installed .Net 4.0 runtime version, or null if not installed.
            </summary>
            <returns>The runtime version, eg. "v4.0.30319"</returns>
        </member>
        <member name="P:Gallio.Common.Platform.DotNetRuntimeSupport.MostRecentInstalledDotNetRuntimeVersion">
            <summary>
            Gets the version of the most recent installed .Net runtime version.
            </summary>
            <returns>The runtime version, eg. "v4.0.30319"</returns>
        </member>
        <member name="T:Gallio.Runtime.RuntimeException">
            <summary>
            An exception that expresses a problem performing a runtime service.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.RuntimeException.#ctor">
            <summary>
            Creates an exception.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.RuntimeException.#ctor(System.String)">
            <summary>
            Creates an exception.
            </summary>
            <param name="message">The message.</param>
        </member>
        <member name="M:Gallio.Runtime.RuntimeException.#ctor(System.String,System.Exception)">
            <summary>
            Creates an exception.
            </summary>
            <param name="message">The message.</param>
            <param name="innerException">The inner exception.</param>
        </member>
        <member name="M:Gallio.Runtime.RuntimeException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Creates an exception from serialization info.
            </summary>
            <param name="info">The serialization info.</param>
            <param name="context">The streaming context.</param>
        </member>
        <member name="T:Gallio.Runtime.Hosting.HostConfiguration">
            <summary>
            Describes the runtime configuration of a <see cref="T:Gallio.Runtime.Hosting.IHost"/>.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Hosting.HostConfiguration.#ctor">
            <summary>
            Creates a default host configuration.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Hosting.HostConfiguration.ClearSupportedRuntimeVersions">
            <summary>
            Clears the list of supported runtime versions.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Hosting.HostConfiguration.AddSupportedRuntimeVersion(System.String)">
            <summary>
            Adds a supported runtime version number if it is not already in the configuration.
            </summary>
            <param name="version">The version number, eg. "v2.0.50727".</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="version"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Hosting.HostConfiguration.RemoveSupportedRuntimeVersion(System.String)">
            <summary>
            Removes a supported runtime version number.
            </summary>
            <param name="version">The version number, eg. "v2.0.50727".</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="version"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Hosting.HostConfiguration.AddAssemblyBinding(Gallio.Common.Reflection.AssemblyBinding)">
            <summary>
            Adds a binding to the configuration for the specified assembly.
            </summary>
            <remarks>
            <para>
            Depending on how the binding is configured, this method will add an assembly dependency
            record and possibly an assembly qualification record.
            </para>
            </remarks>
            <param name="assemblyBinding">The assembly binding.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="assemblyBinding"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Hosting.HostConfiguration.ClearAssemblyDependencies">
            <summary>
            Clears the list of assembly dependencies.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Hosting.HostConfiguration.AddAssemblyDependency(Gallio.Runtime.Hosting.HostConfiguration.AssemblyDependency)">
            <summary>
            Adds an assembly dependency if it is not already in the configuration.
            </summary>
            <param name="assemblyDependency">The assembly dependency to add.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="assemblyDependency"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Hosting.HostConfiguration.AddAssemblyDependency(System.String,System.String,System.String,System.String)">
            <summary>
            Adds an assembly dependency element if a suitable one does not already exist.
            </summary>
            <param name="name">The assembly name.</param>
            <param name="publicKeyToken">The assembly public key token, or null if none.</param>
            <param name="culture">The assembly culture.</param>
            <param name="architecture">The assembly processor architecture, or null if none.</param>
            <returns>The assembly dependency element.</returns>
        </member>
        <member name="M:Gallio.Runtime.Hosting.HostConfiguration.RemoveAssemblyDependency(Gallio.Runtime.Hosting.HostConfiguration.AssemblyDependency)">
            <summary>
            Removes an assembly dependency.
            </summary>
            <param name="assemblyDependency">The assembly dependency to remove.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="assemblyDependency"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Hosting.HostConfiguration.ClearAssemblyQualifications">
            <summary>
            Clears the list of assembly qualifications.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Hosting.HostConfiguration.AddAssemblyQualification(Gallio.Runtime.Hosting.HostConfiguration.AssemblyQualification)">
            <summary>
            Adds an assembly qualification if it is not already in the configuration.
            </summary>
            <param name="assemblyQualification">The assembly qualification to add.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="assemblyQualification"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Hosting.HostConfiguration.AddAssemblyQualification(System.String,System.String)">
            <summary>
            Adds an assembly qualification element if a suitable one does not already exist.
            </summary>
            <param name="partialName">The partial name to quality.</param>
            <param name="fullName">The full name.</param>
            <returns>The assembly qualification element.</returns>
            <exception cref="T:System.InvalidOperationException">Thrown if an assembly qualification already
            exists for the same partial name but with a different full name.</exception>
        </member>
        <member name="M:Gallio.Runtime.Hosting.HostConfiguration.RemoveAssemblyQualification(Gallio.Runtime.Hosting.HostConfiguration.AssemblyQualification)">
            <summary>
            Removes an assembly qualification.
            </summary>
            <param name="assemblyQualification">The assembly qualification to remove.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="assemblyQualification"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Hosting.HostConfiguration.ToString">
            <summary>
            Overlays the <see cref="P:Gallio.Runtime.Hosting.HostConfiguration.ConfigurationXml"/> with the additional configuration
            entries necessary to enable the features described by this instance and returns
            the combined Xml configuration.
            </summary>
            <returns>The combined Xml configuration.</returns>
        </member>
        <member name="M:Gallio.Runtime.Hosting.HostConfiguration.WriteTo(System.IO.TextWriter)">
            <summary>
            Overlays the <see cref="P:Gallio.Runtime.Hosting.HostConfiguration.ConfigurationXml"/> with the additional configuration
            entries necessary to enable the features described by this instance and writes
            the combined Xml configuration to a <see cref="T:System.IO.TextWriter"/>.
            </summary>
            <param name="textWriter">The TextWriter where the Xml configuration will be written to.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="textWriter"/> is null.</exception>
            <exception cref="T:System.IO.IOException">Thrown if the configuration could not be written.</exception>
        </member>
        <member name="M:Gallio.Runtime.Hosting.HostConfiguration.WriteToFile(System.String)">
            <summary>
            Overlays the <see cref="P:Gallio.Runtime.Hosting.HostConfiguration.ConfigurationXml"/> with the additional configuration
            entries necessary to enable the features described by this instance and writes
            the combined Xml configuration to a file with the given path.
            </summary>
            <param name="path">The file path.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="path"/> is null.</exception>
            <exception cref="T:System.IO.IOException">Thrown if the configuration could not be written.</exception>
        </member>
        <member name="M:Gallio.Runtime.Hosting.HostConfiguration.Copy">
            <summary>
            Creates a copy of the host configuration information.
            </summary>
            <returns>The copy.</returns>
        </member>
        <member name="P:Gallio.Runtime.Hosting.HostConfiguration.ConfigurationXml">
            <summary>
            Gets or sets the primary Xml configuration data, or null if none.
            </summary>
            <value>
            The default value is <c>null</c>.
            </value>
        </member>
        <member name="P:Gallio.Runtime.Hosting.HostConfiguration.LegacyUnhandledExceptionPolicyEnabled">
            <summary>
            Gets or sets whether the legacy unhandled exception policy is enabled.
            </summary>
            <value>
            The default value is <c>true</c> which prevents the application from terminating
            abruptly when an unhandled exception occurs.
            </value>
        </member>
        <member name="P:Gallio.Runtime.Hosting.HostConfiguration.LoadFromRemoteSources">
            <summary>
            Gets or sets whether to allow assemblies to be loaded from remote sources on .Net 4.0.
            </summary>
            <value>
            The default value is <c>true</c> which enables loading from remote sources.
            </value>
        </member>
        <member name="P:Gallio.Runtime.Hosting.HostConfiguration.AssertUiEnabled">
            <summary>
            Gets or sets whether the <see cref="M:System.Diagnostics.Debug.Assert(System.Boolean)"/> failure dialog is enabled.
            </summary>
            <value>
            The default value is <c>false</c> which prevents the assertion dialog from appearing
            when an assertion fails.
            </value>
        </member>
        <member name="P:Gallio.Runtime.Hosting.HostConfiguration.RemotingCustomErrorsEnabled">
            <summary>
            Gets or sets whether remoting exceptions are substituted with custom errors instead
            of being passed through to the remote client.
            </summary>
            <value>
            The default value is <c>false</c> which ensures that the remote client receives
            all exception details.
            </value>
        </member>
        <member name="P:Gallio.Runtime.Hosting.HostConfiguration.AssemblyQualifications">
            <summary>
            Gets a read-only list of assembly qualifications.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.Hosting.HostConfiguration.AssemblyDependencies">
            <summary>
            Gets a read-only list of assembly dependencies.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.Hosting.HostConfiguration.SupportedRuntimeVersions">
            <summary>
            Gets a read-only list of supported runtime versions in order of preference.
            </summary>
            <remarks>
            <para>
            When the list is empty, the runtime version used to build the application is used.
            Otherwise one of the supported runtimes in the list is used.
            </para>
            <para>
            The default value is an empty list.  Each entry should start with a "v".  eg. "v2.0.50727".
            </para>
            <para>
            Note that the host factory will use the <see cref="P:Gallio.Runtime.Hosting.HostSetup.RuntimeVersion"/> property
            to determine the actual runtime used for hosting.  The purpose of this property is to
            facilitate writing configuration files with supported runtime version information keeping
            in mind that it can be ignored.
            </para>
            </remarks>
        </member>
        <member name="T:Gallio.Runtime.Hosting.HostConfiguration.AssemblyQualification">
            <summary>
            Describes an assembly name qualification configuration entry that
            maps an assembly partial name to its full name.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Hosting.HostConfiguration.AssemblyQualification.#ctor(System.String,System.String)">
            <summary>
            Creates an assembly name qualification.
            </summary>
            <param name="partialName">The assembly partial name to qualify.</param>
            <param name="fullName">The assembly full name to use.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="partialName"/>
            or <paramref name="fullName"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Hosting.HostConfiguration.AssemblyQualification.Copy">
            <summary>
            Creates a copy of the assembly qualification information.
            </summary>
            <returns>The copy.</returns>
        </member>
        <member name="P:Gallio.Runtime.Hosting.HostConfiguration.AssemblyQualification.PartialName">
            <summary>
            Gets or sets the assembly partial name to qualify.
            </summary>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runtime.Hosting.HostConfiguration.AssemblyQualification.FullName">
            <summary>
            Gets or sets the assembly full name to use.
            </summary>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="T:Gallio.Runtime.Hosting.HostConfiguration.AssemblyDependency">
            <summary>
            Describes a dependent assembly configuration entry that optionally
            specifies the codebase, a publisher policy and binding redirects.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Hosting.HostConfiguration.AssemblyDependency.#ctor(System.String)">
            <summary>
            Creates an assembly dependency.
            </summary>
            <param name="assemblyName">The assembly name.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="assemblyName"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Hosting.HostConfiguration.AssemblyDependency.Copy">
            <summary>
            Creates a copy of the assembly dependency information.
            </summary>
            <returns>The copy.</returns>
        </member>
        <member name="M:Gallio.Runtime.Hosting.HostConfiguration.AssemblyDependency.ClearAssemblyBindingRedirects">
            <summary>
            Clears the list of assembly binding redirects.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Hosting.HostConfiguration.AssemblyDependency.AddAssemblyBindingRedirect(Gallio.Runtime.Hosting.HostConfiguration.AssemblyBindingRedirect)">
            <summary>
            Adds an assembly binding redirect if it is not already in the configuration.
            </summary>
            <param name="assemblyBindingRedirect">The assembly binding redirect to add.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="assemblyBindingRedirect"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Hosting.HostConfiguration.AssemblyDependency.AddAssemblyBindingRedirect(System.String,System.String)">
            <summary>
            Adds an assembly binding redirect element if a suitable one is not already present.
            </summary>
            <param name="oldVersionRange">Th old version range.</param>
            <param name="newVersion">The new version for redirection.</param>
            <returns>The binding redirect element.</returns>
        </member>
        <member name="M:Gallio.Runtime.Hosting.HostConfiguration.AssemblyDependency.RemoveAssemblyBindingRedirect(Gallio.Runtime.Hosting.HostConfiguration.AssemblyBindingRedirect)">
            <summary>
            Removes an assembly binding redirect.
            </summary>
            <param name="assemblyBindingRedirect">The assembly binding redirect to remove.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="assemblyBindingRedirect"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Hosting.HostConfiguration.AssemblyDependency.ClearAssemblyCodeBases">
            <summary>
            Clears the list of assembly codebases.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Hosting.HostConfiguration.AssemblyDependency.AddAssemblyCodeBase(Gallio.Runtime.Hosting.HostConfiguration.AssemblyCodeBase)">
            <summary>
            Adds an assembly codebase if it is not already in the configuration.
            </summary>
            <param name="assemblyCodeBase">The assembly codebase to add.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="assemblyCodeBase"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Hosting.HostConfiguration.AssemblyDependency.RemoveAssemblyCodeBase(Gallio.Runtime.Hosting.HostConfiguration.AssemblyCodeBase)">
            <summary>
            Removes an assembly codebase.
            </summary>
            <param name="assemblyCodeBase">The assembly codebase to remove.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="assemblyCodeBase"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Hosting.HostConfiguration.AssemblyDependency.AddAssemblyCodeBase(System.String,System.String)">
            <summary>
            Adds an assembly code-base element if a suitable one is not already present.
            </summary>
            <remarks>
            <para>
            If another codebase element exists with the same version but perhaps
            a different Uri, then we do not add a new codebase since this most
            likely indicates that the same assembly can be loaded from multiple locations.
            </para>
            </remarks>
            <param name="version">The assembly version.</param>
            <param name="uri">The code base uri.</param>
            <returns>The code base element.</returns>
        </member>
        <member name="P:Gallio.Runtime.Hosting.HostConfiguration.AssemblyDependency.AssemblyName">
            <summary>
            Gets or sets assembly name.
            </summary>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runtime.Hosting.HostConfiguration.AssemblyDependency.AssemblyPublicKeyToken">
            <summary>
            Gets or sets the assembly public key token, or null if none.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.Hosting.HostConfiguration.AssemblyDependency.AssemblyCulture">
            <summary>
            Gets or sets the assembly culture, or null if none.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.Hosting.HostConfiguration.AssemblyDependency.AssemblyProcessorArchitecture">
            <summary>
            Gets or sets the assembly processor architecture, or null if none.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.Hosting.HostConfiguration.AssemblyDependency.ApplyPublisherPolicy">
            <summary>
            Gets or sets whether to apply the publisher policy for this assembly.
            </summary>
            <value>
            The default value is true.
            </value>
        </member>
        <member name="P:Gallio.Runtime.Hosting.HostConfiguration.AssemblyDependency.AssemblyBindingRedirects">
            <summary>
            Gets a read-only list of assembly binding redirect elements.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.Hosting.HostConfiguration.AssemblyDependency.AssemblyCodeBases">
            <summary>
            Gets a mutable list of assembly code base elements.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.Hosting.HostConfiguration.AssemblyBindingRedirect">
            <summary>
            Describes an assembly binding redirection from an old version range to
            a new version.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Hosting.HostConfiguration.AssemblyBindingRedirect.#ctor(System.String,System.String)">
            <summary>
            Creates an assembly binding redirect.
            </summary>
            <param name="oldVersionRange">The range of old versions to redirect, specified
            either as a single version such as "1.2.3.4" or as a range such as "1.2.3.4-10.11.12.13".</param>
            <param name="newVersion">The new version to which the binding should be redirected
            such as "1.2.3.4".</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="oldVersionRange"/>
            or <paramref name="newVersion"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Hosting.HostConfiguration.AssemblyBindingRedirect.Copy">
            <summary>
            Creates a copy of the assembly binding redirect information.
            </summary>
            <returns>The copy.</returns>
        </member>
        <member name="P:Gallio.Runtime.Hosting.HostConfiguration.AssemblyBindingRedirect.OldVersionRange">
            <summary>
            Gets or sets the range of old versions to redirect, specified
            either as a single version such as "1.2.3.4" or as a range such as "1.2.3.4-10.11.12.13"
            </summary>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runtime.Hosting.HostConfiguration.AssemblyBindingRedirect.NewVersion">
            <summary>
            Gets or sets the new version to which the binding should be redirected
            such as "1.2.3.4"
            </summary>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="T:Gallio.Runtime.Hosting.HostConfiguration.AssemblyCodeBase">
            <summary>
            Describes the location of the codebase of a particular assembly version.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Hosting.HostConfiguration.AssemblyCodeBase.#ctor(System.String,System.String)">
            <summary>
            Creates an assembly code base element.
            </summary>
            <param name="version">The assembly version to which this element applies
            such as "1.2.3.4"</param>
            <param name="uri">The Uri that specifies the location of the assembly.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="version"/>
            or <paramref name="uri"/> is null.</exception>
            <exception cref="T:System.ArgumentException">Thrown if <paramref name="uri"/> is not an absolute Uri.</exception>
            <exception cref="T:System.UriFormatException">Thrown if <paramref name="uri"/> is not a well-formed Uri.</exception>
        </member>
        <member name="M:Gallio.Runtime.Hosting.HostConfiguration.AssemblyCodeBase.Copy">
            <summary>
            Creates a copy of the assembly binding redirect information.
            </summary>
            <returns>The copy.</returns>
        </member>
        <member name="P:Gallio.Runtime.Hosting.HostConfiguration.AssemblyCodeBase.Version">
            <summary>
            Gets or sets the assembly version to which this element applies
            such as "1.2.3.4".
            </summary>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runtime.Hosting.HostConfiguration.AssemblyCodeBase.Uri">
            <summary>
            Gets or sets the Uri that specifies the location of the assembly.
            </summary>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
            <exception cref="T:System.ArgumentException">Thrown if <paramref name="value"/> is not an absolute Uri.</exception>
            <exception cref="T:System.UriFormatException">Thrown if <paramref name="value"/> is not a well-formed Uri.</exception>
        </member>
        <member name="T:Gallio.Runtime.Hosting.HostException">
            <summary>
            The type of exception thrown when hosting operations fail.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Hosting.HostException.#ctor">
            <summary>
            Creates an exception.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Hosting.HostException.#ctor(System.String)">
            <summary>
            Creates an exception.
            </summary>
            <param name="message">The message.</param>
        </member>
        <member name="M:Gallio.Runtime.Hosting.HostException.#ctor(System.String,System.Exception)">
            <summary>
            Creates an exception.
            </summary>
            <param name="message">The message.</param>
            <param name="innerException">The inner exception.</param>
        </member>
        <member name="M:Gallio.Runtime.Hosting.HostException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Creates an exception from serialization info.
            </summary>
            <param name="info">The serialization info.</param>
            <param name="context">The streaming context.</param>
        </member>
        <member name="T:Gallio.Runtime.Hosting.HostServiceChannelInterop">
            <summary>
            Provides utilities to interact with a <see cref="T:Gallio.Runtime.Hosting.RemoteHostService"/> over a <see cref="T:Gallio.Common.Remoting.IClientChannel"/>
            or <see cref="T:Gallio.Common.Remoting.IServerChannel"/>.
            </summary>
        </member>
        <member name="F:Gallio.Runtime.Hosting.HostServiceChannelInterop.ServiceName">
            <summary>
            Gets the name used to register the <see cref="T:Gallio.Runtime.Hosting.RemoteHostService"/>.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Hosting.HostServiceChannelInterop.GetRemoteHostService(Gallio.Common.Remoting.IClientChannel)">
            <summary>
            Gets a remote host service using the specified channel.
            </summary>
            <param name="channel">The channel.</param>
            <returns>The remote host service.</returns>
        </member>
        <member name="M:Gallio.Runtime.Hosting.HostServiceChannelInterop.RegisterWithChannel(Gallio.Runtime.Hosting.RemoteHostService,Gallio.Common.Remoting.IServerChannel)">
            <summary>
            Registers the host service with a channel.
            </summary>
            <param name="hostService">The remote host service.</param>
            <param name="channel">The channel.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="hostService"/> or 
            <paramref name="channel"/> is null.</exception>
        </member>
        <member name="T:Gallio.Runtime.Hosting.HostSetup">
            <summary>
            Specifies a collection of parameters for setting up a <see cref="T:Gallio.Runtime.Hosting.IHost"/>.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Hosting.HostSetup.#ctor">
            <summary>
            Creates a default host setup.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Hosting.HostSetup.ClearHintDirectories">
            <summary>
            Clears the list of hint directories.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Hosting.HostSetup.AddHintDirectory(System.String)">
            <summary>
            Adds the relative or absolute path of a hint directory if it is not already in the host setup.
            </summary>
            <remarks>
            <para>
            If relative, the path is based on the current working directory,
            so a value of "" causes the current working directory to be used.
            </para>
            <para>
            Relative paths should be canonicalized as soon as possible.
            See <see cref="M:Gallio.Runtime.Hosting.HostSetup.Canonicalize(System.String)"/>.
            </para>
            </remarks>
            <param name="directory">The directory to add.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="directory"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Hosting.HostSetup.RemoveHintDirectory(System.String)">
            <summary>
            Removes a hint directory.
            </summary>
            <param name="directory">The directory to remove.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="directory"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Hosting.HostSetup.ClearProperties">
            <summary>
            Clears the collection of properties.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Hosting.HostSetup.AddProperty(System.String,System.String)">
            <summary>
            Adds a property key/value pair.
            </summary>
            <param name="key">The property key.</param>
            <param name="value">The property value.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="key"/> or <paramref name="value"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Thrown if <paramref name="key"/> is already in the property set.</exception>
        </member>
        <member name="M:Gallio.Runtime.Hosting.HostSetup.RemoveProperty(System.String)">
            <summary>
            Removes a property key/value pair.
            </summary>
            <param name="key">The property key.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="key"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Hosting.HostSetup.Copy">
            <summary>
            Creates a copy of the host setup information.
            </summary>
            <returns>The copy.</returns>
        </member>
        <member name="M:Gallio.Runtime.Hosting.HostSetup.Canonicalize(System.String)">
            <summary>
            Makes all paths in this instance absolute.
            </summary>
            <param name="baseDirectory">The base directory for resolving relative paths,
            or null to use the current directory.</param>
        </member>
        <member name="M:Gallio.Runtime.Hosting.HostSetup.WriteTemporaryConfigurationFile">
            <summary>
            Writes a temporary configuration file for the application to disk and returns its path
            based on <see cref="P:Gallio.Runtime.Hosting.HostSetup.ConfigurationFileLocation"/>.  
            </summary>
            <remarks>
            <para>
            The file is created with a unique name each time.
            </para>
            <para>
            The file should be deleted by the caller when no longer required.
            </para>
            </remarks>
            <returns>The full path of the configuration file that was written, or null if no file was written.</returns>
            <exception cref="T:System.InvalidOperationException">Thrown if <see cref="P:Gallio.Runtime.Hosting.HostSetup.ApplicationBaseDirectory"/>
            is <c>null</c> but <see cref="P:Gallio.Runtime.Hosting.HostSetup.ConfigurationFileLocation"/> is <see cref="F:Gallio.Runtime.Hosting.ConfigurationFileLocation.AppBase"/>.</exception>
            <exception cref="T:System.IO.IOException">Thrown if the configuration file could not be written.</exception>
        </member>
        <member name="P:Gallio.Runtime.Hosting.HostSetup.Properties">
            <summary>
            Gets a read-only collection of configuration properties for the host.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.Hosting.HostSetup.ApplicationBaseDirectory">
            <summary>
            Gets or sets the relative or absolute path of the application base directory,
            or null to use a default value selected by the consumer.
            </summary>
            <remarks>
            <para>
            If relative, the path is based on the current working directory,
            so a value of "" causes the current working directory to be used.
            </para>
            <para>
            Relative paths should be canonicalized as soon as possible.
            See <see cref="M:Gallio.Runtime.Hosting.HostSetup.Canonicalize(System.String)"/>.
            </para>
            </remarks>
            <value>
            The application base directory.  Default is <c>null</c>.
            </value>
        </member>
        <member name="P:Gallio.Runtime.Hosting.HostSetup.WorkingDirectory">
            <summary>
            Gets or sets the relative or absolute path of the working directory
            or null to use a default value selected by the consumer.
            </summary>
            <remarks>
            <para>
            If relative, the path is based on the current working directory,
            so a value of "" causes the current working directory to be used.
            </para>
            <para>
            Relative paths should be canonicalized as soon as possible.
            See <see cref="M:Gallio.Runtime.Hosting.HostSetup.Canonicalize(System.String)"/>.
            </para>
            </remarks>
            <value>
            The working directory.  Default is <c>null</c>.
            </value>
        </member>
        <member name="P:Gallio.Runtime.Hosting.HostSetup.HintDirectories">
            <summary>
            Gets the read-only list of relative or absolute paths of
            hint directories used to resolve assemblies.
            </summary>
            <remarks>
            <para>
            If relative, the path is based on the current working directory,
            so a value of "" causes the current working directory to be used.
            </para>
            <para>
            Relative paths should be canonicalized as soon as possible.
            See <see cref="M:Gallio.Runtime.Hosting.HostSetup.Canonicalize(System.String)"/>.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Runtime.Hosting.HostSetup.ShadowCopy">
            <summary>
            Gets or sets whether assembly shadow copying is enabled.
            </summary>
            <value>True if shadow copying is enabled.  Default is <c>false</c>.</value>
        </member>
        <member name="P:Gallio.Runtime.Hosting.HostSetup.DebuggerSetup">
            <summary>
            Gets or sets the debugger setup options, or null if not debugging.
            </summary>
            <value>The debugger setup options.  Default is <c>null</c>.</value>
        </member>
        <member name="P:Gallio.Runtime.Hosting.HostSetup.RuntimeVersion">
            <summary>
            Gets or sets the .Net runtime version of the host, or null to auto-detect.
            </summary>
            <value>The runtime version, eg. "v2.0.50727".  Default is <c>null</c>.</value>
        </member>
        <member name="P:Gallio.Runtime.Hosting.HostSetup.Elevated">
            <summary>
            Gets or sets whether the host should run with elevated privileges.
            </summary>
            <value>True if the host should have elevated privileges.  Default is <c>false</c>.</value>
        </member>
        <member name="P:Gallio.Runtime.Hosting.HostSetup.ConfigurationFileLocation">
            <summary>
            Gets or sets where the host should write out the configuration file for the hosted components.
            </summary>
            <value>The configuration file location.  Default is <see cref="F:Gallio.Runtime.Hosting.ConfigurationFileLocation.Temp"/>.</value>
        </member>
        <member name="P:Gallio.Runtime.Hosting.HostSetup.Configuration">
            <summary>
            Gets or sets the host configuration information.
            </summary>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runtime.Hosting.HostSetup.ProcessorArchitecture">
            <summary>
            Gets or sets the processor architecture that the host should target, when supported.
            </summary>
            <value>The processor architecture.  Default is <see cref="F:System.Reflection.ProcessorArchitecture.MSIL"/></value>
        </member>
        <member name="T:Gallio.Runtime.Hosting.IsolatedAppDomainHostFactory">
            <summary>
            A factory for initialized <see cref="T:Gallio.Runtime.Hosting.IsolatedAppDomainHost"/> hosts.
            </summary>
        </member>
        <member name="F:Gallio.Runtime.Hosting.IsolatedAppDomainHostFactory.ComponentId">
            <summary>
            Gets the component Id of this factory.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Hosting.IsolatedAppDomainHostFactory.#ctor(Gallio.Runtime.Debugging.IDebuggerManager)">
            <summary>
            Creates a host factory.
            </summary>
            <param name="debuggerManager">A reference to the debugger manager.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="debuggerManager"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Hosting.IsolatedAppDomainHostFactory.CreateHostImpl(Gallio.Runtime.Hosting.HostSetup,Gallio.Runtime.Logging.ILogger)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runtime.Hosting.IsolatedProcessHostFactory">
            <summary>
            A factory for initialized <see cref="T:Gallio.Runtime.Hosting.IsolatedProcessHost"/> hosts.
            </summary>
        </member>
        <member name="F:Gallio.Runtime.Hosting.IsolatedProcessHostFactory.ComponentId">
            <summary>
            Gets the component Id of this factory.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Hosting.IsolatedProcessHostFactory.#ctor(Gallio.Runtime.IRuntime)">
            <summary>
            Creates a host factory.
            </summary>
            <param name="runtime">The runtime.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="runtime"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Hosting.IsolatedProcessHostFactory.CreateHostImpl(Gallio.Runtime.Hosting.HostSetup,Gallio.Runtime.Logging.ILogger)">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Runtime.Hosting.IsolatedProcessHostFactory.RuntimePath">
            <summary>
            Gets the path of the runtime components, in particular the folder where Gallio.Host.exe is located.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.Hosting.RemoteHostService">
            <summary>
            A remotely accessible host service.
            </summary>
            <see cref="T:Gallio.Runtime.Hosting.HostServiceChannelInterop"/>
        </member>
        <member name="M:Gallio.Runtime.Hosting.RemoteHostService.#ctor(System.Nullable{System.TimeSpan})">
            <summary>
            Creates a host service.
            </summary>
            <param name="watchdogTimeout">The maximum amount of time to wait for a ping
            before automatically disposing the host service, or null if there should be no timeout.</param>
        </member>
        <member name="M:Gallio.Runtime.Hosting.RemoteHostService.WaitUntilShutdown">
            <summary>
            Waits until the host service is shutdown or a ping timeout occurs.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Hosting.RemoteHostService.Shutdown">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Hosting.RemoteHostService.PingImpl">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Hosting.RemoteHostService.Dispose(System.Boolean)">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Runtime.Hosting.RemoteHostService.WatchdogTimerExpired">
            <summary>
            Returns true if the watchdog timer expired.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.Logging.RemoteLogger">
            <summary>
            Wraps a logger so that it can be accessed remotely.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Logging.RemoteLogger.#ctor(Gallio.Runtime.Logging.ILogger)">
            <summary>
            Creates a wrapper for the specified logger.
            </summary>
            <param name="logger">The logger.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="logger"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Logging.RemoteLogger.LogImpl(Gallio.Runtime.Logging.LogSeverity,System.String,Gallio.Common.Diagnostics.ExceptionData)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runtime.Logging.RemoteLogger.Forwarder">
            <summary>
            Forwards messages to the host's logger.
            </summary>
        </member>
        <member name="T:Gallio.Model.Contexts.TestContextTrackerAccessor">
            <summary>
            Static service locator for <see cref="T:Gallio.Model.Contexts.StubTestContextTracker"/>.
            </summary>
            <remarks>
            <para>
            Handles the case where the runtime is not initialized by returning a
            <see cref="T:Gallio.Model.Contexts.ITestContextTracker"/>.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Model.Contexts.TestContextTrackerAccessor.Instance">
            <summary>
            Gets the global test context tracker singleton.
            </summary>
        </member>
        <member name="T:Gallio.Model.Commands.DefaultTestCommandFactory">
            <summary>
            Generates test commands from a tree of tests using topological sort to
            order tests by dependencies and a test order strategy for tie-breaking.
            </summary>
        </member>
        <member name="M:Gallio.Model.Commands.DefaultTestCommandFactory.#ctor">
            <summary>
            Creates a test command factory with a default test order strategy.
            </summary>
        </member>
        <member name="M:Gallio.Model.Commands.DefaultTestCommandFactory.BuildCommands(Gallio.Model.Tree.TestModel,Gallio.Model.Filters.FilterSet{Gallio.Model.Filters.ITestDescriptor},System.Boolean,Gallio.Model.Contexts.ITestContextManager)">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Model.Commands.DefaultTestCommandFactory.TestOrderStrategy">
            <summary>
            Gets or sets the test order strategy to use when deciding how test commands
            should be sorted.
            </summary>
            <value>The test order strategy.  Defaults to <see cref="T:Gallio.Model.Commands.DefaultTestOrderStrategy"/>.</value>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="T:Gallio.Model.Filters.NameFilter`1">
            <summary>
            A filter that matches objects whose <see cref="P:Gallio.Model.Filters.ITestDescriptor.Name"/>
            matches the specified name filter.
            </summary>
        </member>
        <member name="T:Gallio.Model.Filters.PropertyFilter`1">
            <summary>
            Abstract base class for filters that encapsulate a rule
            for selecting some property of an object to be compared
            against a string value filter.
            </summary>
        </member>
        <member name="T:Gallio.Model.Filters.Filter`1">
            <summary>
            A filter is a serializable predicate.
            </summary>
            <remarks>
            <para>
            The framework uses filters to select among tests discovered through 
            the process of test enumeration.
            </para>
            <para>
            Filters must be serializable objects defined in the framework assembly
            or in plugins.  The reason is that filter definitions may need to be
            transferred across AppDomains so the filter's concrete type must be
            known to the recipient.  Filters do not implement <see cref="T:System.MarshalByRefObject"/>
            because there is no guarantee that a valid remoting context will exist
            in which to carry out the operation.  So, if you need a new filter type
            put it in a plugin.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Model.Filters.Filter`1.IsMatch(`0)">
            <summary>
            Determines whether the filter matches the value.
            </summary>
            <param name="value">The value to consider, never null.</param>
            <returns>True if the filter matches the value.</returns>
        </member>
        <member name="M:Gallio.Model.Filters.Filter`1.Accept(Gallio.Model.Filters.IFilterVisitor)">
            <summary>
            Accepts a visitor and performs double-dispatch.
            </summary>
            <param name="visitor">The visitor, never null.</param>
        </member>
        <member name="M:Gallio.Model.Filters.Filter`1.ToFilterExpr">
            <summary>
            Formats the filter to a string suitable for parsing by <see cref="T:Gallio.Model.Filters.FilterParser`1"/>.
            </summary>
            <returns>The formatted filter expression.</returns>
        </member>
        <member name="M:Gallio.Model.Filters.PropertyFilter`1.#ctor(Gallio.Model.Filters.Filter{System.String})">
            <summary>
            Creates a filter for some property by string value.
            </summary>
            <param name="valueFilter">The string value filter.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="valueFilter"/> is null.</exception>
        </member>
        <member name="M:Gallio.Model.Filters.PropertyFilter`1.Accept(Gallio.Model.Filters.IFilterVisitor)">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Model.Filters.PropertyFilter`1.Key">
            <summary>
            Gets the key that represents the filtered property.
            </summary>
        </member>
        <member name="P:Gallio.Model.Filters.PropertyFilter`1.ValueFilter">
            <summary>
            Gets the string value filter.
            </summary>
        </member>
        <member name="M:Gallio.Model.Filters.NameFilter`1.#ctor(Gallio.Model.Filters.Filter{System.String})">
            <summary>
            Creates a name filter.
            </summary>
            <param name="nameFilter">A filter for the name.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="nameFilter"/> is null.</exception>
        </member>
        <member name="M:Gallio.Model.Filters.NameFilter`1.IsMatch(`0)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.Filters.NameFilter`1.ToString">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Model.Filters.NameFilter`1.Key">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Model.Schema.AnnotationData">
            <summary>
            Describes an annotation in a portable manner for serialization.
            </summary>
            <seealso cref="T:Gallio.Model.Tree.Annotation"/>
        </member>
        <member name="M:Gallio.Model.Schema.AnnotationData.#ctor">
            <summary>
            Creates an uninitialized instance for Xml deserialization.
            </summary>
        </member>
        <member name="M:Gallio.Model.Schema.AnnotationData.#ctor(Gallio.Model.AnnotationType,Gallio.Common.Reflection.CodeLocation,Gallio.Common.Reflection.CodeReference,System.String,System.String)">
            <summary>
            Creates an annotation.
            </summary>
            <param name="type">The annotation type.</param>
            <param name="codeLocation">The code location.</param>
            <param name="codeReference">The code reference.</param>
            <param name="message">The annotation message.</param>
            <param name="details">Additional details such as exception text or null if none.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="message"/> is null.</exception>
        </member>
        <member name="M:Gallio.Model.Schema.AnnotationData.#ctor(Gallio.Model.Tree.Annotation)">
            <summary>
            Copies the contents of an annotation.
            </summary>
            <param name="source">The source annotation.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="source"/> is null.</exception>
        </member>
        <member name="M:Gallio.Model.Schema.AnnotationData.ToAnnotation">
            <summary>
            Recreates a <see cref="T:Gallio.Model.Tree.Annotation"/> object from the annotation data.
            </summary>
            <remarks>
            <para>
            Because an annotation data object does not contain all of the details of the original
            annotation some information may be lost in the round trip.
            </para>
            </remarks>
            <returns>The annotation.</returns>
        </member>
        <member name="M:Gallio.Model.Schema.AnnotationData.Log(Gallio.Runtime.Logging.ILogger,System.Boolean)">
            <summary>
            Writes the annotation to a logger for presentation.
            </summary>
            <param name="logger">The logger.</param>
            <param name="includePrefix">If true, includes an identifying prefix to describe
            the annotation type, otherwise we assume that the logger will do its own
            thing based on the log severity.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="logger"/> is null.</exception>
        </member>
        <member name="M:Gallio.Model.Schema.AnnotationData.Normalize">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Model.Schema.AnnotationData.CodeElement">
            <summary>
            Gets or sets the code element or null if none.  (not serialized)
            </summary>
        </member>
        <member name="P:Gallio.Model.Schema.AnnotationData.Type">
            <summary>
            Gets or sets the annotation type.
            </summary>
        </member>
        <member name="P:Gallio.Model.Schema.AnnotationData.CodeLocation">
            <summary>
            Gets or sets the code location associated with the annotation.
            </summary>
        </member>
        <member name="P:Gallio.Model.Schema.AnnotationData.CodeReference">
            <summary>
            Gets or sets the code reference associated with the annotation.
            </summary>
        </member>
        <member name="P:Gallio.Model.Schema.AnnotationData.Message">
            <summary>
            Gets or sets the annotation message.
            </summary>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="P:Gallio.Model.Schema.AnnotationData.Details">
            <summary>
            Gets or sets additional details such as exception text, or null if none.
            </summary>
        </member>
        <member name="T:Gallio.Runner.DefaultTestRunnerFactory">
            <summary>
            A factory for <see cref="T:Gallio.Runner.DefaultTestRunner"/>.
            </summary>
        </member>
        <member name="T:Gallio.Runner.ITestRunnerFactory">
            <summary>
            A test tunner factory is a service that creates an <see cref="T:Gallio.Runner.ITestRunner"/>
            given a set of options.
            </summary>
            <remarks>
            <para>
            Each factory has a name which is used by <see cref="T:Gallio.Runner.ITestRunnerManager"/> to select 
            the particular factory to use for a given test run.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Runner.ITestRunnerFactory.CreateTestRunner">
            <summary>
            Creates a test runner.
            </summary>
            <returns>The test runner.</returns>
        </member>
        <member name="M:Gallio.Runner.DefaultTestRunnerFactory.#ctor(Gallio.Model.Isolation.ITestIsolationProvider,Gallio.Model.ITestFrameworkManager,Gallio.Runner.Extensions.ITestRunnerExtensionManager)">
            <summary>
            Creates a test runner factory.
            </summary>
            <param name="testIsolationProvider">The test isolation provider.</param>
            <param name="testFrameworkManager">The test framework manager.</param>
            <param name="testRunnerExtensionManager">The extension manager.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="testIsolationProvider"/>
            or <paramref name="testRunnerExtensionManager"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runner.DefaultTestRunnerFactory.CreateTestRunner">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runner.DefaultTestRunnerManager">
            <summary>
            The default implementation of <see cref="T:Gallio.Runner.ITestRunnerManager"/>.
            </summary>
        </member>
        <member name="T:Gallio.Runner.ITestRunnerManager">
            <summary>
            A test runner manager enumerates the names of the
            <see cref="T:Gallio.Runner.ITestRunnerFactory"/> services that are available and
            provides a mechanism for creating <see cref="T:Gallio.Runner.ITestRunner"/> instances.
            </summary>
        </member>
        <member name="M:Gallio.Runner.ITestRunnerManager.GetFactory(System.String)">
            <summary>
            Gets the factory by name, or null if none.
            </summary>
            <param name="factoryName">The name of the test runner factory, matched case-insensitively.</param>
            <returns>The test runner.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="factoryName"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runner.ITestRunnerManager.CreateTestRunner(System.String)">
            <summary>
            Creates a test runner.
            </summary>
            <param name="factoryName">The name of the test runner factory, matched case-insensitively.</param>
            <returns>The test runner.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="factoryName"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runner.ITestRunnerManager.TestRunnerFactoryHandles">
            <summary>
            Gets handles for all registered test runner factories.
            </summary>
        </member>
        <member name="M:Gallio.Runner.DefaultTestRunnerManager.#ctor(Gallio.Runtime.Extensibility.ComponentHandle{Gallio.Runner.ITestRunnerFactory,Gallio.Runner.TestRunnerFactoryTraits}[])">
            <summary>
            Creates a test runner manager.
            </summary>
            <param name="factoryHandles">The factory handles.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="factoryHandles"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runner.DefaultTestRunnerManager.GetFactory(System.String)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runner.DefaultTestRunnerManager.CreateTestRunner(System.String)">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Runner.DefaultTestRunnerManager.TestRunnerFactoryHandles">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runner.Reports.ReportContainerUtils">
            <summary>
            Utilities for working with <see cref="T:Gallio.Runner.Reports.IReportContainer"/>.
            </summary>
        </member>
        <member name="M:Gallio.Runner.Reports.ReportContainerUtils.CopyToReport(Gallio.Runner.Reports.IReportContainer,System.String,System.String)">
            <summary>
            Recursively copies files and folders from the source path in the native
            file system to the destination path within the report container.
            </summary>
            <param name="container">The container.</param>
            <param name="sourcePathInFileSystem">The source file or directory path in the native file system.</param>
            <param name="destPathInContainer">The destination file or directory path in the report container.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="container"/>,
            <paramref name="sourcePathInFileSystem"/> or <paramref name="destPathInContainer"/> is null.</exception>
        </member>
        <member name="T:Gallio.Runner.Reports.Schema.TestOutcomeSummary">
            <summary>
            Describes the number of test cases with a particular <see cref="T:Gallio.Model.TestOutcome"/>.
            </summary>
            <seealso cref="T:Gallio.Model.TestOutcome"/>
        </member>
        <member name="P:Gallio.Runner.Reports.Schema.TestOutcomeSummary.Outcome">
            <summary>
            Gets or sets the outcome.
            </summary>
        </member>
        <member name="P:Gallio.Runner.Reports.Schema.TestOutcomeSummary.Count">
            <summary>
            Gets or sets the number of test cases with the specified outcome.
            </summary>
        </member>
        <member name="T:Gallio.Runner.StandardTestRunnerFactoryNames">
            <summary>
            Provides constant names for the standard test runner factories.
            </summary>
        </member>
        <member name="F:Gallio.Runner.StandardTestRunnerFactoryNames.Local">
            <summary>
            Runs the test runner in the local AppDomain.
            </summary>
            <remarks>
            <para>
            This is is usually the default mode because tests typically
            run inside of isolated AppDomains of their own nested within
            the test runner.
            </para>
            </remarks>
        </member>
        <member name="F:Gallio.Runner.StandardTestRunnerFactoryNames.IsolatedAppDomain">
            <summary>
            Runs the test runner in an isolated AppDomain of the current process.
            </summary>
        </member>
        <member name="F:Gallio.Runner.StandardTestRunnerFactoryNames.IsolatedProcess">
            <summary>
            Runs the test runner in an isolated process.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.RuntimeBootstrap">
            <summary>
            Initializes and shuts down the runtime.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.RuntimeBootstrap.Initialize(Gallio.Runtime.RuntimeSetup,Gallio.Runtime.Logging.ILogger)">
            <summary>
            Initializes the runtime.
            </summary>
            <remarks>
            <para>
            Loads plugins and initalizes the runtime component model.  The
            specifics of the system can be configured by editing the appropriate
            *.plugin files to register new components and facilities as required.
            </para>
            </remarks>
            <param name="setup">The runtime setup parameters.</param>
            <param name="logger">The logger to attach, or null if none.</param>
            <returns>An object that when disposed automatically calls <see cref="M:Gallio.Runtime.RuntimeBootstrap.Shutdown"/>.
            This is particularly useful in combination with the C# "using" statement
            or its equivalent.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="setup"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Thrown if the runtime has already been initialized.</exception>
        </member>
        <member name="M:Gallio.Runtime.RuntimeBootstrap.Shutdown">
            <summary>
            Shuts down the runtime if it is currently initialized.
            </summary>
            <remarks>
            <para>
            Does nothing if the runtime has not been initialized.
            </para>
            </remarks>
        </member>
        <member name="T:Gallio.Common.Platform.ProcessSupport">
            <summary>
            Provides support for working with different process execution models.
            </summary>
        </member>
        <member name="P:Gallio.Common.Platform.ProcessSupport.Is32BitProcess">
            <summary>
            Returns true if the current process is running in 32bit mode.
            </summary>
        </member>
        <member name="P:Gallio.Common.Platform.ProcessSupport.Is64BitProcess">
            <summary>
            Returns true if the current process is running in 64bit mode.
            </summary>
        </member>
        <member name="P:Gallio.Common.Platform.ProcessSupport.ProcessType">
            <summary>
            Gets the process type of the current process.
            </summary>
        </member>
        <member name="P:Gallio.Common.Platform.ProcessSupport.ProcessIntegrityLevel">
            <summary>
            Gets the integrity level of the current process.
            </summary>
        </member>
        <member name="P:Gallio.Common.Platform.ProcessSupport.HasElevatedPrivileges">
            <summary>
            Returns true if the current process has elevated privileges.
            </summary>
        </member>
        <member name="T:Gallio.Common.Platform.DotNetFrameworkVersion">
            <summary>
            Specifies the version of the .Net framework.
            </summary>
            <seealso cref="T:Gallio.Common.Platform.DotNetFrameworkSupport"/>
        </member>
        <member name="F:Gallio.Common.Platform.DotNetFrameworkVersion.DotNet20">
            <summary>
            .Net Framework 2.0.
            </summary>
        </member>
        <member name="F:Gallio.Common.Platform.DotNetFrameworkVersion.DotNet30">
            <summary>
            .Net Framework 3.0.
            </summary>
        </member>
        <member name="F:Gallio.Common.Platform.DotNetFrameworkVersion.DotNet35">
            <summary>
            .Net Framework 3.5.
            </summary>
        </member>
        <member name="F:Gallio.Common.Platform.DotNetFrameworkVersion.DotNet40">
            <summary>
            .Net Framework 4.0.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.DefaultRuntime">
            <summary>
            Default implementation of <see cref="T:Gallio.Runtime.IRuntime"/>.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.IRuntime">
            <summary>
            The runtime is instantiated within the test runner to provide a suitable
            hosting environment for test enumeration and execution.
            </summary>
            <remarks>
            <para>
            The runtime provides services to support the Gallio test automation platform.
            New services are typically registered by adding them to plugin configuration
            files.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Runtime.IRuntime.Initialize">
            <summary>
            Initializes the runtime.
            </summary>
            <exception cref="T:Gallio.Runtime.RuntimeException">Thrown if the runtime could not be initialized.</exception>
        </member>
        <member name="M:Gallio.Runtime.IRuntime.GetRuntimeSetup">
            <summary>
            Gets a deep copy of the runtime setup used to configure this runtime.
            </summary>
            <returns>The runtime setup.</returns>
        </member>
        <member name="M:Gallio.Runtime.IRuntime.GetAllPluginAssemblyBindings">
            <summary>
            Gets the list of all plugin assembly bindings.
            </summary>
            <returns>The assembly bindings.</returns>
        </member>
        <member name="M:Gallio.Runtime.IRuntime.VerifyInstallation">
            <summary>
            Verifies that the runtime is correctly installed.  Writes details to the log.
            </summary>
            <returns>True if the installation appears ok.</returns>
        </member>
        <member name="M:Gallio.Runtime.IRuntime.AddLogListener(Gallio.Runtime.Logging.ILogger)">
            <summary>
            Adds a log listener that will receive log messages dispatched to the runtime logger.
            </summary>
            <param name="logger">The log listener to add.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="logger"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.IRuntime.RemoveLogListener(Gallio.Runtime.Logging.ILogger)">
            <summary>
            Removes a log listener so that it will no longer receive log messages dispatched to the runtime logger.
            </summary>
            <param name="logger">The log listener to remove.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="logger"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runtime.IRuntime.Registry">
            <summary>
            Gets the plugin, service and component registry.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.IRuntime.ServiceLocator">
            <summary>
            Gets the service locator.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.IRuntime.ResourceLocator">
            <summary>
            Gets the resource locator.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.IRuntime.Logger">
            <summary>
            Gets the runtime logger.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.IRuntime.AssemblyLoader">
            <summary>
            Gets the runtime assembly loader.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.IRuntime.RuntimeConditionContext">
            <summary>
            Gets the condition context that is used to enable or disable plugins,
            components and services based on characteristics of the runtime environment.
            </summary>
        </member>
        <member name="E:Gallio.Runtime.IRuntime.LogMessage">
            <summary>
            An event that is fired when a log message is sent to the runtime logger.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.DefaultRuntime.#ctor(Gallio.Runtime.Extensibility.IRegistry,Gallio.Runtime.Extensibility.IPluginLoader,Gallio.Runtime.Loader.IAssemblyLoader,Gallio.Runtime.RuntimeSetup)">
            <summary>
            Initializes the runtime.
            </summary>
            <param name="registry">The registry.</param>
            <param name="pluginLoader">The plugin loader.</param>
            <param name="assemblyLoader">The assembly loader.</param>
            <param name="runtimeSetup">The runtime setup options.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="registry"/>,
            <paramref name="pluginLoader"/>, <paramref name="assemblyLoader"/> or
            <paramref name="runtimeSetup"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.DefaultRuntime.Dispose">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.DefaultRuntime.Initialize">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.DefaultRuntime.GetRuntimeSetup">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.DefaultRuntime.GetAllPluginAssemblyBindings">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.DefaultRuntime.VerifyInstallation">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.DefaultRuntime.AddLogListener(Gallio.Runtime.Logging.ILogger)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.DefaultRuntime.RemoveLogListener(Gallio.Runtime.Logging.ILogger)">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Runtime.DefaultRuntime.Registry">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Runtime.DefaultRuntime.ServiceLocator">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Runtime.DefaultRuntime.ResourceLocator">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Runtime.DefaultRuntime.Logger">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Runtime.DefaultRuntime.AssemblyLoader">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Runtime.DefaultRuntime.RuntimeConditionContext">
            <inheritdoc />
        </member>
        <member name="E:Gallio.Runtime.DefaultRuntime.LogMessage">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runtime.Security.DefaultElevationManager">
            <summary>
            Default implementation of <see cref="T:Gallio.Runtime.Security.IElevationManager"/>.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.Security.IElevationManager">
            <summary>
            Provides privilege elevation services to perform tasks that require administrative rights.
            </summary>
            <remarks>
            <para>
            This service interacts with the OS to determine whether the current user has administrative
            rights and to prompt for elevation when required.  For example, on Windows Vista this may
            result in the appearance of a UAC dialog.
            </para>
            <para>
            Windows does not support privilege elevation in process.  Consequently the requested tasks
            may be performed in a separate process when required.  Parameters and results are
            serialized and communicated with the foreign process via .Net serialization.
            </para>
            <para>
            Since acquiring an elevation context may require prompting the user, they should
            be used sparingly and in a reasonably coarse-grained manner (without compromising
            security by running everything in an elevation context).
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Runtime.Security.IElevationManager.TryElevate(Gallio.Runtime.Security.ElevationAction,System.String)">
            <summary>
            Acquires a context for performing elevated commands.
            </summary>
            <remarks>
            <para>
            Provides the action with an elevation context for executing elevated commands.
            Note that the action itself does not run with elevated privileges.
            </para>
            </remarks>
            <param name="elevationAction">An action to be provided with an elevation context
            within which elevated commands may be invoked.</param>
            <param name="reason">Specifies the reason an elevation is required.  The
            reason may be displayed to the user to explain the purpose of the request.</param>
            <returns>True if the elevation context was acquired and the action completed
            successfully, false if the action failed or elevation was forbidden by the user or by the
            operating system.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="reason"/>
            or <paramref name="elevationAction"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runtime.Security.IElevationManager.HasElevatedPrivileges">
            <summary>
            Returns true if the user of the current process has elevated privileges.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Security.DefaultElevationManager.#ctor(Gallio.Runtime.IRuntime)">
            <summary>
            Creates an elevation manager.
            </summary>
            <param name="runtime">The runtime, not null.</param>
        </member>
        <member name="M:Gallio.Runtime.Security.DefaultElevationManager.TryElevate(Gallio.Runtime.Security.ElevationAction,System.String)">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Runtime.Security.DefaultElevationManager.HasElevatedPrivileges">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runtime.Security.IElevationContext">
            <summary>
            Provides a context within which commands may be executed with elevated privileges.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Security.IElevationContext.Execute(System.String,System.Object,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
            <summary>
            Executes an elevated command.
            </summary>
            <param name="elevatedCommandId">The command id.</param>
            <param name="arguments">The command arguments, must be null or serializable.</param>
            <param name="progressMonitor">The progress monitor.</param>
            <returns>The command result.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="elevatedCommandId"/>
            or <paramref name="progressMonitor"/> is null.</exception>
        </member>
        <member name="T:Gallio.Runtime.Security.ElevationAction">
            <summary>
            Performs an action using an elevation context.
            </summary>
            <param name="context">The elevation context, not null.</param>
            <returns>True if the action completed successfully.</returns>
        </member>
        <member name="T:Gallio.Common.Security.Impersonation">
            <summary>
            Impersonate a user according to the specified credentials.
            </summary>
            <remarks>
            <para>
            Ref. <a href="http://support.microsoft.com/default.aspx?scid=kb;en-us;Q306158#4">Microsoft Help and Support</a>.
            </para>
            </remarks>
            <example>
            <code><![CDATA[
            using (Impersonation("User", "Domain", "Pa$$w0rd"))
            {
                // Some code to run as the specified user...
            }
            ]]></code>
            </example>
        </member>
        <member name="M:Gallio.Common.Security.Impersonation.#ctor(System.String,System.String,System.String)">
            <summary>
            Starts the impersonation process. 
            </summary>
            <param name="userName">The name of the user to impersonate.</param>
            <param name="domain">The domain where the user is defined.</param>
            <param name="password">The password.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="userName"/>, <paramref name="domain"/>, 
            or <paramref name="password"/> is null.</exception>
            <exception cref="T:System.ComponentModel.Win32Exception">Thrown when the impersonation process has failed.</exception>
        </member>
        <member name="M:Gallio.Common.Security.Impersonation.Dispose">
            <summary>
             Stops the impersonation process.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.Security.NamespaceDoc">
            <summary>
            The Gallio.Runtime.Security namespace contains types for managing permissions
            and performing privilege elevation on demand.
            </summary>
        </member>
        <member name="T:Gallio.Common.Security.ImpersonationException">
            <summary>
            An exception that expresses a problem while trying to impersonata user account.
            </summary>
        </member>
        <member name="M:Gallio.Common.Security.ImpersonationException.#ctor">
            <summary>
            Creates an exception.
            </summary>
        </member>
        <member name="M:Gallio.Common.Security.ImpersonationException.#ctor(System.String)">
            <summary>
            Creates an exception.
            </summary>
            <param name="message">The message.</param>
        </member>
        <member name="M:Gallio.Common.Security.ImpersonationException.#ctor(System.String,System.Exception)">
            <summary>
            Creates an exception.
            </summary>
            <param name="message">The message.</param>
            <param name="innerException">The inner exception.</param>
        </member>
        <member name="M:Gallio.Common.Security.ImpersonationException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Creates an exception from serialization info.
            </summary>
            <param name="info">The serialization info.</param>
            <param name="context">The streaming context.</param>
        </member>
        <member name="T:Gallio.Runtime.UtilityCommands.ClearCurrentUserPluginCacheUtilityCommand">
            <summary>
            A utility command to clear the current user's plugin metadata cache.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.UtilityCommands.ClearCurrentUserPluginCacheUtilityCommand.Execute(Gallio.Runtime.UtilityCommands.UtilityCommandContext,System.Object)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runtime.UtilityCommands.BaseReportTransformationUtilityCommand`1">
            <summary>
            A utility command to load an XML test report and save
            </summary>
        </member>
        <member name="M:Gallio.Runtime.UtilityCommands.BaseReportTransformationUtilityCommand`1.Execute(Gallio.Runtime.UtilityCommands.UtilityCommandContext,`0)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.UtilityCommands.BaseReportTransformationUtilityCommand`1.ExecuteImpl">
            <summary>
            Executes the command.
            </summary>
            <returns>True if the execution was successful; otherwise, false.</returns>
        </member>
        <member name="M:Gallio.Runtime.UtilityCommands.BaseReportTransformationUtilityCommand`1.LoadReport(System.String,System.String,Gallio.Runner.Reports.Schema.Report@)">
            <summary>
            Loads the specified report.
            </summary>
            <param name="inputPath"></param>
            <param name="inputName"></param>
            <param name="report"></param>
            <returns></returns>
        </member>
        <member name="M:Gallio.Runtime.UtilityCommands.BaseReportTransformationUtilityCommand`1.SaveReport(Gallio.Runner.Reports.Schema.Report,Gallio.Runner.Reports.ReportArchive,System.String,System.String,Gallio.Common.Func{System.String},Gallio.Runner.Reports.ReportFormatterOptions)">
            <summary>
            Saves the specified report.
            </summary>
            <param name="report"></param>
            <param name="reportArchive"></param>
            <param name="formatterName"></param>
            <param name="outputPath"></param>
            <param name="getOutputName"></param>
            <param name="options"></param>
            <returns></returns>
        </member>
        <member name="M:Gallio.Runtime.UtilityCommands.BaseReportTransformationUtilityCommand`1.ParseOptions(System.String[])">
            <summary>
            Parses the key/value array of property strings and build an option bag for the report formatter from them.
            </summary>
            <param name="properties">Key/value array of property strings</param>
            <returns>The report formatter options.</returns>
        </member>
        <member name="M:Gallio.Runtime.UtilityCommands.BaseReportTransformationUtilityCommand`1.CaptureFileException``1(Gallio.Common.Func{System.String},Gallio.Common.Func{``0})">
            <summary>
            Try-function which executes the specified action and catch any file-related exception.
            </summary>
            <typeparam name="T">The type of the result returned by the function.</typeparam>
            <param name="getErrorMessage">The error message to log.</param>
            <param name="func"></param>
            <returns></returns>
        </member>
        <member name="P:Gallio.Runtime.UtilityCommands.BaseReportTransformationUtilityCommand`1.Context">
            <summary>
            Gets the context of the current utility command.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.UtilityCommands.BaseReportTransformationUtilityCommand`1.Args">
            <summary>
            Gets the arguments of the command.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.UtilityCommands.BaseReportTransformationUtilityCommand`1.ReportManager">
            <summary>
            Gets the report manager.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.UtilityCommands.MergeReportsUtilityCommand">
            <summary>
            A utility command to merge several XML test reports.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.UtilityCommands.MergeReportsUtilityCommand.ExecuteImpl">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runtime.UtilityCommands.MergeReportsUtilityCommand.Arguments">
            <summary>
            The arguments for the command.
            </summary>
        </member>
        <member name="F:Gallio.Runtime.UtilityCommands.MergeReportsUtilityCommand.Arguments.ReportPaths">
            <summary>
            The path of the input test reports.
            </summary>
        </member>
        <member name="F:Gallio.Runtime.UtilityCommands.MergeReportsUtilityCommand.Arguments.ReportNameFormat">
            <summary>
            The format of the output report name.
            </summary>
        </member>
        <member name="F:Gallio.Runtime.UtilityCommands.MergeReportsUtilityCommand.Arguments.ReportOutput">
            <summary>
            The path of the output report (optiona).
            </summary>
        </member>
        <member name="F:Gallio.Runtime.UtilityCommands.MergeReportsUtilityCommand.Arguments.ReportArchive">
            <summary>
            Pack the resulting report in a compressed archive (optional).
            </summary>
        </member>
        <member name="F:Gallio.Runtime.UtilityCommands.MergeReportsUtilityCommand.Arguments.ReportType">
            <summary>
            The type of the output report.
            </summary>
        </member>
        <member name="F:Gallio.Runtime.UtilityCommands.MergeReportsUtilityCommand.Arguments.ReportFormatterProperties">
            <summary>
            Key/Value property for the report formatter.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.UtilityCommands.FormatReportUtilityCommand">
            <summary>
            A utility command to load an XML test report and save
            </summary>
        </member>
        <member name="M:Gallio.Runtime.UtilityCommands.FormatReportUtilityCommand.ExecuteImpl">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runtime.UtilityCommands.FormatReportUtilityCommand.Arguments">
            <summary>
            The arguments for the command.
            </summary>
        </member>
        <member name="F:Gallio.Runtime.UtilityCommands.FormatReportUtilityCommand.Arguments.ReportPath">
            <summary>
            The format of the output report name.
            </summary>
        </member>
        <member name="F:Gallio.Runtime.UtilityCommands.FormatReportUtilityCommand.Arguments.ReportNameFormat">
            <summary>
            The format of the output report name.
            </summary>
        </member>
        <member name="F:Gallio.Runtime.UtilityCommands.FormatReportUtilityCommand.Arguments.ReportOutput">
            <summary>
            The path of the output report (optiona).
            </summary>
        </member>
        <member name="F:Gallio.Runtime.UtilityCommands.FormatReportUtilityCommand.Arguments.ReportArchive">
            <summary>
            Pack the resulting report in a compressed archive (optional).
            </summary>
        </member>
        <member name="F:Gallio.Runtime.UtilityCommands.FormatReportUtilityCommand.Arguments.ReportType">
            <summary>
            The type of the output report.
            </summary>
        </member>
        <member name="F:Gallio.Runtime.UtilityCommands.FormatReportUtilityCommand.Arguments.ReportFormatterProperties">
            <summary>
            Key/Value property for the report formatter.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.UtilityCommands.ResetInstallationIdElevatedCommand">
            <summary>
            An elevated command used for resetting the installation id.
            </summary>
        </member>
        <member name="F:Gallio.Runtime.UtilityCommands.ResetInstallationIdElevatedCommand.ElevatedCommandId">
            <summary>
            The id of this elevated command.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.UtilityCommands.ResetInstallationIdElevatedCommand.#ctor">
            <summary>
            Initializes the command.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.UtilityCommands.ResetInstallationIdElevatedCommand.Execute(Gallio.Runtime.UtilityCommands.ResetInstallationIdElevatedCommand.Arguments,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runtime.UtilityCommands.ResetInstallationIdElevatedCommand.Arguments">
            <summary>
            Arguments for the command.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.UtilityCommands.ResetInstallationIdUtilityCommand">
            <summary>
            A utility command to reset the installation id.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.UtilityCommands.ResetInstallationIdUtilityCommand.#ctor(Gallio.Runtime.Security.IElevationManager)">
            <summary>
            Creates the command.
            </summary>
            <param name="elevationManager">The elevation manager, not null.</param>
        </member>
        <member name="M:Gallio.Runtime.UtilityCommands.ResetInstallationIdUtilityCommand.Execute(Gallio.Runtime.UtilityCommands.UtilityCommandContext,System.Object)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runtime.UtilityCommands.DefaultUtilityCommandManager">
            <summary>
            The default utility command manager implementation.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.UtilityCommands.IUtilityCommandManager">
            <summary>
            Provides services for managing utility commands.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.UtilityCommands.IUtilityCommandManager.GetCommand(System.String)">
            <summary>
            Gets the utility command with the specified name ignoring case, or null if not registered.
            </summary>
            <param name="name">The command name.</param>
            <returns>The command.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="name"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runtime.UtilityCommands.IUtilityCommandManager.CommandHandles">
            <summary>
            Gets handles for all registered utility commands.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.UtilityCommands.DefaultUtilityCommandManager.#ctor(Gallio.Runtime.Extensibility.ComponentHandle{Gallio.Runtime.UtilityCommands.IUtilityCommand,Gallio.Runtime.UtilityCommands.UtilityCommandTraits}[])">
            <summary>
            Creates a utility command manager.
            </summary>
            <param name="commandHandles">The command handles, not null.</param>
        </member>
        <member name="M:Gallio.Runtime.UtilityCommands.DefaultUtilityCommandManager.GetCommand(System.String)">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Runtime.UtilityCommands.DefaultUtilityCommandManager.CommandHandles">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runtime.UtilityCommands.NamespaceDoc">
            <summary>
            The Gallio.Runtime.UtilityCommands namespace contains types for defining
            an extensible set of utility commands that can be invoked from the
            Gallio.Utility.exe application.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.UtilityCommands.UtilityCommandContext">
            <summary>
            Describes the execution context of a utility command and allows it
            to interact with the environment.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.UtilityCommands.UtilityCommandContext.#ctor(System.Object,Gallio.Runtime.ConsoleSupport.IRichConsole,Gallio.Runtime.Logging.ILogger,Gallio.Runtime.ProgressMonitoring.IProgressMonitorProvider,Gallio.Runtime.Logging.Verbosity)">
            <summary>
            Creates a utility command context.
            </summary>
            <param name="arguments">The parsed command line arguments.</param>
            <param name="console">The console.</param>
            <param name="logger">The logger.</param>
            <param name="progressMonitorProvider">The progress monitor provider.</param>
            <param name="verbosity">The verbosity.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="arguments"/>,
            <paramref name="console"/>, <paramref name="logger"/> or <paramref name="progressMonitorProvider"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runtime.UtilityCommands.UtilityCommandContext.Arguments">
            <summary>
            Gets the parsed command-line arguments.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.UtilityCommands.UtilityCommandContext.Console">
            <summary>
            Gets the console.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.UtilityCommands.UtilityCommandContext.Logger">
            <summary>
            Get the logger for writing messages to the console colored and
            filtered by severity.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.UtilityCommands.UtilityCommandContext.ProgressMonitorProvider">
            <summary>
            Gets the progress monitor provider for obtaining console progress monitors,
            or a null progress monitor provider if progress monitoring has been disabled.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.UtilityCommands.UtilityCommandContext.Verbosity">
            <summary>
            Gets the verbosity requested by the user.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.UtilityCommands.UtilityCommandTraits">
            <summary>
            Provides traits for <see cref="T:Gallio.Runtime.UtilityCommands.IUtilityCommand"/>.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.UtilityCommands.UtilityCommandTraits.#ctor(System.String,System.String)">
            <summary>
            Creates utility command traits.
            </summary>
            <param name="name">The unique name of the utility command.</param>
            <param name="description">The description of the utility command.</param>
        </member>
        <member name="P:Gallio.Runtime.UtilityCommands.UtilityCommandTraits.Name">
            <summary>
            Gets the unique name of the utility command.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.UtilityCommands.UtilityCommandTraits.Description">
            <summary>
            Gets the description of the utility command.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.UtilityCommands.VerifyInstallationUtilityCommand">
            <summary>
            A utility command to verify that the plugin metadata and installation parameters are correct.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.UtilityCommands.VerifyInstallationUtilityCommand.#ctor(Gallio.Runtime.IRuntime)">
            <summary>
            Creates the command.
            </summary>
            <param name="runtime">The runtime, not null.</param>
        </member>
        <member name="M:Gallio.Runtime.UtilityCommands.VerifyInstallationUtilityCommand.Execute(Gallio.Runtime.UtilityCommands.UtilityCommandContext,System.Object)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runtime.Extensibility.Schema.Assembly">
            <summary>
            Describes an assembly used by a plugin and how the loader should bind to it.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.Schema.Assembly.#ctor">
            <summary>
            Creates an uninitialized assembly reference for XML deserialization.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.Schema.Assembly.#ctor(System.String)">
            <summary>
            Creates an assembly reference.
            </summary>
            <param name="fullName">The assembly full name.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="fullName"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.Schema.Assembly.Validate">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Runtime.Extensibility.Schema.Assembly.FullName">
            <summary>
            Gets or sets the assembly full name.
            </summary>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.Schema.Assembly.CodeBase">
            <summary>
            Gets or sets the assembly code base as a relative path to the plugin
            base directory or to the 'bin' directory within, or null if none.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.Schema.Assembly.QualifyPartialName">
            <summary>
            Gets or sets whether the assembly full name should be used to qualify all partial
            name references to the assembly.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.Schema.Assembly.ApplyPublisherPolicy">
            <summary>
            Gets or sets whether to apply the assembly publisher policy.  Default is <c>true</c>.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.Schema.Assembly.BindingRedirects">
            <summary>
            Gets the mutable list of assembly binding redirects.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.Extensibility.Schema.Cache">
            <summary>
            Describes a plugin cache file.
            </summary>
            <remarks>
            <para>
            This type supports the framework and is not intended to be used by client code.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.Schema.Cache.#ctor">
            <summary>
            Creates an empty cache.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.Schema.Cache.Validate">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Runtime.Extensibility.Schema.Cache.InstallationId">
            <summary>
            Gets or sets the installation id of the Gallio installation whose plugin information has been recorded in the cache, or null if not known.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.Schema.Cache.PluginInfos">
            <summary>
            Gets the mutable list of plugin information records in the cache.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.Extensibility.Schema.Component">
            <summary>
            Represents a component descriptor in Xml.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.Schema.Component.#ctor">
            <summary>
            Creates an uninitialized component descriptor for XML deserialization.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.Schema.Component.#ctor(System.String,System.String,System.String)">
            <summary>
            Creates a component descriptor.
            </summary>
            <param name="componentId">The component id.</param>
            <param name="serviceId">The service id.</param>
            <param name="componentType">The assembly-qualified component type name.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="componentId"/>
            or <paramref name="serviceId"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.Schema.Component.Validate">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Runtime.Extensibility.Schema.Component.ComponentId">
            <summary>
            Gets or sets the component id.
            </summary>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.Schema.Component.ServiceId">
            <summary>
            Gets or sets the service id.
            </summary>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.Schema.Component.ComponentType">
            <summary>
            Gets or sets the assembly-qualified component type name, or null to use the 
            default for the service.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.Schema.Component.Parameters">
            <summary>
            Gets or sets the component parameters, or null if there are none.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.Schema.Component.Traits">
            <summary>
            Gets or sets the component traits, or null if there are none.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.Extensibility.Schema.CachePluginInfo">
            <summary>
            Describes information about a plugin whose metadata has been cached.
            </summary>
            <remarks>
            <para>
            This type supports the framework and is not intended to be used by client code.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.Schema.CachePluginInfo.Validate">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Runtime.Extensibility.Schema.CachePluginInfo.PluginFile">
            <summary>
            Gets or sets the plugin file path.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.Schema.CachePluginInfo.PluginFileModificationTime">
            <summary>
            Gets or sets the plugin file modification time stamp.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.Schema.CachePluginInfo.Plugin">
            <summary>
            Gets or sets the plugin metadata.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.Schema.CachePluginInfo.BaseDirectory">
            <summary>
            Gets or sets the plugin base directory path.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.Extensibility.Schema.BindingRedirect">
            <summary>
            Specifies an old version range for an assembly binding redirect.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.Schema.BindingRedirect.#ctor">
            <summary>
            Creates an uninitialized assembly binding redirect for XML deserialization.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.Schema.BindingRedirect.#ctor(System.String)">
            <summary>
            Creates an assembly binding redirect.
            </summary>
            <remarks>
            <para>
            Accepts a version number like "1.2.3.4" or a range like "1.0.0.0-1.1.65535.65535".
            </para>
            </remarks>
            <param name="oldVersion">The old assembly version number or range.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="oldVersion"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.Schema.BindingRedirect.Validate">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Runtime.Extensibility.Schema.BindingRedirect.OldVersion">
            <summary>
            Gets or sets the old assembly version number or range.
            </summary>
            <remarks>
            <para>
            Accepts a version number like "1.2.3.4" or a range like "1.0.0.0-1.1.65535.65535".
            </para>
            </remarks>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="T:Gallio.Runtime.Extensibility.Schema.File">
            <summary>
            Describes a file that belongs to a plugin.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.Schema.File.#ctor">
            <summary>
            Creates an uninitialized file description for XML deserialization.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.Schema.File.#ctor(System.String)">
            <summary>
            Creates a file description.
            </summary>
            <param name="path">The path of the file relative to the plugin base directory.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="path"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.Schema.File.Validate">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Runtime.Extensibility.Schema.File.Path">
            <summary>
            Gets or sets the path of the file relative to the plugin base directory.
            </summary>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="T:Gallio.Runtime.Extensibility.Schema.Dependency">
            <summary>
            Describes a dependency on another plugin.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.Schema.Dependency.#ctor">
            <summary>
            Creates an uninitialized dependency for XML deserialization.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.Schema.Dependency.#ctor(System.String)">
            <summary>
            Creates an plugin dependency reference.
            </summary>
            <param name="pluginId">The referenced plugin id.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="pluginId"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.Schema.Dependency.Validate">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Runtime.Extensibility.Schema.Dependency.PluginId">
            <summary>
            Gets or sets the referenced plugin id.
            </summary>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="T:Gallio.Runtime.Extensibility.Schema.NamespaceDoc">
            <summary>
            The Gallio.Runtime.Extensibility.Schema namespace contains the plugin Xml schema.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.Extensibility.Schema.Plugin">
            <summary>
            Represents a plugin descriptor in Xml.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.Schema.Plugin.#ctor">
            <summary>
            Creates an uninitialized plugin descriptor for XML deserialization.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.Schema.Plugin.#ctor(System.String)">
            <summary>
            Creates a plugin descriptor with an id.
            </summary>
            <param name="pluginId">The plugin id.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="pluginId"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.Schema.Plugin.Validate">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Runtime.Extensibility.Schema.Plugin.PluginId">
            <summary>
            Gets or sets the plugin id.
            </summary>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.Schema.Plugin.EnableCondition">
            <summary>
            Gets or sets a condition governing the activation of the plugin,
            or null if there is no condition.  The plugin will be disabled if a
            condition is provided but is not satisfied.
            </summary>
            <seealso cref="T:Gallio.Common.Condition"/>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.Schema.Plugin.RecommendedInstallationPath">
            <summary>
            Gets or sets the recommended installation path for the plugin files relative to
            the runtime installation directory, or null if there is no preference.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.Schema.Plugin.PluginType">
            <summary>
            Gets or sets the assembly-qualified plugin type name, or null if the default
            implementation may be used.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.Schema.Plugin.Dependencies">
            <summary>
            Gets the mutable list of plugin dependencies.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.Schema.Plugin.Files">
            <summary>
            Gets the mutable list of files that belong to a plugin.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.Schema.Plugin.Assemblies">
            <summary>
            Gets the mutable list of plugin assembly bindings.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.Schema.Plugin.Services">
            <summary>
            Gets the mutable list of services belonging to the plugin.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.Schema.Plugin.Components">
            <summary>
            Gets the mutable list of components belonging to the plugin.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.Schema.Plugin.Parameters">
            <summary>
            Gets or sets the plugin parameters, or null if there are none.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.Schema.Plugin.Traits">
            <summary>
            Gets or sets the plugin traits, or null if there are none.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.Schema.Plugin.ProbingPaths">
            <summary>
            Gets the mutable list of additional probing paths in which to
            attempt to locate referenced assemblies.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.Extensibility.Schema.KeyValueTable">
            <summary>
            Represents a table of key and value pairs as a sequence of Xml elements whose local name
            represents the key and whose text body contains the value.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.Schema.KeyValueTable.#ctor">
            <summary>
            Creates an empty key value table.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.Schema.KeyValueTable.Entries">
            <summary>
            Gets or sets the Xml elements that describe the property entries
            during serialization.
            </summary>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.Schema.KeyValueTable.PropertySet">
            <summary>
            Gets or sets a mutable view of the properties as a property set.
            </summary>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="T:Gallio.Runtime.Extensibility.Schema.Service">
            <summary>
            Represents a service descriptor in Xml.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.Schema.Service.#ctor">
            <summary>
            Creates an uninitialized service descriptor for XML deserialization.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.Schema.Service.#ctor(System.String,System.String)">
            <summary>
            Creates a service descriptor.
            </summary>
            <param name="serviceId">The service id.</param>
            <param name="serviceType">The service type.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="serviceId"/> or
            <paramref name="serviceType"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Extensibility.Schema.Service.Validate">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Runtime.Extensibility.Schema.Service.ServiceId">
            <summary>
            Gets or sets the service id.
            </summary>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.Schema.Service.ServiceType">
            <summary>
            Gets or sets the assembly-qualified service type name.
            </summary>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runtime.Extensibility.Schema.Service.DefaultComponentType">
            <summary>
            Gets or sets the assembly-qualified default component type name, or null if none.
            </summary>
        </member>
        <member name="T:Gallio.Common.Validation.ValidationException">
            <summary>
            An exception that expresses a data validation error.
            </summary>
        </member>
        <member name="M:Gallio.Common.Validation.ValidationException.#ctor">
            <summary>
            Creates an exception.
            </summary>
        </member>
        <member name="M:Gallio.Common.Validation.ValidationException.#ctor(System.String)">
            <summary>
            Creates an exception.
            </summary>
            <param name="message">The message.</param>
        </member>
        <member name="M:Gallio.Common.Validation.ValidationException.#ctor(System.String,System.Exception)">
            <summary>
            Creates an exception.
            </summary>
            <param name="message">The message.</param>
            <param name="innerException">The inner exception.</param>
        </member>
        <member name="M:Gallio.Common.Validation.ValidationException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Creates an exception from serialization info.
            </summary>
            <param name="info">The serialization info.</param>
            <param name="context">The streaming context.</param>
        </member>
        <member name="T:Gallio.Runtime.Preferences.Schema.PreferenceContainer">
            <summary>
            Represents a collection of preferences in Xml.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Preferences.Schema.PreferenceContainer.#ctor">
            <summary>
            Creates a preference container.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Preferences.Schema.PreferenceContainer.Validate">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Runtime.Preferences.Schema.PreferenceContainer.Settings">
            <summary>
            Gets the mutable list of preference settings.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.Preferences.Schema.PreferenceSetting">
            <summary>
            Represents a preference setting in Xml.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Preferences.Schema.PreferenceSetting.#ctor">
            <summary>
            Creates an uninitialized preference setting for XML deserialization.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Preferences.Schema.PreferenceSetting.#ctor(System.String,System.String)">
            <summary>
            Creates a preference setting.
            </summary>
            <param name="name">The setting name.</param>
            <param name="value">The setting value.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="name"/>
            or <paramref name="value"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Preferences.Schema.PreferenceSetting.Validate">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Runtime.Preferences.Schema.PreferenceSetting.Name">
            <summary>
            Gets or sets the preference setting name.
            </summary>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runtime.Preferences.Schema.PreferenceSetting.Value">
            <summary>
            Gets or sets the preference setting value.
            </summary>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="T:Gallio.Common.SchemaConstants">
            <summary>
            Defines constants used throughout the Gallio schema.
            </summary>
        </member>
        <member name="F:Gallio.Common.SchemaConstants.XmlNamespace">
            <summary>
            The XML namespace for all schema types.
            </summary>
        </member>
        <member name="T:Gallio.Common.Validation.ValidationUtils">
            <summary>
            Validation utilities.
            </summary>
            <remarks>
            <para>
            These utilities are not intended to be used for argument validation; use
            code that throws <see cref="T:System.ArgumentException"/> for that instead.  The validation
            utilities are intended for use by self-validating <see cref="T:Gallio.Common.Validation.IValidatable"/> objects
            that provide the ability to validate their state after construction for internal
            consistency.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Common.Validation.ValidationUtils.ValidateNotNull``1(System.String,``0)">
            <summary>
            Validates that an item is not null.
            </summary>
            <typeparam name="T">The item type.</typeparam>
            <param name="itemName">The name of the item.</param>
            <param name="item">The item to validate.</param>
        </member>
        <member name="M:Gallio.Common.Validation.ValidationUtils.ValidateAssemblyName(System.String,System.String)">
            <summary>
            Validates that an item is a valid assembly name.
            </summary>
            <param name="itemName">The name of the item.</param>
            <param name="value">The value to validate.</param>
        </member>
        <member name="M:Gallio.Common.Validation.ValidationUtils.ValidateElementsAreNotNull``1(System.String,System.Collections.Generic.IEnumerable{``0})">
            <summary>
            Validates that all items in a collection are not null.
            </summary>
            <typeparam name="T">The item type.</typeparam>
            <param name="collectionName">The name of the collection.</param>
            <param name="collection">The collection to validate.</param>
            <exception cref="T:Gallio.Common.Validation.ValidationException">Thrown if the validation fails.</exception>
        </member>
        <member name="M:Gallio.Common.Validation.ValidationUtils.ValidateAll``1(System.Collections.Generic.IEnumerable{``0})">
            <summary>
            Validates all non-null items of an enumeration of validatable elements.
            </summary>
            <typeparam name="T">The item type.</typeparam>
            <param name="collection">The items to validate.</param>
            <exception cref="T:Gallio.Common.Validation.ValidationException">Thrown if the validation fails.</exception>
        </member>
        <member name="T:Gallio.Common.Triple`3">
            <summary>
            An immutable record that holds three values.
            </summary>
            <typeparam name="TFirst">The type of the first value.</typeparam>
            <typeparam name="TSecond">The type of the second value.</typeparam>
            <typeparam name="TThird">The type of the third value.</typeparam>
        </member>
        <member name="M:Gallio.Common.Triple`3.#ctor(`0,`1,`2)">
            <summary>
            Creates a triple.
            </summary>
            <param name="first">The first value.</param>
            <param name="second">The second value.</param>
            <param name="third">The third value.</param>
        </member>
        <member name="P:Gallio.Common.Triple`3.First">
            <summary>
            Gets the first value.
            </summary>
        </member>
        <member name="P:Gallio.Common.Triple`3.Second">
            <summary>
            Gets the second value.
            </summary>
        </member>
        <member name="P:Gallio.Common.Triple`3.Third">
            <summary>
            Gets the third value.
            </summary>
        </member>
        <member name="T:Gallio.Common.IO.FileSystem">
            <summary>
             Default implementation of IFileSystem using System.IO classes.
            </summary>
        </member>
        <member name="T:Gallio.Common.IO.IFileSystem">
            <summary>
            Wrapper for static System.IO.File operations to 
            allow testing.
            </summary>
        </member>
        <member name="M:Gallio.Common.IO.IFileSystem.FileExists(System.String)">
            <summary>
             Checks if a given file exists (File.Exists).
            </summary>
            <param name="path">The path of the file.</param>
            <returns>True if the file exists, otherwise False.</returns>
        </member>
        <member name="M:Gallio.Common.IO.IFileSystem.IsPathRooted(System.String)">
            <summary>
             Checks if a path is relative or absolute (Path.IsPathRooted).
            </summary>
            <param name="path">The path to check.</param>
            <returns>True if the path is absolute, otherwise False.</returns>
        </member>
        <member name="M:Gallio.Common.IO.IFileSystem.DirectoryExists(System.String)">
            <summary>
             Checks if a directory exists (Directory.Exists)
            </summary>
            <param name="path">The location of the directory.</param>
            <returns>True if the directory exists, otherwise False.</returns>
        </member>
        <member name="M:Gallio.Common.IO.IFileSystem.CreateDirectory(System.String)">
            <summary>
             Attempts to create a directory.
            </summary>
            <param name="path">The location of the directory.</param>
        </member>
        <member name="M:Gallio.Common.IO.IFileSystem.DeleteFile(System.String)">
            <summary>
             Attempts to delete a file.
            </summary>
            <param name="path">The location of the file.</param>
        </member>
        <member name="M:Gallio.Common.IO.IFileSystem.OpenFile(System.String)">
            <summary>
             Attempts to open a file using the default program.
            </summary>
            <param name="path">The location of the file.</param>
        </member>
        <member name="M:Gallio.Common.IO.IFileSystem.OpenRead(System.String)">
             <summary>
             Opens an existing file for reading.
             </summary>
            <param name="path">The location of the file.</param>
             <returns>The content of the file as a readable stream.</returns>
        </member>
        <member name="M:Gallio.Common.IO.IFileSystem.GetFilesInDirectory(System.String,System.String,System.IO.SearchOption)">
            <summary>
            Returns a list of matching files in the specified directory.
            </summary>
            <param name="path">The directory to inspect.</param>
            <param name="searchPattern">The pattern to match files with.</param>
            <param name="searchOption">Whether to search all directories or just 
            the top-level one.</param>
            <returns>A string array of filenames.</returns>
        </member>
        <member name="M:Gallio.Common.IO.IFileSystem.CopyFile(System.String,System.String,System.Boolean)">
            <summary>
            Copies an existing file to a new file. Overwriting a file of the same name is allowed.
            </summary>
            <param name="sourceFileName">The file to copy.</param>
            <param name="destinationFileName">The name of the destination file. 
            This cannot be a directory or an existing file.</param>
            <param name="overwrite">true if the destination file can be overwritten; 
            otherwise, false.</param>
        </member>
        <member name="M:Gallio.Common.IO.IFileSystem.DeleteDirectory(System.String,System.Boolean)">
            <summary>
             Deletes the specified directory and, if indicated, 
             any subdirectories in the directory.
            </summary>
            <param name="path">The name of the directory to remove.</param>
            <param name="recursive">true to remove directories, subdirectories, 
             and files in path; otherwise, false.</param>
        </member>
        <member name="M:Gallio.Common.IO.IFileSystem.CopyDirectory(System.String,System.String)">
            <summary>
            Copy a directory and contents.
            </summary>
            <param name="sourceDirectory">The path of the directory to copy.</param>
            <param name="targetDirectory">The destination.</param>
        </member>
        <member name="M:Gallio.Common.IO.IFileSystem.ReadAllBytes(System.String)">
             <summary>
             Opens a binary file, reads the contents of the file into a byte array, and then closes the file.
             </summary>
            <param name="path">The location of the file.</param>
             <returns>The binary contents of the file.</returns>
        </member>
        <member name="M:Gallio.Common.IO.FileSystem.FileExists(System.String)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.IO.FileSystem.IsPathRooted(System.String)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.IO.FileSystem.DirectoryExists(System.String)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.IO.FileSystem.CreateDirectory(System.String)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.IO.FileSystem.DeleteFile(System.String)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.IO.FileSystem.OpenFile(System.String)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.IO.FileSystem.OpenRead(System.String)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.IO.FileSystem.GetFilesInDirectory(System.String,System.String,System.IO.SearchOption)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.IO.FileSystem.CopyFile(System.String,System.String,System.Boolean)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.IO.FileSystem.DeleteDirectory(System.String,System.Boolean)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.IO.FileSystem.CopyDirectory(System.String,System.String)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.IO.FileSystem.ReadAllBytes(System.String)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Common.Xml.IXmlSerializer">
            <summary>
             Provides Xml serialization and deserialization services.
            </summary>
        </member>
        <member name="M:Gallio.Common.Xml.IXmlSerializer.SaveToXml``1(``0,System.String)">
            <summary>
            Saves an object graph to a pretty-printed Xml file using <see cref="T:System.Xml.Serialization.XmlSerializer"/>.
            </summary>
            <param name="root">The root object.</param>
            <param name="filename">The filename.</param>
            <typeparam name="T">The root object type.</typeparam>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="root"/>
            or <paramref name="filename"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Xml.IXmlSerializer.LoadFromXml``1(System.String)">
            <summary>
            Loads an object graph from an Xml file using <see cref="T:System.Xml.Serialization.XmlSerializer"/>.
            </summary>
            <param name="filename">The filename.</param>
            <returns>The root object.</returns>
            <typeparam name="T">The root object type.</typeparam>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="filename"/> is null.</exception>
        </member>
        <member name="T:Gallio.Common.Memoizer`1">
            <summary>
            A structure that memoizes the result of some computation for later reuse.
            </summary>
            <remarks>
            <para>
            Not thread safe.
            </para>
            </remarks>
            <typeparam name="T">The value type.</typeparam>
            <example>
            <code><![CDATA[
            public class MyClass
            {
                // Do NOT put the "readonly" keyword on this field.
                // Otherwise we will not be able to modify the contents of the structure and memoization will not occur.
                private Memoizer<int> valueMemoizer = new Memoizer<int>();
                
                public int GetValue()
                {
                    return valueMemoizer.Memoize(() =>
                    {
                        // Expensive calculation here.
                        return 42;
                    });
                }
            }
            ]]></code>
            </example>
        </member>
        <member name="M:Gallio.Common.Memoizer`1.Memoize(Gallio.Common.Func{`0})">
            <summary>
            Gets the memoized value if available, otherwise populates it
            using the specified populator function and stores it for later reuse.
            </summary>
            <param name="populator">The populator.</param>
            <returns>The value returned by the populator, possibly memoized.</returns>
        </member>
        <member name="T:Gallio.Common.IO.CurrentDirectorySwitcher">
            <summary>
            Sets <see cref="P:System.Environment.CurrentDirectory"/> when created, then
            restores it when disposed.
            </summary>
        </member>
        <member name="M:Gallio.Common.IO.CurrentDirectorySwitcher.#ctor(System.String)">
            <summary>
            Saves the current directory then changes it to the specified value.
            </summary>
            <param name="directory">The new directory.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="directory"/> is null.</exception>
            <exception cref="T:System.IO.IOException">Thrown if the current directory could not be set.</exception>
        </member>
        <member name="M:Gallio.Common.IO.CurrentDirectorySwitcher.Dispose">
            <summary>
            Resets the current directory to its original saved value.
            </summary>
            <exception cref="T:System.IO.IOException">Thrown if the current directory could not be reset.</exception>
        </member>
        <member name="M:Gallio.Common.IO.CurrentDirectorySwitcher.Dispose(System.Boolean)">
            <summary>
            Resets the current directory to its original saved value if disposing.
            </summary>
            <param name="disposing">True if <see cref="M:Gallio.Common.IO.CurrentDirectorySwitcher.Dispose"/> was called directly.</param>
            <exception cref="T:System.IO.IOException">Thrown if the current directory could not be reset.</exception>
        </member>
        <member name="T:Gallio.Common.Policies.EventHandlerPolicy">
            <summary>
            Provides a few functions for working with <see cref="T:System.EventHandler"/> and
            <see cref="T:System.EventHandler`1"/> and reporting unhandled exceptions in event
            handlers safely via <see cref="T:Gallio.Common.Policies.UnhandledExceptionPolicy"/>.
            </summary>
        </member>
        <member name="M:Gallio.Common.Policies.EventHandlerPolicy.SafeInvoke(System.EventHandler,System.Object,System.EventArgs)">
            <summary>
            Safely invokes each delegate in the invocation list of an event handler.
            Sends any exceptions thrown by the handler to <see cref="M:Gallio.Common.Policies.UnhandledExceptionPolicy.Report(System.String,System.Exception)"/>.
            </summary>
            <param name="handlerChain">The event handler chain.</param>
            <param name="sender">The sender.</param>
            <param name="e">The event arguments.</param>
        </member>
        <member name="M:Gallio.Common.Policies.EventHandlerPolicy.SafeInvoke``1(System.EventHandler{``0},System.Object,``0)">
            <summary>
            Safely invokes each delegate in the invocation list of an event handler.
            Sends any exceptions thrown by the handler to <see cref="M:Gallio.Common.Policies.UnhandledExceptionPolicy.Report(System.String,System.Exception)"/>.
            </summary>
            <param name="handlerChain">The event handler chain.</param>
            <param name="sender">The sender.</param>
            <param name="e">The event arguments.</param>
        </member>
        <member name="T:Gallio.Common.KeyedMemoizer`2">
            <summary>
            A structure that memoizes the result of some computation for later reuse.
            Maintains an internal dictionary to memoize results by key.
            </summary>
            <remarks>
            <para>
            Not thread safe.
            </para>
            </remarks>
            <typeparam name="TKey">The key type.</typeparam>
            <typeparam name="TValue">The value type.</typeparam>
            <example>
            <code><![CDATA[
            public class MyClass
            {
                // Do NOT put the "readonly" keyword on this field.
                // Otherwise we will not be able to modify the contents of the structure and memoization will not occur.
                private KeyedMemoizer<string, int> valueMemoizer = new KeyedMemoizer<string, int>();
                
                public int GetValue(string key)
                {
                    return valueMemoizer.Memoize(key, () =>
                    {
                        // Expensive calculation here.
                        return 42;
                    });
                }
            }
            ]]></code>
            </example>
        </member>
        <member name="M:Gallio.Common.KeyedMemoizer`2.Memoize(`0,Gallio.Common.Func{`1})">
            <summary>
            Gets the memoized value for the given key if available, otherwise populates it
            using the specified populator function and stores it in association with its keys
            for later reuse.
            </summary>
            <param name="key">The key by which to look up a memoized result.</param>
            <param name="populator">The populator for the value associated with the key.</param>
            <returns>The value returned by the populator, possibly memoized.</returns>
        </member>
        <member name="T:Gallio.Common.Policies.UnhandledExceptionPolicy">
            <summary>
            This class provides a mechanism for reporting unhandled exceptions when the infrastructure
            is otherwise unable to deal with them locally.
            </summary>
            <remarks>
            <para>
            The methods of this class should be considered as the last resort for reporting failures
            that might otherwise cause the system to crash.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Common.Policies.UnhandledExceptionPolicy.Report(System.String,System.Exception)">
            <summary>
            Reports an unhandled exception.
            </summary>
            <param name="message">A message to explain how the exception was intercepted.</param>
            <param name="unhandledException">The unhandled exception.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="message"/> or <paramref name="unhandledException"/> is null.</exception>
        </member>
        <member name="E:Gallio.Common.Policies.UnhandledExceptionPolicy.CorrelateUnhandledException">
            <summary>
            Adds or removes an event handler that is notified when unhandled exceptions occur
            and is given a chance to add additional information the event about the
            context in which the exception occurred.
            </summary>
            <seealso cref="M:Gallio.Common.Policies.CorrelatedExceptionEventArgs.AddCorrelationMessage(System.String)"/>
        </member>
        <member name="E:Gallio.Common.Policies.UnhandledExceptionPolicy.ReportUnhandledException">
            <summary>
            Adds or removes an event handler that is notified when unhandled exceptions occur.
            </summary>
        </member>
        <member name="P:Gallio.Common.Policies.UnhandledExceptionPolicy.HasReportUnhandledExceptionHandler">
            <summary>
            Returns true if there is at least one handler registered for
            <see cref="E:Gallio.Common.Policies.UnhandledExceptionPolicy.ReportUnhandledException"/>.
            </summary>
            <remarks>
            <para>
            This property can be used to avoid duplicate exception reporting
            if some other system component has already registered a handler.
            </para>
            </remarks>
        </member>
        <member name="T:Gallio.Model.Filters.FilterFormatter">
            <summary>
            Formats filters in such manner that they can be reparsed using the
            <see cref="T:Gallio.Model.Filters.FilterParser`1"/>.
            </summary>
            <seealso cref="T:Gallio.Model.Filters.FilterParser`1"/>
        </member>
        <member name="T:Gallio.Model.Filters.IFilterVisitor">
            <summary>
            Visits the structure of filters.
            </summary>
        </member>
        <member name="M:Gallio.Model.Filters.IFilterVisitor.VisitAnyFilter``1(Gallio.Model.Filters.AnyFilter{``0})">
            <summary>
            Visits a <see cref="T:Gallio.Model.Filters.AnyFilter`1"/>.
            </summary>
            <param name="filter">The filter.</param>
        </member>
        <member name="M:Gallio.Model.Filters.IFilterVisitor.VisitNoneFilter``1(Gallio.Model.Filters.NoneFilter{``0})">
            <summary>
            Visits a <see cref="T:Gallio.Model.Filters.NoneFilter`1"/>.
            </summary>
            <param name="filter">The filter.</param>
        </member>
        <member name="M:Gallio.Model.Filters.IFilterVisitor.VisitAndFilter``1(Gallio.Model.Filters.AndFilter{``0})">
            <summary>
            Visits a <see cref="T:Gallio.Model.Filters.AndFilter`1"/>.
            </summary>
            <param name="filter">The filter.</param>
        </member>
        <member name="M:Gallio.Model.Filters.IFilterVisitor.VisitOrFilter``1(Gallio.Model.Filters.OrFilter{``0})">
            <summary>
            Visits a <see cref="T:Gallio.Model.Filters.OrFilter`1"/>.
            </summary>
            <param name="filter">The filter.</param>
        </member>
        <member name="M:Gallio.Model.Filters.IFilterVisitor.VisitNotFilter``1(Gallio.Model.Filters.NotFilter{``0})">
            <summary>
            Visits a <see cref="T:Gallio.Model.Filters.NotFilter`1"/>.
            </summary>
            <param name="filter">The filter.</param>
        </member>
        <member name="M:Gallio.Model.Filters.IFilterVisitor.VisitPropertyFilter``1(Gallio.Model.Filters.PropertyFilter{``0})">
            <summary>
            Visits a <see cref="T:Gallio.Model.Filters.PropertyFilter`1"/>.
            </summary>
            <param name="filter">The filter.</param>
        </member>
        <member name="M:Gallio.Model.Filters.IFilterVisitor.VisitEqualityFilter``1(Gallio.Model.Filters.EqualityFilter{``0})">
            <summary>
            Visits a <see cref="T:Gallio.Model.Filters.EqualityFilter`1"/>.
            </summary>
            <param name="filter">The filter.</param>
        </member>
        <member name="M:Gallio.Model.Filters.IFilterVisitor.VisitRegexFilter(Gallio.Model.Filters.RegexFilter)">
            <summary>
            Visits a <see cref="T:Gallio.Model.Filters.RegexFilter"/>.
            </summary>
            <param name="filter">The filter.</param>
        </member>
        <member name="M:Gallio.Model.Filters.FilterFormatter.VisitAnyFilter``1(Gallio.Model.Filters.AnyFilter{``0})">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.Filters.FilterFormatter.VisitNoneFilter``1(Gallio.Model.Filters.NoneFilter{``0})">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.Filters.FilterFormatter.VisitAndFilter``1(Gallio.Model.Filters.AndFilter{``0})">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.Filters.FilterFormatter.VisitOrFilter``1(Gallio.Model.Filters.OrFilter{``0})">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.Filters.FilterFormatter.VisitNotFilter``1(Gallio.Model.Filters.NotFilter{``0})">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.Filters.FilterFormatter.VisitPropertyFilter``1(Gallio.Model.Filters.PropertyFilter{``0})">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.Filters.FilterFormatter.VisitEqualityFilter``1(Gallio.Model.Filters.EqualityFilter{``0})">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.Filters.FilterFormatter.VisitRegexFilter(Gallio.Model.Filters.RegexFilter)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.Filters.FilterFormatter.ToString">
            <summary>
            Gets the formatted filter contents.
            </summary>
            <returns>The formatted filter.</returns>
        </member>
        <member name="T:Gallio.Model.Filters.EqualityFilter`1">
            <summary>
            An equality filter compares values for strict equality.
            </summary>
        </member>
        <member name="M:Gallio.Model.Filters.EqualityFilter`1.#ctor(`0)">
            <summary>
            Creates an equality filter.
            </summary>
            <param name="comparand">The value to compare for equality.</param>
        </member>
        <member name="M:Gallio.Model.Filters.EqualityFilter`1.IsMatch(`0)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.Filters.EqualityFilter`1.Accept(Gallio.Model.Filters.IFilterVisitor)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.Filters.EqualityFilter`1.ToString">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Model.Filters.EqualityFilter`1.Comparand">
            <summary>
            Gets the value to compare for equality.
            </summary>
        </member>
        <member name="T:Gallio.Model.Filters.FilterUtils">
            <summary>
            Provides utilities for manipulating filters.
            </summary>
        </member>
        <member name="M:Gallio.Model.Filters.FilterUtils.ParseTestFilterSet(System.String)">
            <summary>
            Parses a test filter set.
            </summary>
            <param name="filterExpr">The filter expression.</param>
            <returns>The parsed filter set.</returns>
        </member>
        <member name="M:Gallio.Model.Filters.FilterUtils.ParseTestFilter(System.String)">
            <summary>
            Parses a test filter.
            </summary>
            <param name="filterExpr">The filter expression.</param>
            <returns>The parsed filter.</returns>
        </member>
        <member name="T:Gallio.Model.Filters.IFilterFactory`1">
            <summary>
            Creates filters of a given type based on a specification that
            consists of a filter key and a rule for matching values.
            </summary>
            <typeparam name="T">The filter type.</typeparam>
        </member>
        <member name="M:Gallio.Model.Filters.IFilterFactory`1.CreateFilter(System.String,Gallio.Model.Filters.Filter{System.String})">
            <summary>
            Creates a filter from a specification 
            </summary>
            <param name="key">The filter key that identifies the kind of filter to create.</param>
            <param name="valueFilter">The filter to use as a rule for matching values.</param>
            <returns>The filter.</returns>
        </member>
        <member name="T:Gallio.Model.Filters.TestDescriptorFilterFactory`1">
            <summary>
            Builds filters for <see cref="T:Gallio.Model.Filters.ITestDescriptor"/> objects.
            </summary>
            <remarks>
            <para>
            Recognizes the following filter keys:
            <list type="bullet">
            <item>Id: Filter by id</item>
            <item>Name: Filter by name</item>
            <item>Assembly: Filter by assembly name</item>
            <item>Namespace: Filter by namespace name</item>
            <item>Type: Filter by type name, including inherited types</item>
            <item>ExactType: Filter by exact type name, excluding inherited types</item>
            <item>Member: Filter by member name</item>
            <item>*: All other names are assumed to correspond to metadata keys</item>
            </list>
            </para>
            </remarks>
            <typeparam name="T">The <see cref="T:Gallio.Model.Filters.ITestDescriptor"/> subtype.</typeparam>
        </member>
        <member name="M:Gallio.Model.Filters.TestDescriptorFilterFactory`1.CreateFilter(System.String,Gallio.Model.Filters.Filter{System.String})">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Model.Filters.RegexFilter">
            <summary>
            A regex filter matches strings against a given <see cref="P:Gallio.Model.Filters.RegexFilter.Regex"/>.
            </summary>
            <remarks>
            <para>
            Null string values are converted to empty strings for regex evaluation purposes.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Model.Filters.RegexFilter.#ctor(System.Text.RegularExpressions.Regex)">
            <summary>
            Creates an regex filter.
            </summary>
            <param name="regex">The regular expression for matching strings.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="regex"/> is null.</exception>
        </member>
        <member name="M:Gallio.Model.Filters.RegexFilter.IsMatch(System.String)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.Filters.RegexFilter.Accept(Gallio.Model.Filters.IFilterVisitor)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.Filters.RegexFilter.ToString">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Model.Filters.RegexFilter.Regex">
            <summary>
            Gets the regular expression for matching strings.
            </summary>
        </member>
        <member name="T:Gallio.Runner.Projects.Schema.FilterInfo">
            <summary>
            Filter record for Gallio project.
            </summary>
        </member>
        <member name="M:Gallio.Runner.Projects.Schema.FilterInfo.#ctor">
            <summary>
            Parameterless constructor for serialization.
            </summary>
        </member>
        <member name="M:Gallio.Runner.Projects.Schema.FilterInfo.#ctor(System.String,System.String)">
            <summary>
            Creates a filter description.
            </summary>
            <param name="filterName">The name of the filter.</param>
            <param name="filterExpr">The filter expression.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="filterName"/> or
            <paramref name="filterExpr"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runner.Projects.Schema.FilterInfo.Copy">
            <summary>
            Creates a copy of the filter.
            </summary>
            <returns>The new copy.</returns>
        </member>
        <member name="M:Gallio.Runner.Projects.Schema.FilterInfo.Validate">
            <inherit />
        </member>
        <member name="P:Gallio.Runner.Projects.Schema.FilterInfo.FilterName">
            <summary>
            Gets or sets the name of the filter.
            </summary>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runner.Projects.Schema.FilterInfo.FilterExpr">
            <summary>
            Gets or sets a string representation of the filter expression.
            </summary>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="T:Gallio.Runner.Projects.Schema.TestProjectData">
            <summary>
            Describes a test project in a portable manner for serialization.
            </summary>
        </member>
        <member name="M:Gallio.Runner.Projects.Schema.TestProjectData.#ctor">
            <summary>
            Creates an empty test project.
            </summary>
        </member>
        <member name="M:Gallio.Runner.Projects.Schema.TestProjectData.#ctor(Gallio.Runner.Projects.TestProject)">
            <summary>
            Copies the contents of a test project.
            </summary>
            <param name="source">The source test project.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="source"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runner.Projects.Schema.TestProjectData.InitializeTestProject(Gallio.Runner.Projects.TestProject)">
            <summary>
            Initializes a test project with the contents of this structure.
            </summary>
            <param name="testProject">The test project to populate.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="testProject"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runner.Projects.Schema.TestProjectData.ToTestProject">
            <summary>
            Creates a test project with the contents of this structure.
            </summary>
            <returns>The test project.</returns>
        </member>
        <member name="M:Gallio.Runner.Projects.Schema.TestProjectData.MakeRelativePaths(System.String)">
            <summary>
            Makes the test project paths relative to the specified base path.
            </summary>
            <param name="basePath">The base path.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="basePath"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runner.Projects.Schema.TestProjectData.MakeAbsolutePaths(System.String)">
            <summary>
            Makes the test project paths absolute given the specified base path.
            </summary>
            <param name="basePath">The base path.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="basePath"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runner.Projects.Schema.TestProjectData.Validate">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Runner.Projects.Schema.TestProjectData.TestPackage">
            <summary>
            Gets or sets the test package.
            </summary>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runner.Projects.Schema.TestProjectData.TestFilters">
            <summary>
            Gets a mutable list of named test filters for the project.
            </summary>
        </member>
        <member name="P:Gallio.Runner.Projects.Schema.TestProjectData.TestRunnerExtensions">
            <summary>
            Gets a mutable list of test runner extensions used by the project.
            </summary>
        </member>
        <member name="P:Gallio.Runner.Projects.Schema.TestProjectData.ReportDirectory">
            <summary>
            Gets or sets the folder to save generated reports to. 
            </summary>
            <remarks>
            <para>
            Relative to project location, if not absolute.
            </para>
            </remarks>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runner.Projects.Schema.TestProjectData.ReportNameFormat">
            <summary>
            Gets or sets the format for the filename of generated reports.
            </summary>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="T:Gallio.Runner.Reports.DefaultReportReader">
            <summary>
            Default implementation of a report reader.
            </summary>
        </member>
        <member name="T:Gallio.Runner.Reports.IReportReader">
            <summary>
            A report reader provides services for loading a previously saved report
            from a <see cref="T:Gallio.Runner.Reports.IReportContainer"/>.
            </summary>
        </member>
        <member name="M:Gallio.Runner.Reports.IReportReader.LoadReport(System.Boolean,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
            <summary>
            Loads the report from an XML file.
            </summary>
            <remarks>
            <para>
            The path of the saved report is constructed by appending the extension ".xml"
            to the container's <see cref="P:Gallio.Runner.Reports.IReportContainer.ReportName"/>.
            </para>
            </remarks>
            <param name="loadAttachmentContents">If true, loads attachment
            contents in referenced content files if they were not embedded otherwise
            the attachment contents are not loaded (but may be loaded later using <see cref="M:Gallio.Runner.Reports.IReportReader.LoadReportAttachments(Gallio.Runner.Reports.Schema.Report,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)"/>).</param>
            <param name="progressMonitor">The progress monitor.</param>
            <returns>The loaded report.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="progressMonitor "/> is null.</exception>
        </member>
        <member name="M:Gallio.Runner.Reports.IReportReader.LoadReportAttachments(Gallio.Runner.Reports.Schema.Report,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
            <summary>
            Loads referenced report attachments from the container.
            </summary>
            <remarks>
            <para>
            This method has the effect of populating the contents of all <see cref="T:Gallio.Common.Markup.AttachmentData"/>
            nodes in the report that have non-null <see cref="P:Gallio.Common.Markup.AttachmentData.ContentPath"/>.
            </para>
            </remarks>
            <param name="report">The report whose attachments are to be loaded.</param>
            <param name="progressMonitor">The progress monitor.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="report"/> or <paramref name="progressMonitor "/> is null.</exception>
        </member>
        <member name="P:Gallio.Runner.Reports.IReportReader.ReportContainer">
            <summary>
            Gets the report container.
            </summary>
        </member>
        <member name="M:Gallio.Runner.Reports.DefaultReportReader.#ctor(Gallio.Runner.Reports.IReportContainer)">
            <summary>
            Creates a report reader.
            </summary>
            <param name="reportContainer">The report container.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="reportContainer"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runner.Reports.DefaultReportReader.LoadReport(System.Boolean,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runner.Reports.DefaultReportReader.LoadReportAttachments(Gallio.Runner.Reports.Schema.Report,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Runner.Reports.DefaultReportReader.ReportContainer">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runner.Reports.DefaultReportWriter">
            <summary>
            Default implementation of a report writer.
            </summary>
        </member>
        <member name="T:Gallio.Runner.Reports.IReportWriter">
            <summary>
            A report writer provides services for formatting or saving a report
            to a <see cref="T:Gallio.Runner.Reports.IReportContainer"/>.
            </summary>
            <remarks>
            <para>
            The writer tracks the paths of the report documents paths
            that are created within the report container.  Likewise it remembers whether
            attachments have been saved so as to avoid redundantly resaving them when
            the same report is generated in multiple formats.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Runner.Reports.IReportWriter.AddReportDocumentPath(System.String)">
            <summary>
            Adds the path of a report document that has been created within the report container.
            </summary>
            <param name="path">The document path.</param>
        </member>
        <member name="M:Gallio.Runner.Reports.IReportWriter.SerializeReport(System.Xml.XmlWriter,Gallio.Common.Markup.AttachmentContentDisposition)">
            <summary>
            Serializes the report to XML.
            </summary>
            <param name="xmlWriter">The XML writer.</param>
            <param name="attachmentContentDisposition">The content disposition to use for all attachments.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="xmlWriter"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runner.Reports.IReportWriter.SaveReport(Gallio.Common.Markup.AttachmentContentDisposition,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
            <summary>
            Saves the report as an XML file.
            </summary>
            <remarks>
            <para>
            The saved report XML file is automatically added to the <see cref="P:Gallio.Runner.Reports.IReportWriter.ReportDocumentPaths"/> list.
            </para>
            <para>
            The path of the saved report is constructed by appending the extension ".xml"
            to the container's <see cref="P:Gallio.Runner.Reports.IReportContainer.ReportName"/>.
            </para>
            <para>
            This method may do nothing if the report has already been saved.
            </para>
            </remarks>
            <param name="attachmentContentDisposition">The content disposition to use for all attachments.  If
            the content disposition is <see cref="F:Gallio.Common.Markup.AttachmentContentDisposition.Link"/> then
            this method will automatically call <see cref="M:Gallio.Runner.Reports.IReportWriter.SaveReportAttachments(Gallio.Runtime.ProgressMonitoring.IProgressMonitor)"/> to save the attachments.</param>
            <param name="progressMonitor">The progress monitor.</param>
            <exception cref="T:System.ArgumentNullException">Thrown <paramref name="progressMonitor"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runner.Reports.IReportWriter.SaveReportAttachments(Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
            <summary>
            Saves all report attachments as individual content files to the container.
            </summary>
            <remarks>
            <para>
            The convention for attachments is to save them in a directory with the same name
            as the container's <see cref="P:Gallio.Runner.Reports.IReportContainer.ReportName"/> arranged in folders
            first by test id then by step id then by attachment name.
            For example: "Report\{testid}\{stepid}\attachment.jpg".
            </para>
            <para>
            This method may do nothing if the attachments have already been saved.
            </para>
            </remarks>
            <param name="progressMonitor">The progress monitor.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="progressMonitor"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runner.Reports.IReportWriter.Report">
            <summary>
            Gets the report being generated.
            </summary>
        </member>
        <member name="P:Gallio.Runner.Reports.IReportWriter.ReportContainer">
            <summary>
            Gets the report container.
            </summary>
        </member>
        <member name="P:Gallio.Runner.Reports.IReportWriter.ReportDocumentPaths">
            <summary>
            Gets the paths of all report documents that have been generated within
            the report container.
            </summary>
            <remarks>
            <para>
            Report documents are the primary files when reports
            are formatted or saved such as an XML file, a Text file, or the main
            HTML file that contains the body of the report.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Runner.Reports.DefaultReportWriter.#ctor(Gallio.Runner.Reports.Schema.Report,Gallio.Runner.Reports.IReportContainer)">
            <summary>
            Creates a report writer for the specified report.
            </summary>
            <param name="report">The report.</param>
            <param name="reportContainer">The report container.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="report"/> or <paramref name="reportContainer"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runner.Reports.DefaultReportWriter.AddReportDocumentPath(System.String)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runner.Reports.DefaultReportWriter.SerializeReport(System.Xml.XmlWriter,Gallio.Common.Markup.AttachmentContentDisposition)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runner.Reports.DefaultReportWriter.SaveReport(Gallio.Common.Markup.AttachmentContentDisposition,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runner.Reports.DefaultReportWriter.SaveReportAttachments(Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Runner.Reports.DefaultReportWriter.Report">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Runner.Reports.DefaultReportWriter.ReportContainer">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Runner.Reports.DefaultReportWriter.ReportDocumentPaths">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runner.Reports.FileSystemReportContainer">
            <summary>
            A file-system based representation of a report container that uses
            ordinary files and folders to store report contents.
            </summary>
        </member>
        <member name="M:Gallio.Runner.Reports.FileSystemReportContainer.#ctor(System.String,System.String)">
            <summary>
            Creates a file-system based representation of a report container.
            </summary>
            <param name="reportDirectory">The report directory path.</param>
            <param name="reportName">The report name.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="reportDirectory"/> or
            <paramref name="reportName"/> is null.</exception>
            <exception cref="T:System.ArgumentException">Thrown if <paramref name="reportName"/> is an empty string.</exception>
        </member>
        <member name="M:Gallio.Runner.Reports.FileSystemReportContainer.DeleteReport">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runner.Reports.FileSystemReportContainer.OpenRead(System.String)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runner.Reports.FileSystemReportContainer.OpenWrite(System.String,System.String,System.Text.Encoding)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runner.TestLauncherResult">
            <summary>
            Contains the result of a complete test run.
            </summary>
        </member>
        <member name="M:Gallio.Runner.TestLauncherResult.#ctor(Gallio.Runner.Reports.Schema.Report)">
            <summary>
            Creates a launcher result object.
            </summary>
            <param name="report">The test report.</param>
        </member>
        <member name="M:Gallio.Runner.TestLauncherResult.SetResultCode(System.Int32)">
            <summary>
            Sets the result code of the result.
            </summary>
            <param name="value">The new result code.</param>
        </member>
        <member name="M:Gallio.Runner.TestLauncherResult.AddReportDocumentPath(System.String)">
            <summary>
            Adds a new report document path.
            </summary>
            <param name="reportDocumentPath">The report document path.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="reportDocumentPath"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runner.TestLauncherResult.GenerateReports(System.String,System.String,Gallio.Runner.Reports.ReportArchive,System.Collections.Generic.IList{System.String},Gallio.Runner.Reports.ReportFormatterOptions,Gallio.Runner.Reports.IReportManager,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
            <summary>
            Generates reports of the desired forms.
            </summary>
            <remarks>
            <para>
            This method adds the paths of the generated report documents to <see cref="P:Gallio.Runner.TestLauncherResult.ReportDocumentPaths"/>.
            </para>
            </remarks>
            <param name="reportDirectory">The report directory.</param>
            <param name="reportName">The report name.</param>
            <param name="reportArchive">Determines whether to enclose the resulting test report in a compressed archive file.</param>
            <param name="reportFormats">The report formats to generate.</param>
            <param name="reportFormatOptions">The report formatter options.</param>
            <param name="reportManager">The report manager.</param>
            <param name="progressMonitor">A progress monitor for the operation.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="reportDirectory"/>,
            <paramref name="reportName"/>, <paramref name="reportFormats"/>, <paramref name="reportFormatOptions"/>,
            <paramref name="reportManager"/>, or <paramref name="progressMonitor"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runner.TestLauncherResult.ShowReportDocuments">
            <summary>
            Shows the report documents enumerated in the launcher result.
            </summary>
            <returns>True if the report documents were successfully opened.</returns>
        </member>
        <member name="P:Gallio.Runner.TestLauncherResult.ResultCode">
            <summary>
            Gets the result code.
            </summary>
        </member>
        <member name="P:Gallio.Runner.TestLauncherResult.Report">
            <summary>
            Gets the test report.
            </summary>
            <remarks>
            <para>
            The report might be incomplete in varying degrees depending on how much
            of the test execution was successfully performed.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Runner.TestLauncherResult.ResultSummary">
            <summary>
            Gets a short summary with the number of test that passed, failed and so on.
            </summary>
        </member>
        <member name="P:Gallio.Runner.TestLauncherResult.Statistics">
            <summary>
            Gets the statistics of the execution from the report
            or an empty statistics object if none.
            </summary>
        </member>
        <member name="P:Gallio.Runner.TestLauncherResult.ReportDocumentPaths">
            <summary>
            Gets the full paths of the formatted report documents.
            </summary>
            <returns>The full paths of the formatted report documents.</returns>
        </member>
        <member name="T:Gallio.Model.Schema.TestComponentData">
            <summary>
            Describes a test model component in a portable manner for serialization.
            </summary>
            <seealso cref="T:Gallio.Model.Tree.TestComponent"/>
        </member>
        <member name="M:Gallio.Model.Schema.TestComponentData.#ctor">
            <summary>
            Creates an uninitialized instance for Xml deserialization.
            </summary>
        </member>
        <member name="M:Gallio.Model.Schema.TestComponentData.#ctor(System.String,System.String)">
            <summary>
            Creates a test component.
            </summary>
            <param name="id">The component id.</param>
            <param name="name">The component name.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="id"/> or <paramref name="name"/> is null.</exception>
        </member>
        <member name="M:Gallio.Model.Schema.TestComponentData.#ctor(Gallio.Model.Tree.TestComponent)">
            <summary>
            Copies the contents of a test component.
            </summary>
            <param name="source">The source object.</param>
        </member>
        <member name="P:Gallio.Model.Schema.TestComponentData.CodeElement">
            <summary>
            Gets or sets the code element or null if none.  (not serialized)
            </summary>
        </member>
        <member name="P:Gallio.Model.Schema.TestComponentData.Id">
            <summary>
            Gets or sets the test component id.  (non-null)
            </summary>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
            <seealso cref="P:Gallio.Model.Tree.TestComponent.Id"/>
        </member>
        <member name="P:Gallio.Model.Schema.TestComponentData.Name">
            <summary>
            Gets or sets the test component name.  (non-null)
            </summary>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
            <seealso cref="P:Gallio.Model.Tree.TestComponent.Name"/>
        </member>
        <member name="P:Gallio.Model.Schema.TestComponentData.CodeReference">
            <summary>
            Gets or sets the code reference or <see cref="F:Gallio.Common.Reflection.CodeReference.Unknown"/> if not available.
            </summary>
            <seealso cref="P:Gallio.Model.Tree.TestComponent.CodeElement"/>
        </member>
        <member name="P:Gallio.Model.Schema.TestComponentData.CodeLocation">
            <summary>
            Gets or sets the code location or <see cref="F:Gallio.Common.Reflection.CodeLocation.Unknown"/> if not available.
            </summary>
            <seealso cref="P:Gallio.Model.Tree.TestComponent.CodeElement"/>
        </member>
        <member name="P:Gallio.Model.Schema.TestComponentData.Metadata">
            <summary>
            Gets or sets the metadata map.  (non-null)
            </summary>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
            <seealso cref="P:Gallio.Model.Tree.TestComponent.Metadata"/>
        </member>
        <member name="T:Gallio.Model.Schema.TestStepData">
            <summary>
            Describes a test step in a portable manner for serialization.
            </summary>
            <seealso cref="T:Gallio.Model.Tree.TestStep"/>
        </member>
        <member name="M:Gallio.Model.Schema.TestStepData.#ctor">
            <summary>
            Creates an uninitialized instance for Xml deserialization.
            </summary>
        </member>
        <member name="M:Gallio.Model.Schema.TestStepData.#ctor(System.String,System.String,System.String,System.String)">
            <summary>
            Creates a step.
            </summary>
            <param name="id">The step id.</param>
            <param name="name">The step name.</param>
            <param name="fullName">The full name of the step.</param>
            <param name="testId">The test id.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="id"/>, <paramref name="name"/>,
            <paramref name="fullName"/> or <paramref name="testId"/> is null.</exception>
        </member>
        <member name="M:Gallio.Model.Schema.TestStepData.#ctor(Gallio.Model.Tree.TestStep)">
            <summary>
            Copies the contents of a test step.
            </summary>
            <param name="source">The source test step.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="source"/> is null.</exception>
        </member>
        <member name="M:Gallio.Model.Schema.TestStepData.ToTestStep(Gallio.Model.Tree.Test,Gallio.Model.Tree.TestStep)">
            <summary>
            Recreates a <see cref="T:Gallio.Model.Tree.TestStep"/> object from the test data.
            </summary>
            <remarks>
            <para>
            Because a test step data object does not contain all of the details of the original
            test step some information may be lost in the round trip.
            </para>
            </remarks>
            <param name="test">The test to which the step belongs.</param>
            <param name="parent">The parent test step, or null if none.</param>
            <returns>The test step.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="test"/> is null.</exception>
        </member>
        <member name="M:Gallio.Model.Schema.TestStepData.Normalize">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Model.Schema.TestStepData.FullName">
            <summary>
            Gets or sets the full name of the step.
            </summary>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="P:Gallio.Model.Schema.TestStepData.ParentId">
            <summary>
            Gets or sets the id of the parent step.
            </summary>
        </member>
        <member name="P:Gallio.Model.Schema.TestStepData.TestId">
            <summary>
            Gets or sets the id of the test to which the step belongs.
            </summary>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="P:Gallio.Model.Schema.TestStepData.IsPrimary">
            <summary>
            Gets or sets whether the test step is primary.
            </summary>
            <seealso cref="P:Gallio.Model.Tree.TestStep.IsPrimary"/>
        </member>
        <member name="P:Gallio.Model.Schema.TestStepData.IsTestCase">
            <summary>
            Gets or sets whether the test step represents a test case.
            </summary>
            <seealso cref="P:Gallio.Model.Tree.TestStep.IsTestCase"/>
        </member>
        <member name="P:Gallio.Model.Schema.TestStepData.IsDynamic">
            <summary>
            Gets or sets whether the test step is dynamic.
            </summary>
            <seealso cref="P:Gallio.Model.Tree.TestStep.IsDynamic"/>
        </member>
        <member name="T:Gallio.Model.Schema.TestParameterData">
            <summary>
            Describes a test parameter in a portable manner for serialization.
            </summary>
            <seealso cref="T:Gallio.Model.Tree.TestParameter"/>
        </member>
        <member name="M:Gallio.Model.Schema.TestParameterData.#ctor">
            <summary>
            Creates an uninitialized instance for Xml deserialization.
            </summary>
        </member>
        <member name="M:Gallio.Model.Schema.TestParameterData.#ctor(System.String,System.String)">
            <summary>
            Creates a parameter data object.
            </summary>
            <param name="id">The component id.</param>
            <param name="name">The component name.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="id"/> or
            <paramref name="name"/> is null.</exception>
        </member>
        <member name="M:Gallio.Model.Schema.TestParameterData.#ctor(Gallio.Model.Tree.TestParameter)">
            <summary>
            Copies the contents of a test parameter.
            </summary>
            <param name="source">The source test parameter.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="source"/> is null.</exception>
        </member>
        <member name="M:Gallio.Model.Schema.TestParameterData.ToTestParameter">
            <summary>
            Recreates a <see cref="T:Gallio.Model.Tree.TestParameter"/> object from the test data.
            </summary>
            <remarks>
            <para>
            Because a test parameter data object does not contain all of the details of the original
            test parameter some information may be lost in the round trip.
            </para>
            </remarks>
            <returns>The test parameter.</returns>
        </member>
        <member name="M:Gallio.Model.Schema.TestParameterData.Normalize">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Model.Schema.TestData">
            <summary>
            Describes a test in a portable manner for serialization.
            </summary>
            <seealso cref="T:Gallio.Model.Tree.Test"/>
        </member>
        <member name="M:Gallio.Model.Schema.TestData.#ctor">
            <summary>
            Creates an uninitialized instance for Xml deserialization.
            </summary>
        </member>
        <member name="M:Gallio.Model.Schema.TestData.#ctor(System.String,System.String,System.String)">
            <summary>
            Creates a test data object.
            </summary>
            <param name="id">The component id.</param>
            <param name="name">The component name.</param>
            <param name="fullName">The full name of the test.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="id"/>, <paramref name="name"/>,
            or <paramref name="fullName"/> is null.</exception>
        </member>
        <member name="M:Gallio.Model.Schema.TestData.#ctor(Gallio.Model.Tree.Test)">
            <summary>
            Copies the contents of a test recursively including its children.
            </summary>
            <param name="source">The source test.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="source"/> is null.</exception>
        </member>
        <member name="M:Gallio.Model.Schema.TestData.#ctor(Gallio.Model.Tree.Test,System.Boolean)">
            <summary>
            Copies the contents of a test.
            </summary>
            <param name="source">The source test.</param>
            <param name="nonRecursive">If true, does not recursively populate the children of the test.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="source"/> is null.</exception>
        </member>
        <member name="M:Gallio.Model.Schema.TestData.ToTest">
            <summary>
            Recreates a <see cref="T:Gallio.Model.Tree.Test"/> object from the test data.
            </summary>
            <remarks>
            <para>
            Because a test data object does not contain all of the details of the original
            test some information may be lost in the round trip.
            </para>
            </remarks>
            <returns>The test.</returns>
        </member>
        <member name="M:Gallio.Model.Schema.TestData.Normalize">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.Schema.TestData.ToString">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Model.Schema.TestData.FullName">
            <summary>
            Gets or sets the full name of the test.
            </summary>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="P:Gallio.Model.Schema.TestData.IsTestCase">
            <summary>
            Gets or sets whether this node is a test case.
            </summary>
            <seealso cref="P:Gallio.Model.Tree.Test.IsTestCase"/>
        </member>
        <member name="P:Gallio.Model.Schema.TestData.Children">
            <summary>
            Gets the mutable list of children.
            </summary>
            <seealso cref="P:Gallio.Model.Tree.Test.Children"/>
        </member>
        <member name="P:Gallio.Model.Schema.TestData.Parameters">
            <summary>
            Gets the mutable list of parameters.
            </summary>
            <seealso cref="P:Gallio.Model.Tree.Test.Parameters"/>
        </member>
        <member name="P:Gallio.Model.Schema.TestData.AllTests">
            <summary>
            Recursively enumerates this test and all of its descendants.
            </summary>
        </member>
        <member name="T:Gallio.Model.TestExecutionOptions">
            <summary>
            Provides options that control how test execution occurs.
            </summary>
        </member>
        <member name="M:Gallio.Model.TestExecutionOptions.#ctor">
            <summary>
            Creates a default set of test execution options.
            </summary>
        </member>
        <member name="M:Gallio.Model.TestExecutionOptions.ClearProperties">
            <summary>
            Clears the collection of properties.
            </summary>
        </member>
        <member name="M:Gallio.Model.TestExecutionOptions.AddProperty(System.String,System.String)">
            <summary>
            Adds a property key/value pair.
            </summary>
            <param name="key">The property key.</param>
            <param name="value">The property value.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="key"/> or <paramref name="value"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Thrown if <paramref name="key"/> is already in the property set.</exception>
        </member>
        <member name="M:Gallio.Model.TestExecutionOptions.RemoveProperty(System.String)">
            <summary>
            Removes a property key/value pair.
            </summary>
            <param name="key">The property key.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="key"/> is null.</exception>
        </member>
        <member name="M:Gallio.Model.TestExecutionOptions.Copy">
            <summary>
            Creates a copy of the options.
            </summary>
            <returns>The copy.</returns>
        </member>
        <member name="P:Gallio.Model.TestExecutionOptions.FilterSet">
            <summary>
            Gets or sets the filter set.
            </summary>
            <value>Defaults to an empty filter set.</value>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="P:Gallio.Model.TestExecutionOptions.ExactFilter">
            <summary>
            Gets or sets whether the filter exactly specifies all tests to select.
            </summary>
            <remarks>
            <para>
            If <c>false</c>, then children of the selected tests are also included.
            </para>
            </remarks>
            <value>Defaults to false.</value>
        </member>
        <member name="P:Gallio.Model.TestExecutionOptions.SkipDynamicTests">
            <summary>
            Gets or sets whether to skip running tests that use dynamic data items.
            </summary>
            <remarks>
            <para>
            This flag can be useful in combination with <see cref="P:Gallio.Model.TestExecutionOptions.SkipTestExecution"/>
            to enumerate non-dynamic tests only.
            </para>
            </remarks>
            <value>Defaults to <c>false</c></value>
        </member>
        <member name="P:Gallio.Model.TestExecutionOptions.SkipTestExecution">
            <summary>
            Gets or sets whether to skip the execution of tests.
            </summary>
            <remarks>
            <para>
            The test runner will go through most of the motions of running tests but will skip
            the actual execution phase.  This option can be used to enumerate data-driven test
            steps without running them.  It can also be used to verify that the execution
            environment is sane without doing most of the work of running the tests.
            </para>
            </remarks>
            <value>Defaults to <c>false</c></value>
        </member>
        <member name="P:Gallio.Model.TestExecutionOptions.SingleThreaded">
            <summary>
            Gets or sets whether to run tests within a single thread.  This ensures that the
            tests will run on the same thread as the initial call to the test harness (unless
            the test framework itself spawns any new threads).
            </summary>
            <remarks>
            <para>
            When tests are run single-threaded, the test harness will no longer be able to guarantee
            that the default apartment state is <see cref="F:System.Threading.ApartmentState.STA"/>.
            </para>
            </remarks>
            <value>Defaults to <c>false</c>.</value>
        </member>
        <member name="P:Gallio.Model.TestExecutionOptions.Properties">
            <summary>
            Gets a read-only collection of configuration properties for test execution.
            </summary>
        </member>
        <member name="T:Gallio.Model.Schema.TestModelData">
            <summary>
            The test model captures the root of the test data tree along with an index by id.
            </summary>
            <remarks>
            <para>
            This class is safe for used by multiple threads.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Model.Schema.TestModelData.#ctor">
            <summary>
            Creates an empty test model with just a root test.
            </summary>
        </member>
        <member name="M:Gallio.Model.Schema.TestModelData.#ctor(Gallio.Model.Tree.TestModel)">
            <summary>
            Copies the contents of a test model.
            </summary>
            <param name="source">The source test model.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="source"/> is null.</exception>
        </member>
        <member name="M:Gallio.Model.Schema.TestModelData.#ctor(Gallio.Model.Schema.TestData)">
            <summary>
            Creates a test model.
            </summary>
            <param name="rootTest">The root test.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="rootTest"/> is null.</exception>
        </member>
        <member name="M:Gallio.Model.Schema.TestModelData.GetErrorAnnotationCount">
            <summary>
            Gets the number of error annotations on the model.
            </summary>
            <returns>The numer of error annotations present.</returns>
        </member>
        <member name="M:Gallio.Model.Schema.TestModelData.GetTestById(System.String)">
            <summary>
            Gets a test by its id.
            </summary>
            <param name="testId">The test id.</param>
            <returns>The test, or null if not found.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="testId"/> is null.</exception>
        </member>
        <member name="M:Gallio.Model.Schema.TestModelData.ResetIndex">
            <summary>
            Resets the test index by id in case the test model has been modified.
            </summary>
        </member>
        <member name="M:Gallio.Model.Schema.TestModelData.MergeSubtree(System.String,Gallio.Model.Schema.TestData)">
            <summary>
            Merged a subtree of tests into the model.
            </summary>
            <remarks>
            <para>
            Merges tests with duplicate ids. Adds new tests in place.
            </para>
            </remarks>
            <param name="parentTestId">The id of the parent test, or null if adding the root.</param>
            <param name="test">The top test of the subtree to add.</param>
            <returns>The merged test, if the test was already present in the tree.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="test"/> is null.</exception>
        </member>
        <member name="M:Gallio.Model.Schema.TestModelData.MergeWith(Gallio.Model.Schema.TestModelData)">
            <summary>
            Merges the current model with the specified one.
            </summary>
            <param name="other">The other model to be merged.</param>
        </member>
        <member name="P:Gallio.Model.Schema.TestModelData.RootTest">
            <summary>
            Gets or sets the root test in the model.
            </summary>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="P:Gallio.Model.Schema.TestModelData.Annotations">
            <summary>
            Gets the mutable list of annotations.
            </summary>
            <seealso cref="P:Gallio.Model.Tree.TestModel.Annotations"/>
        </member>
        <member name="P:Gallio.Model.Schema.TestModelData.AllTests">
            <summary>
            Recursively enumerates all tests including the root test.
            </summary>
        </member>
        <member name="T:Gallio.Model.TestResult">
            <summary>
            A test result describes the final result of having executed a test.
            </summary>
        </member>
        <member name="M:Gallio.Model.TestResult.#ctor">
            <summary>
            Creates a test result with an inconclusive outcome.
            </summary>
        </member>
        <member name="M:Gallio.Model.TestResult.#ctor(Gallio.Model.TestOutcome)">
            <summary>
            Creates a test result with a particular outcome.
            </summary>
            <param name="outcome">The outcome.</param>
        </member>
        <member name="M:Gallio.Model.TestResult.Copy">
            <summary>
            Creates a copy of the test result.
            </summary>
            <returns>The copy.</returns>
        </member>
        <member name="M:Gallio.Model.TestResult.Normalize">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Model.TestResult.Outcome">
            <summary>
            Gets or sets the test outcome, including its children (unless they were skipped
            or are otherwise irrelevant to the outcome of their parent).
            </summary>
            <value>
            Defaults to <see cref="P:Gallio.Model.TestOutcome.Inconclusive"/>.
            </value>
        </member>
        <member name="P:Gallio.Model.TestResult.AssertCount">
            <summary>
            Gets or sets the number of assertions evaluated by the test, including its children.
            </summary>
        </member>
        <member name="P:Gallio.Model.TestResult.Duration">
            <summary>
            Gets or sets the test duration, including its children.
            </summary>
        </member>
        <member name="P:Gallio.Model.TestResult.DurationInSeconds">
            <summary>
            Gets or sets the test duration in seconds, including its children.
            </summary>
        </member>
        <member name="T:Gallio.Runner.Reports.DefaultReportManager">
            <summary>
            The default implementation of <see cref="T:Gallio.Runner.Reports.IReportManager"/>.
            </summary>
        </member>
        <member name="T:Gallio.Runner.Reports.IReportManager">
            <summary>
            The report manager provides services for manipulating reports.
            </summary>
        </member>
        <member name="M:Gallio.Runner.Reports.IReportManager.GetReportFormatter(System.String)">
            <summary>
            Gets the report formatter with the specified name, or null if none.
            </summary>
            <param name="formatterName">The formatter name.</param>
            <returns>The formatter, or null on failure.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="formatterName"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runner.Reports.IReportManager.Format(Gallio.Runner.Reports.IReportWriter,System.String,Gallio.Runner.Reports.ReportFormatterOptions,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
            <summary>
            Formats the report indicated by the report writer.
            </summary>
            <param name="reportWriter">The report writer.</param>
            <param name="formatterName">The formatter name.</param>
            <param name="formatterOptions">The report formatter options.</param>
            <param name="progressMonitor">The progress monitor.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="reportWriter"/>, <paramref name="formatterName"/>,
            <paramref name="formatterOptions"/> or <paramref name="progressMonitor"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Thrown if there is no formatter with the specified name.</exception>
        </member>
        <member name="M:Gallio.Runner.Reports.IReportManager.CreateReportReader(Gallio.Runner.Reports.IReportContainer)">
            <summary>
            Gets a report reader to load a report from the specified container.
            </summary>
            <param name="reportContainer">The report container.</param>
            <returns>The report reader.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="reportContainer"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runner.Reports.IReportManager.CreateReportWriter(Gallio.Runner.Reports.Schema.Report,Gallio.Runner.Reports.IReportContainer)">
            <summary>
            Gets a report writer to save or format a report to the specified container.
            </summary>
            <param name="report">The report.</param>
            <param name="reportContainer">The report container.</param>
            <returns>The report writer.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="report"/> or <paramref name="reportContainer"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runner.Reports.IReportManager.CreateReportMerger(System.Collections.Generic.IEnumerable{Gallio.Runner.Reports.Schema.Report})">
            <summary>
            Returns a report merger for the specified reports.
            </summary>
            <param name="reports">The test reports to be merged.</param>
            <returns>The report merge.r</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="reports"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runner.Reports.IReportManager.FormatterHandles">
            <summary>
            Gets handles for all registered formatters.
            </summary>
        </member>
        <member name="M:Gallio.Runner.Reports.DefaultReportManager.#ctor(Gallio.Runtime.Extensibility.ComponentHandle{Gallio.Runner.Reports.IReportFormatter,Gallio.Runner.Reports.ReportFormatterTraits}[])">
            <summary>
            Creates a report manager.
            </summary>
            <param name="formatterHandles">The report formatter handles.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="formatterHandles"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runner.Reports.DefaultReportManager.GetReportFormatter(System.String)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runner.Reports.DefaultReportManager.Format(Gallio.Runner.Reports.IReportWriter,System.String,Gallio.Runner.Reports.ReportFormatterOptions,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runner.Reports.DefaultReportManager.CreateReportReader(Gallio.Runner.Reports.IReportContainer)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runner.Reports.DefaultReportManager.CreateReportWriter(Gallio.Runner.Reports.Schema.Report,Gallio.Runner.Reports.IReportContainer)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runner.Reports.DefaultReportManager.CreateReportMerger(System.Collections.Generic.IEnumerable{Gallio.Runner.Reports.Schema.Report})">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Runner.Reports.DefaultReportManager.FormatterHandles">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runner.Reports.IReportFormatter">
            <summary>
            A report formatter provides a strategy for formatting reports for human consumption.
            </summary>
        </member>
        <member name="M:Gallio.Runner.Reports.IReportFormatter.Format(Gallio.Runner.Reports.IReportWriter,Gallio.Runner.Reports.ReportFormatterOptions,Gallio.Runtime.ProgressMonitoring.IProgressMonitor)">
            <summary>
            Formats the report indicated by the report writer.
            </summary>
            <param name="reportWriter">The report writer.</param>
            <param name="formatterOptions">The report formatter options.</param>
            <param name="progressMonitor">The progress monitor.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="reportWriter"/>,
            <paramref name="formatterOptions"/> or <paramref name="progressMonitor"/> is null.</exception>
        </member>
        <member name="T:Gallio.Runner.Reports.Schema.TestPackageRun">
            <summary>
            Summarizes the execution of a test package for reporting purposes.
            </summary>
        </member>
        <member name="M:Gallio.Runner.Reports.Schema.TestPackageRun.#ctor">
            <summary>
            Creates an empty package run.
            </summary>
        </member>
        <member name="M:Gallio.Runner.Reports.Schema.TestPackageRun.MergeWith(Gallio.Runner.Reports.Schema.TestPackageRun)">
            <summary>
            Merges the specified package run into the current one.
            </summary>
            <param name="other">The other package run to merge.</param>
        </member>
        <member name="P:Gallio.Runner.Reports.Schema.TestPackageRun.StartTime">
            <summary>
            Gets or sets the time when the package run started.
            </summary>
        </member>
        <member name="P:Gallio.Runner.Reports.Schema.TestPackageRun.EndTime">
            <summary>
            Gets or sets the time when the package run ended.
            </summary>
        </member>
        <member name="P:Gallio.Runner.Reports.Schema.TestPackageRun.RootTestStepRun">
            <summary>
            Gets or sets the root test step run, or null if the root test has not run.
            </summary>
        </member>
        <member name="P:Gallio.Runner.Reports.Schema.TestPackageRun.Statistics">
            <summary>
            Gets or sets the statistics for the package run.
            </summary>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runner.Reports.Schema.TestPackageRun.AllTestStepRuns">
            <summary>
            Recursively enumerates all test step runs including the root test step run.
            </summary>
        </member>
        <member name="T:Gallio.Runner.Reports.Schema.Statistics">
            <summary>
            Collects summary statistics about test execution for reporting purposes.
            </summary>
        </member>
        <member name="M:Gallio.Runner.Reports.Schema.Statistics.#ctor">
            <summary>
            Creates an empty statistics record.
            </summary>
        </member>
        <member name="M:Gallio.Runner.Reports.Schema.Statistics.GetOutcomeCount(Gallio.Model.TestOutcome)">
            <summary>
            Gets the number of tests with the specified outcome.
            </summary>
            <param name="outcome">The outcome.</param>
            <returns>The number of tests with the specified outcome.</returns>
        </member>
        <member name="M:Gallio.Runner.Reports.Schema.Statistics.SetOutcomeCount(Gallio.Model.TestOutcome,System.Int32)">
            <summary>
            Sets the number of tests with the specified outcome.
            </summary>
            <param name="outcome">The outcome.</param>
            <param name="count">The count.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="count"/> is less than 0.</exception>
        </member>
        <member name="M:Gallio.Runner.Reports.Schema.Statistics.FormatTestCaseResultSummary">
            <summary>
            Formats a single line of text summarizing test case results.
            </summary>
        </member>
        <member name="M:Gallio.Runner.Reports.Schema.Statistics.MergeStepStatistics(Gallio.Runner.Reports.Schema.TestStepRun)">
            <summary>
            Merges statistics from a test step run, incrementing the relevant counters.
            </summary>
            <param name="testStepRun">The test step run.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="testStepRun"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runner.Reports.Schema.Statistics.MergeWith(Gallio.Runner.Reports.Schema.Statistics)">
            <summary>
            Merges the specified statistics.
            </summary>
            <param name="other"></param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="other"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runner.Reports.Schema.Statistics.AddOutcome(Gallio.Model.TestOutcome)">
            <summary>
            Updates the test outcome statistics counters with an the outcome of a test.
            </summary>
            <remarks>
            Does not update the test or step count.
            </remarks>
            <param name="outcome">The test outcome.</param>
        </member>
        <member name="P:Gallio.Runner.Reports.Schema.Statistics.AssertCount">
            <summary>
            Gets or sets the number of assertions evaluated.
            </summary>
        </member>
        <member name="P:Gallio.Runner.Reports.Schema.Statistics.Duration">
            <summary>
            Gets or sets the total duration summarized tests in seconds.
            </summary>
        </member>
        <member name="P:Gallio.Runner.Reports.Schema.Statistics.RunCount">
            <summary>
            Gets or sets the number of test cases that were run.
            </summary>
        </member>
        <member name="P:Gallio.Runner.Reports.Schema.Statistics.PassedCount">
            <summary>
            Gets or sets the number of test cases that ran and passed.
            </summary>
        </member>
        <member name="P:Gallio.Runner.Reports.Schema.Statistics.FailedCount">
            <summary>
            Gets or sets the number of test cases that ran and failed.
            </summary>
        </member>
        <member name="P:Gallio.Runner.Reports.Schema.Statistics.InconclusiveCount">
            <summary>
            Gets or sets the number of test cases that ran and were inconclusive.
            </summary>
        </member>
        <member name="P:Gallio.Runner.Reports.Schema.Statistics.SkippedCount">
            <summary>
            Gets or sets the number of test cases that did not run.
            </summary>
        </member>
        <member name="P:Gallio.Runner.Reports.Schema.Statistics.TestCount">
            <summary>
            Gets or sets the total number of test cases.
            </summary>
        </member>
        <member name="P:Gallio.Runner.Reports.Schema.Statistics.StepCount">
            <summary>
            Gets or sets the total number of test steps.
            </summary>
        </member>
        <member name="P:Gallio.Runner.Reports.Schema.Statistics.OutcomeSummaries">
            <summary>
            Gets or sets the test outcome summaries.
            </summary>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="T:Gallio.Runner.Reports.Schema.Report">
            <summary>
            A report includes a description of the test package, the model objects,
            the combined results of all test runs and summary statistics.
            </summary>
        </member>
        <member name="M:Gallio.Runner.Reports.Schema.Report.#ctor">
            <summary>
            Creates an empty report.
            </summary>
        </member>
        <member name="M:Gallio.Runner.Reports.Schema.Report.AddLogEntry(Gallio.Runner.Reports.Schema.LogEntry)">
            <summary>
            Adds a log entry to the report.
            </summary>
            <param name="logEntry">The log entry to add.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="logEntry"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runner.Reports.Schema.Report.FormatReportName(System.String)">
            <summary>
            Formats the specified name.
            </summary>
            <remarks>
            <para>
            The following tags are processed:
            <list type="bullet">
            <item><c>{0}</c> is replaced by the start date of the test run, or by the current date if not applicable ("yyyyMMdd").</item>
            <item><c>{1}</c> is replaced by the start time of the test run, or by the current time if not applicable ("HHmmss").</item>
            </list>
            </para>
            </remarks>
            <param name="reportNameFormat">The report name format.</param>
            <returns>The resulting formatted report name.</returns>
        </member>
        <member name="P:Gallio.Runner.Reports.Schema.Report.TestPackage">
            <summary>
            Gets or sets the test package configuration, or null if none.
            </summary>
        </member>
        <member name="P:Gallio.Runner.Reports.Schema.Report.TestModel">
            <summary>
            Gets or sets the test model, or null if none.
            </summary>
        </member>
        <member name="P:Gallio.Runner.Reports.Schema.Report.TestPackageRun">
            <summary>
            Gets or sets the test package run results, or null if none.
            </summary>
        </member>
        <member name="P:Gallio.Runner.Reports.Schema.Report.LogEntries">
            <summary>
            Gets a mutable list of log entries.
            </summary>
        </member>
        <member name="T:Gallio.Runner.Reports.Schema.TestStepRun">
            <summary>
            Summarizes the execution of a single test step for reporting purposes.
            </summary>
        </member>
        <member name="M:Gallio.Runner.Reports.Schema.TestStepRun.#ctor">
            <summary>
            Creates an uninitialized instance for Xml deserialization.
            </summary>
        </member>
        <member name="M:Gallio.Runner.Reports.Schema.TestStepRun.#ctor(Gallio.Model.Schema.TestStepData)">
            <summary>
            Creates a test run step.
            </summary>
            <param name="step">Information about the step.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="step"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runner.Reports.Schema.TestStepRun.ToString">
            <summary>
            Returns the name of the test step run.
            </summary>
        </member>
        <member name="P:Gallio.Runner.Reports.Schema.TestStepRun.Step">
            <summary>
            Gets or sets information about the step.
            </summary>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runner.Reports.Schema.TestStepRun.Children">
            <summary>
            Gets the list of child step runs.
            </summary>
        </member>
        <member name="P:Gallio.Runner.Reports.Schema.TestStepRun.StartTime">
            <summary>
            Gets or sets the time when the test run started.
            </summary>
        </member>
        <member name="P:Gallio.Runner.Reports.Schema.TestStepRun.EndTime">
            <summary>
            Gets or sets the time when the test run ended.
            </summary>
        </member>
        <member name="P:Gallio.Runner.Reports.Schema.TestStepRun.Result">
            <summary>
            Gets or sets the test result from the run.
            </summary>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runner.Reports.Schema.TestStepRun.TestLog">
            <summary>
            Gets or sets the test log.
            </summary>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runner.Reports.Schema.TestStepRun.AllTestStepRuns">
            <summary>
            Recursively enumerates all test step runs including this one.
            </summary>
        </member>
        <member name="T:Gallio.Runner.RunnerException">
            <summary>
            The type of exception thrown when the test runner or one of its
            supportive components like a test domain fails in an unrecoverable manner.
            </summary>
            <remarks>
            <para>
            It can happen that the test results will be lost or incomplete.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Runner.RunnerException.#ctor">
            <summary>
            Creates an exception.
            </summary>
        </member>
        <member name="M:Gallio.Runner.RunnerException.#ctor(System.String)">
            <summary>
            Creates an exception.
            </summary>
            <param name="message">The message.</param>
        </member>
        <member name="M:Gallio.Runner.RunnerException.#ctor(System.String,System.Exception)">
            <summary>
            Creates an exception.
            </summary>
            <param name="message">The message.</param>
            <param name="innerException">The inner exception.</param>
        </member>
        <member name="M:Gallio.Runner.RunnerException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Creates an exception from serialization info.
            </summary>
            <param name="info">The serialization info.</param>
            <param name="context">The streaming context.</param>
        </member>
        <member name="T:Gallio.Model.Filters.FilterParser`1">
            <summary>
            A filter parser constructs filters from its textual representation as a filter
            expression. 
            </summary>
        </member>
        <member name="M:Gallio.Model.Filters.FilterParser`1.#ctor(Gallio.Model.Filters.IFilterFactory{`0})">
            <summary>
            Creates a filter parser.
            </summary>
            <param name="factory">The factory to use for constructing
            filters based on filter keys and a filter rule for matching string values.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="factory"/> is null.</exception>
        </member>
        <member name="M:Gallio.Model.Filters.FilterParser`1.ParseFilterSet(System.String)">
            <summary>
            Creates a filter set from its textual representation as a filter set expression
            consisting of inclusion and exclusion rules.
            </summary>
            <remarks>
            <para>
            If the filter set expression is empty or contains only whitespace then the 
            resulting filter set will be empty.
            </para>
            </remarks>
            <param name="filterSetExpr">The filter set expression.</param>
            <returns>The parsed filter set.</returns>
        </member>
        <member name="M:Gallio.Model.Filters.FilterParser`1.ParseFilter(System.String)">
            <summary>
            Creates a filter from its textual representation as a filter expression.
            </summary>
            <param name="filterExpr">The filter expression.</param>
            <returns>The parsed filter.</returns>
        </member>
        <member name="T:Gallio.Runner.Extensions.DebugExtension">
            <summary>
            Monitors <see cref="T:Gallio.Runner.ITestRunner"/> events and writes debug messages to the
            runner's logger.
            </summary>
        </member>
        <member name="M:Gallio.Runner.Extensions.DebugExtension.Initialize">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runner.Extensions.LogExtension">
            <summary>
            The log extension writes a summary of test execution progress to the test runner's logger
            so the user can monitor what's going on.
            </summary>
            <remarks>
            <para>
            Passing tests are recorded with severity <see cref="F:Gallio.Runtime.Logging.LogSeverity.Info"/>, warnings are
            recorded with severity <see cref="F:Gallio.Runtime.Logging.LogSeverity.Warning"/> and failures are recorded
            with severity <see cref="F:Gallio.Runtime.Logging.LogSeverity.Error"/>.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Runner.Extensions.LogExtension.Initialize">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runner.Extensions.LogExtension.LogAnnotation(Gallio.Model.Schema.AnnotationData)">
            <summary>
            Logs an annotation.
            </summary>
            <param name="annotation">The annotation to log.</param>
        </member>
        <member name="M:Gallio.Runner.Extensions.LogExtension.LogTestCaseStarted(Gallio.Runner.Events.TestStepStartedEventArgs)">
            <summary>
            Logs a message about a test case that has started.
            </summary>
            <remarks>
            <para>
            This method is not called for test steps that have <see cref="P:Gallio.Model.Tree.TestStep.IsTestCase"/> set to false.
            </para>
            </remarks>
            <param name="e">The event.</param>
        </member>
        <member name="M:Gallio.Runner.Extensions.LogExtension.LogTestCaseFinished(Gallio.Runner.Events.TestStepFinishedEventArgs)">
            <summary>
            Logs a message about a test case that has finished.
            </summary>
            <remarks>
            <para>
            This method is not called for test steps that have <see cref="P:Gallio.Model.Tree.TestStep.IsTestCase"/> set to false.
            </para>
            </remarks>
            <param name="e">The event.</param>
        </member>
        <member name="M:Gallio.Runner.Extensions.LogExtension.LogNonTestCaseProblem(Gallio.Runner.Events.TestStepFinishedEventArgs)">
            <summary>
            Logs a message about a non-test case that has finished with some problem that
            may have prevented other test cases from running correctly.
            </summary>
            <remarks>
            <para>
            This method is not called for steps within test cases.
            </para>
            <para>
            This method is not called for test steps that have <see cref="P:Gallio.Model.Tree.TestStep.IsTestCase"/> set to true.
            </para>
            </remarks>
            <param name="e">The event.</param>
        </member>
        <member name="T:Gallio.Runner.ResultCode">
            <summary>
            Describes the result codes used by the application.
            </summary>
        </member>
        <member name="F:Gallio.Runner.ResultCode.Success">
            <summary>
            The tests ran successfully or there were no tests to run.
            </summary>
            <value>0</value>
        </member>
        <member name="F:Gallio.Runner.ResultCode.Failure">
            <summary>
            Some tests failed.
            </summary>
            <value>1</value>
        </member>
        <member name="F:Gallio.Runner.ResultCode.Canceled">
            <summary>
            The tests were canceled.
            </summary>
            <value>2</value>
        </member>
        <member name="F:Gallio.Runner.ResultCode.FatalException">
            <summary>
            A fatal runtime exception occurred.
            </summary>
            <value>3</value>
        </member>
        <member name="F:Gallio.Runner.ResultCode.InvalidArguments">
            <summary>
            Invalid arguments were supplied on the command-line.
            </summary>
            <value>10</value>
        </member>
        <member name="F:Gallio.Runner.ResultCode.NoTests">
            <summary>
            No tests were found.
            </summary>
            <value>16</value>
        </member>
        <member name="T:Gallio.Runner.TestLauncher">
            <summary>
            The test launcher encapsulated the entire test execution lifecycle from
            start to finish and provides a simplified pattern for running tests.
            </summary>
            <remarks>
            <para>
            The basic usage pattern is as follows:
            <list type="numbered">
            <item>Create the launcher.</item>
            <item>Set properties to specify the inputs and outputs of the test run.</item>
            <item>Run the tests all in one go.</item>
            <item>Optionally do something with the contents of the final report.</item>
            </list>
            </para>
            <para>
            By default, the launcher assumes that a runtime environment has already been
            established and is accessible via the <see cref="T:Gallio.Runtime.RuntimeAccessor"/>.  If there
            is no runtime yet, then you can cause one to be configured automatically for the
            duration of the test run by setting the <see cref="P:Gallio.Runner.TestLauncher.RuntimeSetup"/> property accordingly.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Runner.TestLauncher.#ctor">
            <summary>
            Creates a launcher with default options and no test assemblies specified.
            </summary>
        </member>
        <member name="M:Gallio.Runner.TestLauncher.ClearFilePatterns">
            <summary>
            Clears the list of file patterns.
            </summary>
        </member>
        <member name="M:Gallio.Runner.TestLauncher.AddFilePattern(System.String)">
            <summary>
            Adds a file pattern if not already added to the launcher.
            </summary>
            <param name="filePattern">The file path or a wildcard pattern to add.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="filePattern"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runner.TestLauncher.RemoveFilePattern(System.String)">
            <summary>
            Removes a file pattern.
            </summary>
            <param name="filePattern">The file pattern to remove.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="filePattern"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runner.TestLauncher.ClearReportFormats">
            <summary>
            Clears the list of report formats.
            </summary>
        </member>
        <member name="M:Gallio.Runner.TestLauncher.AddReportFormat(System.String)">
            <summary>
            Adds a report format if not already added to the launcher.
            </summary>
            <param name="reportFormat">The report format to add.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="reportFormat"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runner.TestLauncher.RemoveReportFormat(System.String)">
            <summary>
            Removes a report format.
            </summary>
            <param name="reportFormat">The report format to remove.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="reportFormat"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runner.TestLauncher.Cancel">
            <summary>
            Cancels the test run and prevents a new one from starting.
            </summary>
        </member>
        <member name="M:Gallio.Runner.TestLauncher.Run">
            <summary>
            Runs the test package as configured.
            </summary>
            <remarks>
            <para>
            If <see cref="P:Gallio.Runner.TestLauncher.RuntimeSetup"/> is non-<c>null</c>,
            initializes the runtime for the duration of this method then shuts it down automatically
            before returning.  Otherwise assumes the runtime has already been initialized and
            accesses it using <see cref="T:Gallio.Runtime.RuntimeAccessor"/>.
            </para>
            <para>
            Runtimes cannot be nested.  So if the launcher is asked to initialize the runtime and
            it has already been initialized, then it will not be initialized again.
            </para>
            </remarks>
            <returns>A result object.</returns>
        </member>
        <member name="M:Gallio.Runner.TestLauncher.ConsolidateTestProject(Gallio.Runner.Projects.ITestProjectManager,System.Boolean@)">
            <summary>
            Processes test file patterns and generates a consolidated test project.
            </summary>
        </member>
        <member name="P:Gallio.Runner.TestLauncher.ProgressMonitorProvider">
            <summary>
            Gets or sets the progress monitor provider to use.
            </summary>
            <remarks>
            <para>
            The default provider is <see cref="P:Gallio.Runtime.ProgressMonitoring.NullProgressMonitorProvider.Instance"/>.
            </para>
            </remarks>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runner.TestLauncher.Logger">
            <summary>
            Gets or sets the logger to use.
            </summary>
            <remarks>
            <para>
            The default logger is <see cref="F:Gallio.Runtime.Logging.NullLogger.Instance"/>.
            </para>
            </remarks>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runner.TestLauncher.RuntimeSetup">
            <summary>
            Gets or sets the <see cref="P:Gallio.Runner.TestLauncher.RuntimeSetup"/> to use for automatically initializing
            the runtime during test execution or <c>null</c> if the runtime is already initialized.
            </summary>
            <remarks>
            <para>
            If this value if not <c>null</c> then the launcher will initialize the runtime
            using this <see cref="P:Gallio.Runner.TestLauncher.RuntimeSetup"/> (unless already initialized) just prior to
            test execution and will automatically shut down the runtime just afterwards.
            </para>
            <para>
            The default value is <c>null</c> which assumes that the runtime is already initialized.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Runner.TestLauncher.TestRunnerOptions">
            <summary>
            Gets or sets the test runner options.
            </summary>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runner.TestLauncher.FilePatterns">
            <summary>
            Gets a read-only list of test file patterns (with wildcards) or test project files
            that are to be resolved and included in the test package prior to execution.
            </summary>
        </member>
        <member name="P:Gallio.Runner.TestLauncher.TestProject">
            <summary>
            Gets or sets the test project.
            </summary>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runner.TestLauncher.TestExplorationOptions">
            <summary>
            Gets or sets the test exploration options.
            </summary>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runner.TestLauncher.TestExecutionOptions">
            <summary>
            Gets or sets the test execution options.
            </summary>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runner.TestLauncher.EchoResults">
            <summary>
            Controls whether the test runner will echo result to the <see cref="P:Gallio.Runner.TestLauncher.Logger"/>
            as each test finishes.
            </summary>
            <remarks>
            <para>
            The default value is <c>false</c>.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Runner.TestLauncher.DoNotRun">
            <summary>
            Gets or sets whether to skip test execution.
            </summary>
            <remarks>
            <para>
            This option may be used to produce a report that contains test
            metadata for consumption by other tools.
            </para>
            <para>
            The default value is <c>false</c>.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Runner.TestLauncher.ReportFormats">
            <summary>
            Gets a read-only list of report formats to generate.
            </summary>
        </member>
        <member name="P:Gallio.Runner.TestLauncher.ReportFormatterOptions">
            <summary>
            Gets or sets the report formatter options.
            </summary>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runner.TestLauncher.ShowReports">
            <summary>
            Gets or sets whether to show the reports after the test run finishes.
            </summary>
            <remarks>
            <para>
            The default value is <c>false</c>.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Runner.TestLauncher.IgnoreAnnotations">
            <summary>
            Gets or sets whether to ignore annotations when determining the result code.
            </summary>
            <remarks>
            <para>
            If false, then error annotations, usually indicative of broken tests, will cause
            a failure result to be generated.
            </para>
            <para>
            The default value is <c>false</c>.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Runner.TestLauncher.RunTimeLimit">
            <summary>
            Gets or sets the maximum amount of time the tests can run before they are canceled.
            </summary>
            <remarks>
            <para>
            The default value is <c>null</c>, meaning an infinite time.
            </para>
            </remarks>
        </member>
        <member name="T:Gallio.Runtime.Loader.DefaultAssemblyLoader">
            <summary>
            Resolves assemblies using hint paths and custom resolvers.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.Loader.IAssemblyLoader">
            <summary>
            Provides support for resolving and loading assemblies using hint paths and custom resolvers.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Loader.IAssemblyLoader.AddHintDirectory(System.String)">
            <summary>
            Adds an assembly load hint directory to search when standard assembly
            resolution fails.
            </summary>
            <param name="hintDirectory">The hint directory.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="hintDirectory"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Loader.IAssemblyLoader.AddAssemblyResolver(Gallio.Runtime.Loader.IAssemblyResolver)">
            <summary>
            Adds a custom assembly resolver to use when standard assembly resolution fails.
            </summary>
            <param name="assemblyResolver">The assembly resolver.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="assemblyResolver"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.Loader.IAssemblyLoader.LoadAssemblyFrom(System.String)">
            <summary>
            Loads an assembly from the specified file.
            </summary>
            <param name="assemblyFile">The assembly file.</param>
            <returns>The loaded assembly.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if the <paramref name="assemblyFile"/> is null.</exception>
            <exception cref="T:System.Exception">Thrown if the assembly could not be loaded.</exception>
        </member>
        <member name="M:Gallio.Runtime.Loader.DefaultAssemblyLoader.#ctor">
            <summary>
            Initializes the assembly resolver manager.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.Loader.DefaultAssemblyLoader.Dispose">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Loader.DefaultAssemblyLoader.AddHintDirectory(System.String)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Loader.DefaultAssemblyLoader.AddAssemblyResolver(Gallio.Runtime.Loader.IAssemblyResolver)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Runtime.Loader.DefaultAssemblyLoader.LoadAssemblyFrom(System.String)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Runtime.RuntimeSetup">
            <summary>
            Provides configuration parameters for setting up the <see cref="T:Gallio.Runtime.RuntimeAccessor"/>.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.RuntimeSetup.#ctor">
            <summary>
            Creates a default runtime setup.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.RuntimeSetup.Copy">
            <summary>
            Creates a deep copy of the runtime setup parameters.
            </summary>
            <returns>The copy.</returns>
        </member>
        <member name="M:Gallio.Runtime.RuntimeSetup.Canonicalize(System.String)">
            <summary>
            Makes all paths in this instance absolute.
            </summary>
            <param name="baseDirectory">The base directory for resolving relative paths,
            or null to use the current directory.</param>
        </member>
        <member name="M:Gallio.Runtime.RuntimeSetup.SetConfigurationFilePathFromAssembly(System.Reflection.Assembly)">
            <summary>
            Sets the configuration file path to the *.config file associated with an assembly.
            </summary>
            <param name="assembly">The assembly.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="assembly"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.RuntimeSetup.ClearPluginDirectories">
            <summary>
            Clears the list of plugin directories.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.RuntimeSetup.AddPluginDirectory(System.String)">
            <summary>
            Adds a plugin directory if not already in the configuration.
            </summary>
            <param name="pluginDirectory">The relative or absolute path of a directory to be
            searched for plugin configuration files in addition to the
            primary Gallio directories.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="pluginDirectory"/> is null.</exception>
        </member>
        <member name="M:Gallio.Runtime.RuntimeSetup.RemovePluginDirectory(System.String)">
            <summary>
            Removes a plugin directory.
            </summary>
            <param name="pluginDirectory">The plugin directory to remove.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="pluginDirectory"/> is null.</exception>
        </member>
        <member name="P:Gallio.Runtime.RuntimeSetup.PluginDirectories">
            <summary>
            Gets a read-only list of relative or absolute paths of directories to be
            searched for plugin configuration files in addition to the
            primary Gallio directories.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.RuntimeSetup.RuntimePath">
            <summary>
            Gets or sets the runtime path, or null to determine it automatically
            based on the location of the application itself.
            </summary>
            <remarks>
            <para>
            The runtime path specifies where the standard runtime plugins are located.
            </para>
            </remarks>
            <value>
            The runtime path.  Default is <c>null</c>.
            </value>
        </member>
        <member name="P:Gallio.Runtime.RuntimeSetup.InstallationConfiguration">
            <summary>
            Gets or sets the installation configuration which specifies characteristics
            about the Gallio installation on the local machine, or null to determine it automatically.
            </summary>
            <value>
            The installation configuration.  Default is <c>null</c>.
            </value>
        </member>
        <member name="P:Gallio.Runtime.RuntimeSetup.ConfigurationFilePath">
            <summary>
            Gets or sets the path of the primary configuration file to be
            loaded by the runtime (if it exists).
            </summary>
            <remarks>
            <para>
            This is useful  when Gallio is launched by a library instead of as a standalone
            executable.
            </para>
            </remarks>
            <value>
            The primary configuration file path.  Default is null to load the
            configuration from the <see cref="T:System.AppDomain"/>.
            </value>
        </member>
        <member name="T:Gallio.Runner.TestRunnerUtils">
            <summary>
            Provides helper functions for test runner tools.
            </summary>
        </member>
        <member name="M:Gallio.Runner.TestRunnerUtils.ShowReportDocument(System.String)">
            <summary>
            Presents a generated report to the user using the default viewing
            application for the report's document type.
            </summary>
            <param name="reportDocumentPath">The path of the report.</param>
            <returns>True if the report document was successfully opened.</returns>
        </member>
        <member name="M:Gallio.Runner.TestRunnerUtils.CreateTestRunnerByName(System.String)">
            <summary>
            Creates a test runner given its factory name.
            </summary>
            <param name="factoryName">The test runner factory name.</param>
            <returns>The test runner.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="factoryName"/> is null.</exception>
        </member>
        <member name="T:Gallio.Common.Diagnostics.ExceptionUtils">
            <summary>
            Provides helper functions for manipulating <see cref="T:System.Exception"/>s.
            </summary>
        </member>
        <member name="M:Gallio.Common.Diagnostics.ExceptionUtils.SafeToString(System.Exception)">
            <summary>
            Safely converts an exception to a string.
            </summary>
            <remarks>
            <para>
            This method protects the caller from unexpected failures that may occur while
            reporting an exception of untrusted origin.  If an error occurs while converting the
            exception to a string, this method returns a generic description of the exception
            that can be used instead of the real thing.
            </para>
            <para>
            It can happen that converting an exception to a string produces a secondary exception
            because the <see cref="M:System.Exception.ToString"/> method has been overridden or because the
            stack frames associated with the exception are malformed.  For example, we observed
            one case of a <see cref="T:System.TypeLoadException"/> being thrown while printing an exception
            because one of the stack frames referred to a dynamic method with incorrect metadata.
            </para>
            </remarks>
            <param name="ex">The exception.</param>
            <returns>The string contents.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="ex"/> is null.</exception>
            <seealso cref="M:System.Exception.ToString"/>
        </member>
        <member name="M:Gallio.Common.Diagnostics.ExceptionUtils.SafeGetMessage(System.Exception)">
            <summary>
            Safely obtains the <see cref="P:System.Exception.Message"/> component of an exception.
            </summary>
            <returns>The message.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="ex"/> is null.</exception>
            <seealso cref="M:Gallio.Common.Diagnostics.ExceptionUtils.SafeToString(System.Exception)"/>
        </member>
        <member name="M:Gallio.Common.Diagnostics.ExceptionUtils.SafeGetStackTrace(System.Exception)">
            <summary>
            Safely obtains the <see cref="P:System.Exception.StackTrace"/> component of an exception.
            </summary>
            <returns>The stack trace.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="ex"/> is null.</exception>
            <seealso cref="M:Gallio.Common.Diagnostics.ExceptionUtils.SafeToString(System.Exception)"/>
        </member>
        <member name="M:Gallio.Common.Diagnostics.ExceptionUtils.RethrowWithNoStackTraceLoss(System.Exception)">
            <summary>
            Rethrows an exception without discarding its stack trace.
            This enables the inner exception of <see cref="T:System.Reflection.TargetInvocationException"/>
            to be unwrapped.
            </summary>
            <remarks>
            <remarks>
            This implementation is based on code by <a href="http://bradwilson.typepad.com/">Brad Wilson</a>.
            </remarks>
            </remarks>
            <param name="ex">The exception to rethrow.</param>
        </member>
        <member name="M:Gallio.Common.Diagnostics.ExceptionUtils.InvokeMethodWithoutTargetInvocationException(System.Reflection.MethodBase,System.Object,System.Object[])">
            <summary>
            Invokes a method without producing a <see cref="T:System.Reflection.TargetInvocationException"/>
            </summary>
            <param name="method">The method to invoke.</param>
            <param name="obj">The instance on which to invoke the method, or null if none.</param>
            <param name="args">The method arguments, or null if none.</param>
            <returns>The method return value, or null if none.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="method"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Diagnostics.ExceptionUtils.InvokeConstructorWithoutTargetInvocationException(System.Reflection.ConstructorInfo,System.Object[])">
            <summary>
            Invokes a constructor without producing a <see cref="T:System.Reflection.TargetInvocationException"/>
            </summary>
            <param name="constructor">The constructor to invoke.</param>
            <param name="args">The constructor arguments, or null if none.</param>
            <returns>The new instance, or null if none.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="constructor"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Diagnostics.ExceptionUtils.CreateInstanceWithoutTargetInvocationException(System.Type,System.Object[])">
            <summary>
            Creates an object using <see cref="M:System.Activator.CreateInstance(System.Type)"/> without producing a <see cref="T:System.Reflection.TargetInvocationException"/>
            </summary>
            <param name="type">The type of object to create.</param>
            <param name="args">The constructor arguments, or null if none.</param>
            <returns>The new instance, or null if none.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="type"/> is null.</exception>
        </member>
        <member name="T:Gallio.Common.IO.FileUtils">
            <summary>
            Utilities for manipulating files.
            </summary>
        </member>
        <member name="M:Gallio.Common.IO.FileUtils.EncodeFileName(System.String)">
            <summary>
            Replaces invalid characters in a file or directory name with underscores
            and trims it if it is too long.
            </summary>
            <param name="fileName">The file or directory name.</param>
            <returns>The encoded file or directory name.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="fileName"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.IO.FileUtils.GetFullPathOfParentDirectory(System.String)">
            <summary>
            Gets the full path of the containing directory.
            </summary>
            <param name="path">The path.</param>
            <returns>The full path of the parent directory or null if it is at the root.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="path"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.IO.FileUtils.CopyAll(System.String,System.String,System.Boolean)">
            <summary>
            Recursively copies files and folders from the source path to the destination.
            </summary>
            <param name="sourcePath">The source file or directory path.</param>
            <param name="destPath">The destination file or directory path.</param>
            <param name="overwrite">If true, overwrites existing files in the destination.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="sourcePath"/> or <paramref name="destPath"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.IO.FileUtils.CopyAllIndirect(System.String,System.String,System.Action{System.String},Gallio.Common.Action{System.String,System.String})">
            <summary>
            Recursively copies files and folders from the source path to the destination
            using an indirect mechanism to actually create a file or folder.
            </summary>
            <param name="sourcePath">The source file or directory path.</param>
            <param name="destPath">The destination file or directory path.</param>
            <param name="createDirectoryAction">A delegate used to create a directory with a given destination directory path, or null to do nothing.</param>
            <param name="copyFileAction">A delegate used to copy a source file to a given destination file path, or null to do nothing.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="sourcePath"/> or <paramref name="destPath"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.IO.FileUtils.DeleteAll(System.String)">
            <summary>
            Recursively deletes a file or directory.
            Does nothing if the file or directory does not exist.
            </summary>
            <param name="path">The path.</param>
        </member>
        <member name="M:Gallio.Common.IO.FileUtils.CanonicalizePaths(System.String,System.Collections.Generic.IList{System.String})">
            <summary>
            Makes all paths in the list absolute.
            </summary>
            <param name="baseDirectory">The base directory for resolving relative paths,
            or null to use the current directory.</param>
            <param name="paths">The list of paths to canonicalize in place.</param>
        </member>
        <member name="M:Gallio.Common.IO.FileUtils.CanonicalizePath(System.String,System.String)">
            <summary>
            Makes an absolute path.
            </summary>
            <param name="baseDirectory">The base directory for resolving relative paths,
            or null to use the current directory.</param>
            <param name="path">The path to canonicalize, or null if none.</param>
            <returns>The absolute path, or null if none.</returns>
        </member>
        <member name="M:Gallio.Common.IO.FileUtils.StripTrailingBackslash(System.String)">
            <summary>
            Strips the trailing backslash off of a directory path, if present.
            </summary>
            <param name="path">The path to strip, or null if none.</param>
            <returns>The stripped path, or null if none.</returns>
        </member>
        <member name="M:Gallio.Common.IO.FileUtils.CopyStreamContents(System.IO.Stream,System.IO.Stream)">
            <summary>
            <para>
            Copies the contents of a source stream to a destination stream.
            </para>
            </summary>
            <remarks>
            Does not close either stream.
            </remarks>
            <param name="sourceStream">The source stream.</param>
            <param name="destStream">The destination stream.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="sourceStream"/>
            or <paramref name="destStream"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.IO.FileUtils.MakeRelativePath(System.String,System.String)">
            <summary>
            Makes a relative path from an absolute path if possible.
            </summary>
            <param name="absolutePath">The absolute path.</param>
            <param name="basePath">The base path.</param>
            <returns>The path relative to the base path, or an absolute path if the paths are unrelated.</returns>
        </member>
        <member name="M:Gallio.Common.IO.FileUtils.MakeAbsolutePath(System.String,System.String)">
            <summary>
            Makes an absolute path from an relative path if possible.
            </summary>
            <param name="relativePath">The relative path.</param>
            <param name="basePath">The base path.</param>
            <returns>The absolute path.</returns>
        </member>
        <member name="T:Gallio.Common.Hash64">
            <summary>
            A 64 bit hash code value type.
            </summary>
            <remarks>
            <para>
            Provides somewhat more protection against collisions than 32 bit hashes.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Common.Hash64.#ctor(System.Int64)">
            <summary>
            Gets a hash code containing the specified 64bit value.
            </summary>
            <param name="value">The 64bit value.</param>
        </member>
        <member name="M:Gallio.Common.Hash64.CreateUniqueHash">
            <summary>
            Creates a proabilistically unique 64bit hash code.
            </summary>
        </member>
        <member name="M:Gallio.Common.Hash64.Add(System.String)">
            <summary>
            Produces a new hash code by combining information from the specified string
            with this hash code.
            </summary>
            <param name="str">The string, may be null if none.</param>
            <returns>The augmented hash code.</returns>
        </member>
        <member name="M:Gallio.Common.Hash64.Equals(Gallio.Common.Hash64)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Hash64.Equals(System.Object)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Hash64.GetHashCode">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Hash64.ToString">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Framework.TestContext">
            <summary>
            The test context provides information about the environment in which
            a test is executing.  A new context is created each time a test or
            test step begins execution.
            </summary>
            <remarks>
            <para>
            Test contexts are arranged in a hierarchy that corresponds to the order in which
            the contexts were entered.  Thus the context for a test likely has as
            its parent the context for its containing test fixture.
            </para>
            <para>
            Arbitrary user data can be associated with a test context.  Furthermore, client
            code may attach <see cref="E:Gallio.Framework.TestContext.Finishing"/> event handlers to perform resource
            reclamation just prior to marking the test step as finished.
            </para>
            </remarks>
            <seealso cref="T:Gallio.Framework.TestStep"/>
        </member>
        <member name="M:Gallio.Framework.TestContext.#ctor(Gallio.Model.Contexts.ITestContext,Gallio.Framework.Sandbox)">
            <summary>
            Creates a wrapper for a <see cref="T:Gallio.Model.Contexts.ITestContext"/>.
            </summary>
            <param name="inner">The context to wrap.</param>
            <param name="sandbox">The sandbox to use, or null if none.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="inner"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.TestContext.SetThreadDefaultContext(System.Threading.Thread,Gallio.Framework.TestContext)">
            <summary>
            Sets the default context for the specified thread.
            </summary>
            <remarks>
            <para>
            The default context for a thread is <see cref="P:Gallio.Framework.TestContext.GlobalContext"/> unless the thread's
            default context has been overridden with <see cref="M:Gallio.Framework.TestContext.SetThreadDefaultContext(System.Threading.Thread,Gallio.Framework.TestContext)"/>.
            </para>
            <para>
            Changing the default context of a thread is useful for capturing existing threads created
            outside of a test into a particular context.  Among other things, this ensures that side-effects
            of the thread, such as writing text to the console, are recorded as part of the step
            represented by the specified context.
            </para>
            </remarks>
            <param name="thread">The thread.</param>
            <param name="context">The context to associate with the thread, or null to reset the
            thread's default context to inherit the <see cref="P:Gallio.Framework.TestContext.GlobalContext"/> once again.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="thread"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.TestContext.GetThreadDefaultContext(System.Threading.Thread)">
            <summary>
            Gets the default context for the specified thread.
            </summary>
            <remarks>
            <para>
            The default context for a thread is <see cref="P:Gallio.Framework.TestContext.GlobalContext"/> unless the thread's
            default context has been overridden with <see cref="M:Gallio.Framework.TestContext.SetThreadDefaultContext(System.Threading.Thread,Gallio.Framework.TestContext)"/>.
            </para>
            <para>
            Changing the default context of a thread is useful for capturing existing threads created
            outside of a test into a particular context.  Among other things, this ensures that side-effects
            of the thread, such as writing text to the console, are recorded as part of the step
            represented by the specified context.
            </para>
            </remarks>
            <param name="thread">The thread.</param>
            <returns>The default context.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="thread"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.TestContext.EnterContext(Gallio.Framework.TestContext)">
            <summary>
            Enters the specified context with the current thread.
            </summary>
            <remarks>
            <para>
            Conceptually this method pushes the specified context onto the context
            stack for the current thread.  It then returns a cookie that can be used
            to restore the current thread's context to its previous value.
            </para>
            </remarks>
            <param name="context">The context to enter, or null to enter a scope
            without a context.</param>
            <returns>A cookie that can be used to restore the current thread's context to its previous value.</returns>
            <seealso cref="T:Gallio.Framework.TestContextCookie"/>
        </member>
        <member name="M:Gallio.Framework.TestContext.AutoExecute(Gallio.Framework.TriggerEvent,Gallio.Common.Action)">
            <summary>
            Automatically executes an action when a triggering event occurs.
            </summary>
            <param name="triggerEvent">The triggering event.</param>
            <param name="triggerAction">The action to execute when triggered.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="triggerAction"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.TestContext.AutoExecute(Gallio.Framework.TriggerEvent,Gallio.Common.Action,Gallio.Common.Action)">
            <summary>
            Automatically executes an action when a triggering event occurs.
            </summary>
            <param name="triggerEvent">The triggering event.</param>
            <param name="triggerAction">The action to execute when triggered.</param>
            <param name="cleanupAction">The action to execute to clean up after triggering or when the test finishes without triggering having occurred, or null if none.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="triggerAction"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.TestContext.IsTriggerEventSatisfied(Gallio.Framework.TriggerEvent)">
            <summary>
            Returns true if a trigger event has been satisfied.
            </summary>
            <remarks>
            <para>
            This method assumes that the body of the test has already finished and is
            currently running tear down, dispose, or finishing actions.
            </para>
            </remarks>
            <param name="triggerEvent">The trigger event.</param>
            <returns>True if the trigger event is satisfied.</returns>
        </member>
        <member name="M:Gallio.Framework.TestContext.RunStep(System.String,Gallio.Common.Action,System.Nullable{System.TimeSpan},System.Boolean,Gallio.Common.Reflection.ICodeElementInfo)">
            <summary>
            Performs an action as a new step within the current context and associates it
            with the specified code reference.  Does not verify the outcome of the step.
            </summary>
            <remarks>
            <para>
            This method creates a new child context with a new nested <see cref="T:Gallio.Model.Tree.TestStep"/>,
            enters the child context, performs the action, then exits the child context.
            </para>
            <para>
            This method may be called recursively to create nested steps or concurrently
            to create parallel steps.
            </para>
            <para>
            This method does not verify that the test step completed successfully.  Check the
            <see cref="P:Gallio.Framework.TestContext.Outcome"/> of the test step or call <see cref="M:Gallio.Framework.TestContext.RunStepAndVerifyOutcome(System.String,Gallio.Common.Action,System.Nullable{System.TimeSpan},System.Boolean,Gallio.Common.Reflection.ICodeElementInfo,Gallio.Model.TestOutcome)"/>
            to ensure that the expected outcome was obtained.
            </para>
            </remarks>
            <param name="name">The name of the step.</param>
            <param name="action">The action to perform.</param>
            <param name="timeout">The step execution timeout, or null if none.</param>
            <param name="isTestCase">True if the step represents an independent test case.</param>
            <param name="codeElement">The associated code element, or null if none.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="name"/> or
            <paramref name="action"/> is null.</exception>
            <returns>The context of the step that ran.</returns>
            <exception cref="T:System.ArgumentException">Thrown if <paramref name="name"/> is the empty string.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="timeout"/> is negative.</exception>
        </member>
        <member name="M:Gallio.Framework.TestContext.RunStepAndVerifyOutcome(System.String,Gallio.Common.Action,System.Nullable{System.TimeSpan},System.Boolean,Gallio.Common.Reflection.ICodeElementInfo,Gallio.Model.TestOutcome)">
            <summary>
            Performs an action as a new step within the current context and associates it
            with the specified code reference.  Verifies that the step produced the expected outcome.
            </summary>
            <remarks>
            <para>
            This method creates a new child context with a new nested <see cref="T:Gallio.Model.Tree.TestStep"/>,
            enters the child context, performs the action, then exits the child context.
            </para>
            <para>
            This method may be called recursively to create nested steps or concurrently
            to create parallel steps.
            </para>
            <para>
            This method verifies that the step produced the expected outcome.  If a different outcome
            was obtained, then raises an assertion failure.
            </para>
            </remarks>
            <param name="name">The name of the step.</param>
            <param name="action">The action to perform.</param>
            <param name="timeout">The step execution timeout, or null if none.</param>
            <param name="isTestCase">True if the step represents an independent test case.</param>
            <param name="codeElement">The associated code element, or null if none.</param>
            <param name="expectedOutcome">The expected outcome of the step.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="name"/> or
            <paramref name="action"/> is null.</exception>
            <returns>The context of the step that ran.</returns>
            <exception cref="T:System.ArgumentException">Thrown if <paramref name="name"/> is the empty string.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="timeout"/> is negative.</exception>
            <exception cref="T:Gallio.Framework.Assertions.AssertionFailureException">Thrown if the expected outcome was not obtained.</exception>
        </member>
        <member name="M:Gallio.Framework.TestContext.AddMetadata(System.String,System.String)">
            <summary>
            Adds metadata to the step that is running in the context.
            </summary>
            <param name="metadataKey">The metadata key.</param>
            <param name="metadataValue">The metadata value.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="metadataKey"/>
            or <paramref name="metadataValue"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.TestContext.SetInterimOutcome(Gallio.Model.TestOutcome)">
            <summary>
            Sets the step's interim <see cref="P:Gallio.Framework.TestContext.Outcome"/>.
            </summary>
            <remarks>
            <para>
            The interim outcome is used to communicate the anticipated outcome 
            of the step to later phases of execution.
            </para>
            <para>
            The value set here will be overridden by whatever final outcome the step
            returns.  Consequently the actual outcome may still differ from the anticipated outcome
            that was set using this method.
            </para>
            </remarks>
            <exception cref="T:System.InvalidOperationException">Thrown if attempting to set the outcome while the test is not running.</exception>
            <seealso cref="P:Gallio.Framework.TestContext.Outcome"/>
        </member>
        <member name="M:Gallio.Framework.TestContext.Enter">
            <summary>
            Enters this context with the current thread.
            </summary>
            <remarks>
            <para>
            Conceptually this method pushes this context onto the context
            stack for the current thread.  It then returns a cookie that can be used
            to restore the current thread's context to its previous value.
            </para>
            </remarks>
            <returns>A cookie that can be used to restore the current thread's context to its previous value.</returns>
            <seealso cref="T:Gallio.Framework.TestContextCookie"/>
        </member>
        <member name="M:Gallio.Framework.TestContext.IncrementAssertCount">
            <summary>
            Increments the assert count atomically.
            </summary>
        </member>
        <member name="M:Gallio.Framework.TestContext.AddAssertCount(System.Int32)">
            <summary>
            Adds the specified amount to the assert count atomically.
            </summary>
            <param name="value">The amount to add to the assert count.</param>
        </member>
        <member name="M:Gallio.Framework.TestContext.PublishMessage(Gallio.Common.Messaging.Message)">
            <summary>
            Publishes a message to the message sink.
            </summary>
            <param name="message">The message to publish.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="message"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.TestContext.StartChildStep(System.String,Gallio.Common.Reflection.ICodeElementInfo,System.Boolean)">
            <summary>
            Starts a child step of the context.
            </summary>
            <param name="name">The name of the step.</param>
            <param name="codeElement">The code element, or null if none.</param>
            <param name="isTestCase">True if the step represents an independent test case.</param>
            <returns>The context of the child step.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="name"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.TestContext.FinishStep(Gallio.Model.TestOutcome)">
            <summary>
            Finishes the step represented by the context.
            </summary>
            <param name="outcome">The outcome.</param>
            <returns>The final test result.</returns>
        </member>
        <member name="M:Gallio.Framework.TestContext.PrepareContext(Gallio.Model.Contexts.ITestContext,Gallio.Framework.Sandbox)">
            <summary>
            Prepares a <see cref="T:Gallio.Framework.TestContext"/> wrapper for the given inner context.
            </summary>
            <remarks>
            <para>
            The wrapper is cached for the duration of the lifetime of the inner context.
            </para>
            </remarks>
            <param name="inner">The new inner context.</param>
            <param name="sandbox">The sandbox to use, or null if none.</param>
            <returns>The wrapper context.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="inner"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.TestContext.WrapContext(Gallio.Model.Contexts.ITestContext)">
            <summary>
            Wraps an existing context.
            </summary>
            <remarks>
            <para>
            If the context has already been prepared, returns
            the prepared context.  Otherwise creates a new wrapper.
            </para>
            </remarks>
            <param name="inner">The context to wrap, or null if none.</param>
            <returns>The wrapped context, or null if none.</returns>
        </member>
        <member name="P:Gallio.Framework.TestContext.CurrentContext">
            <summary>
            Gets the context of the current thread, or null if there is no
            current context.
            </summary>
        </member>
        <member name="P:Gallio.Framework.TestContext.GlobalContext">
            <summary>
            Gets the global context of the environment, or null if there is no
            such context.
            </summary>
        </member>
        <member name="P:Gallio.Framework.TestContext.Parent">
            <summary>
            Gets the parent context or null if this context has no parent.
            </summary>
        </member>
        <member name="P:Gallio.Framework.TestContext.Test">
            <summary>
            Gets the test associated with the context.
            </summary>
        </member>
        <member name="P:Gallio.Framework.TestContext.TestStep">
            <summary>
            Gets the test step associated with the context.
            </summary>
        </member>
        <member name="P:Gallio.Framework.TestContext.LogWriter">
            <summary>
            Gets the log writer for this context.
            </summary>
            <remarks>
            <para>
            Each test step gets its own log writer that is distinct from those
            of other steps.  So the log writer returned by this property is
            particular to the step represented by this test context.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Framework.TestContext.Sandbox">
            <summary>
            Gets the sandbox of the test step, or null if none.
            </summary>
            <remarks>
            <para>
            The value will typically only be null in the case where the test step
            belongs to a different test framework that does not use sandboxes.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Framework.TestContext.LifecyclePhase">
            <summary>
            Gets or sets the lifecycle phase the context is in.
            </summary>
            <seealso cref="T:Gallio.Model.LifecyclePhases"/>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="P:Gallio.Framework.TestContext.AssertCount">
            <summary>
            Gets the current assertion count.
            </summary>
        </member>
        <member name="P:Gallio.Framework.TestContext.Outcome">
            <summary>
            Gets the step's outcome or its interim outcome if the test is still running.
            </summary>
            <remarks>
            <para>
            The value of this property is initially <see cref="P:Gallio.Model.TestOutcome.Passed"/> but may change
            over the course of execution to reflect the anticipated outcome of the test.  When
            the test finishes, its outcome is frozen.
            </para>
            <para>
            For example, this property enables code running as part of the tear down phase to
            determine whether the test is failing and to perform different actions in that case.
            </para>
            </remarks>
            <seealso cref="M:Gallio.Framework.TestContext.SetInterimOutcome(Gallio.Model.TestOutcome)"/>
        </member>
        <member name="P:Gallio.Framework.TestContext.Result">
            <summary>
            Gets a copy of the step's final result or null if the test has not finished yet.
            </summary>
            <remarks>
            <para>
            The test result cannot be changed.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Framework.TestContext.IsFinished">
            <summary>
            Returns true if the step associated with the context has finished execution
            and completed all <see cref="E:Gallio.Framework.TestContext.Finishing"/> actions.
            </summary>
        </member>
        <member name="P:Gallio.Framework.TestContext.Data">
            <summary>
            Gets the user data collection associated with the context.  It may be used
            to associate arbitrary key/value pairs with the context.
            </summary>
            <remarks>
            <para>
            Each context has its own distinct user data collection.
            </para>
            </remarks>
        </member>
        <member name="E:Gallio.Framework.TestContext.Finishing">
            <summary>
            The <see cref="E:Gallio.Framework.TestContext.Finishing"/> event is raised when the test is finishing to provide
            clients with an opportunity to perform additional clean up tasks after all ordinary
            test processing is finished.
            </summary>
        </member>
        <member name="T:Gallio.Framework.TestContextCookie">
            <summary>
            A context cookie is used to unwind the context stack of the current thread
            to its previous state prior to a context having been entered.
            </summary>
        </member>
        <member name="M:Gallio.Framework.TestContextCookie.#ctor(System.IDisposable)">
            <summary>
            Creates a context cookie with a given dispose action.
            </summary>
            <param name="inner">The inner disposable object.</param>
        </member>
        <member name="M:Gallio.Framework.TestContextCookie.Dispose">
            <summary>
            Exits the context that was entered when the cookie was granted.
            </summary>
            <remarks>
            <para>
            Equivalent to calling <see cref="M:Gallio.Framework.TestContextCookie.ExitContext"/>.  This method is provded as a
            convenience for use with the C# using statement.
            </para>
            <para>
            This method will also exit nested contexts on the current thread that were
            entered after the context for which this cookie was produced but have not
            yet been exited.
            </para>
            </remarks>
            <exception cref="T:System.InvalidOperationException">Thrown if the cookie belongs to a different
            <see cref="T:System.Threading.Thread"/> or if the context was already exited.</exception>
            <exception cref="T:System.ObjectDisposedException">Thrown if the context manager has been disposed.</exception>
        </member>
        <member name="M:Gallio.Framework.TestContextCookie.ExitContext">
            <summary>
            Exits the context that was entered when the cookie was granted.
            </summary>
            <remarks>
            <para>
            This method will also exit nested contexts on the current thread that were
            entered after the context for which this cookie was produced but have not
            yet been exited.
            </para>
            </remarks>
            <exception cref="T:System.InvalidOperationException">Thrown if the cookie belongs to a different
            <see cref="T:System.Threading.Thread"/> or if the context was already exited.</exception>
            <exception cref="T:System.ObjectDisposedException">Thrown if the context manager has been disposed.</exception>
        </member>
        <member name="T:Gallio.Runtime.Loader.IAssemblyResolver">
            <summary>
            A custom assembly resolver participates in assembly resolution when
            standard assembly resolution fails to load the desired assembly
            but before assembly load paths are considered.
            </summary>
            <seealso cref="E:System.AppDomain.AssemblyResolve"/>
        </member>
        <member name="M:Gallio.Runtime.Loader.IAssemblyResolver.Resolve(System.String,System.Boolean)">
            <summary>
            Resolves the assembly with the specified name.
            </summary>
            <param name="assemblyName">The full name of the assembly as was provided
            to <see cref="M:System.Reflection.Assembly.Load(System.String)"/>.</param>
            <param name="reflectionOnly">True if the assembly is to be resolved in the
            reflection-only context.</param>
            <returns>The assembly, or null if it could not be resolved.</returns>
        </member>
        <member name="T:Gallio.Common.ActionChain">
            <summary>
            An action chain captures a sequence of actions to be performed as
            part of a complex multi-part process.
            </summary>
            <remarks>
            Later actions in a chain will not run if prior ones throw an exception.
            To catch and handle exceptions, use <see cref="M:Gallio.Common.ActionChain.Around(Gallio.Common.ActionDecorator)"/> to register a
            decorator that runs around the current action whose execution is then
            under your control.
            </remarks>
        </member>
        <member name="F:Gallio.Common.ActionChain.NoOp">
            <summary>
            Gets a singleton action that does nothing when invoked.
            </summary>
        </member>
        <member name="M:Gallio.Common.ActionChain.Before(Gallio.Common.Action)">
            <summary>
            Registers an action to perform before all other actions
            currently in the chain.
            </summary>
            <remarks>
            <para>
            The value of <see cref="P:Gallio.Common.ActionChain.Action"/> will be set to a new instance
            that performs the specified <paramref name="action"/> before
            the current <see cref="P:Gallio.Common.ActionChain.Action"/>.
            </para>
            </remarks>
            <param name="action">The action to register.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="action"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.ActionChain.After(Gallio.Common.Action)">
            <summary>
            Registers an action to perform after all other actions
            currently in the chain.
            </summary>
            <remarks>
            <para>
            The value of <see cref="P:Gallio.Common.ActionChain.Action"/> will be set to a new instance
            that performs the specified <paramref name="action"/> after
            the current <see cref="P:Gallio.Common.ActionChain.Action"/>.
            </para>
            </remarks>
            <param name="action">The action to register.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="action"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.ActionChain.Around(Gallio.Common.ActionDecorator)">
            <summary>
            Registers an action to perform around all other actions
            currently in the chain.  The contained part of the chain
            is passed in as an action to the decorator that the decorator
            can choose to run (or not) as needed.
            </summary>
            <remarks>
            <para>
            The value of <see cref="P:Gallio.Common.ActionChain.Action"/> will be set to a new instance
            that performs the specified <paramref name="decorator"/> around
            the current <see cref="P:Gallio.Common.ActionChain.Action"/>.
            </para>
            </remarks>
            <param name="decorator">The decorator to register.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="decorator"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.ActionChain.Clear">
            <summary>
            Clears the chain and sets it action to <see cref="F:Gallio.Common.ActionChain.NoOp"/>.
            </summary>
        </member>
        <member name="P:Gallio.Common.ActionChain.Action">
            <summary>
            Gets or sets a representation of the chain as a single action.
            </summary>
            <remarks>
            <para>
            The action is progressively augmented as new contributions are
            registered using <see cref="M:Gallio.Common.ActionChain.Before(Gallio.Common.Action)"/>, <see cref="M:Gallio.Common.ActionChain.After(Gallio.Common.Action)"/> and
            <see cref="M:Gallio.Common.ActionChain.Around(Gallio.Common.ActionDecorator)"/>.  By default the action is <see cref="F:Gallio.Common.ActionChain.NoOp"/>.
            </para>
            </remarks>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="T:Gallio.Common.ActionChain`1">
            <summary>
            An action chain captures a sequence of actions to be performed as
            part of a complex multi-part process.
            </summary>
            <remarks>
            Later actions in a chain will not run if prior ones throw an exception.
            To catch and handle exceptions, use <see cref="M:Gallio.Common.ActionChain`1.Around(Gallio.Common.ActionDecorator{`0})"/> to register a
            decorator that runs around the current action whose execution is then
            under your control.
            </remarks>
            <typeparam name="T">The action argument type.</typeparam>
        </member>
        <member name="F:Gallio.Common.ActionChain`1.NoOp">
            <summary>
            Gets a singleton action that does nothing when invoked.
            </summary>
        </member>
        <member name="M:Gallio.Common.ActionChain`1.Before(System.Action{`0})">
            <summary>
            Registers an action to perform before all other actions
            currently in the chain.
            </summary>
            <remarks>
            <para>
            The value of <see cref="P:Gallio.Common.ActionChain`1.Action"/> will be set to a new instance
            that performs the specified <paramref name="action"/> before
            the current <see cref="P:Gallio.Common.ActionChain`1.Action"/>.
            </para>
            </remarks>
            <param name="action">The action to register.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="action"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.ActionChain`1.After(System.Action{`0})">
            <summary>
            Registers an action to perform after all other actions
            currently in the chain.
            </summary>
            <remarks>
            <para>
            The value of <see cref="P:Gallio.Common.ActionChain`1.Action"/> will be set to a new instance
            that performs the specified <paramref name="action"/> after
            the current <see cref="P:Gallio.Common.ActionChain`1.Action"/>.
            </para>
            </remarks>
            <param name="action">The action to register.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="action"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.ActionChain`1.Around(Gallio.Common.ActionDecorator{`0})">
            <summary>
            Registers an action to perform around all other actions
            currently in the chain.  The contained part of the chain
            is passed in as an action to the decorator that the decorator
            can choose to run (or not) as needed.
            </summary>
            <remarks>
            <para>
            The value of <see cref="P:Gallio.Common.ActionChain`1.Action"/> will be set to a new instance
            that performs the specified <paramref name="decorator"/> around
            the current <see cref="P:Gallio.Common.ActionChain`1.Action"/>.
            </para>
            </remarks>
            <param name="decorator">The decorator to register.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="decorator"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.ActionChain`1.Clear">
            <summary>
            Clears the chain and sets it action to <see cref="F:Gallio.Common.ActionChain`1.NoOp"/>.
            </summary>
        </member>
        <member name="P:Gallio.Common.ActionChain`1.Action">
            <summary>
            Gets or sets a representation of the chain as a single action.
            </summary>
            <remarks>
            <para>
            The action is progressively augmented as new contributions are
            registered using <see cref="M:Gallio.Common.ActionChain`1.Before(System.Action{`0})"/>, <see cref="M:Gallio.Common.ActionChain`1.After(System.Action{`0})"/> and
            <see cref="M:Gallio.Common.ActionChain`1.Around(Gallio.Common.ActionDecorator{`0})"/>.  By default the action is <see cref="F:Gallio.Common.ActionChain`1.NoOp"/>.
            </para>
            </remarks>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="T:Gallio.Common.ActionChain`2">
            <summary>
            An action chain captures a sequence of actions to be performed as
            part of a complex multi-part process.
            </summary>
            <remarks>
            <para>
            Later actions in a chain will not run if prior ones throw an exception.
            To catch and handle exceptions, use <see cref="M:Gallio.Common.ActionChain`2.Around(Gallio.Common.ActionDecorator{`0,`1})"/> to register a
            decorator that runs around the current action whose execution is then
            under your control.
            </para>
            </remarks>
            <typeparam name="T1">The first argument type.</typeparam>
            <typeparam name="T2">The second argument type.</typeparam>
        </member>
        <member name="F:Gallio.Common.ActionChain`2.NoOp">
            <summary>
            Gets a singleton action that does nothing when invoked.
            </summary>
        </member>
        <member name="M:Gallio.Common.ActionChain`2.Before(Gallio.Common.Action{`0,`1})">
            <summary>
            Registers an action to perform before all other actions
            currently in the chain.
            </summary>
            <remarks>
            <para>
            The value of <see cref="P:Gallio.Common.ActionChain`2.Action"/> will be set to a new instance
            that performs the specified <paramref name="action"/> before
            the current <see cref="P:Gallio.Common.ActionChain`2.Action"/>.
            </para>
            </remarks>
            <param name="action">The action to register.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="action"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.ActionChain`2.After(Gallio.Common.Action{`0,`1})">
            <summary>
            Registers an action to perform after all other actions
            currently in the chain.
            </summary>
            <remarks>
            <para>
            The value of <see cref="P:Gallio.Common.ActionChain`2.Action"/> will be set to a new instance
            that performs the specified <paramref name="action"/> after
            the current <see cref="P:Gallio.Common.ActionChain`2.Action"/>.
            </para>
            </remarks>
            <param name="action">The action to register.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="action"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.ActionChain`2.Around(Gallio.Common.ActionDecorator{`0,`1})">
            <summary>
            Registers an action to perform around all other actions
            currently in the chain.  The contained part of the chain
            is passed in as an action to the decorator that the decorator
            can choose to run (or not) as needed.
            </summary>
            <remarks>
            <para>
            The value of <see cref="P:Gallio.Common.ActionChain`2.Action"/> will be set to a new instance
            that performs the specified <paramref name="decorator"/> around
            the current <see cref="P:Gallio.Common.ActionChain`2.Action"/>.
            </para>
            </remarks>
            <param name="decorator">The decorator to register.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="decorator"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.ActionChain`2.Clear">
            <summary>
            Clears the chain and sets it action to <see cref="F:Gallio.Common.ActionChain`2.NoOp"/>.
            </summary>
        </member>
        <member name="P:Gallio.Common.ActionChain`2.Action">
            <summary>
            Gets or sets a representation of the chain as a single action.
            </summary>
            <remarks>
            <para>
            The action is progressively augmented as new contributions are
            registered using <see cref="M:Gallio.Common.ActionChain`2.Before(Gallio.Common.Action{`0,`1})"/>, <see cref="M:Gallio.Common.ActionChain`2.After(Gallio.Common.Action{`0,`1})"/> and
            <see cref="M:Gallio.Common.ActionChain`2.Around(Gallio.Common.ActionDecorator{`0,`1})"/>.  By default the action is <see cref="F:Gallio.Common.ActionChain`2.NoOp"/>.
            </para>
            </remarks>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="T:Gallio.Common.ActionDecorator">
            <summary>
            Represents a delegate that decorates an action.
            </summary>
            <param name="action">The action to decorate which should be called in
            the middle of applying the decoration.</param>
        </member>
        <member name="T:Gallio.Common.ActionDecorator`1">
            <summary>
            Represents a delegate that decorates an action.
            </summary>
            <typeparam name="T">The type of object the action is performed upon.</typeparam>
            <param name="obj">The object to act upon.</param>
            <param name="action">The action to decorate which should be called in
            the middle of applying the decoration.</param>
        </member>
        <member name="T:Gallio.Common.ActionDecorator`2">
            <summary>
            Represents a delegate that decorates an action.
            </summary>
            <typeparam name="T1">The first argument type.</typeparam>
            <typeparam name="T2">The second argument type.</typeparam>
            <param name="arg1">The first argument.</param>
            <param name="arg2">The second argument.</param>
            <param name="action">The action to decorate which should be called in
            the middle of applying the decoration.</param>
        </member>
        <member name="T:Gallio.Model.Filters.AndFilter`1">
            <summary>
            A filter combinator that matches a value when all of its constituent filters
            match the value.
            </summary>
        </member>
        <member name="M:Gallio.Model.Filters.AndFilter`1.#ctor(System.Collections.Generic.ICollection{Gallio.Model.Filters.Filter{`0}})">
            <summary>
            Creates an AND-filter.
            </summary>
            <param name="filters">The filters that must all jointly be matched.
            If the list is empty, the filter matches everything.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="filters"/> is null.</exception>
        </member>
        <member name="M:Gallio.Model.Filters.AndFilter`1.IsMatch(`0)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.Filters.AndFilter`1.Accept(Gallio.Model.Filters.IFilterVisitor)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.Filters.AndFilter`1.ToString">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Model.Filters.AndFilter`1.Filters">
            <summary>
            Gets the filters that must jointly be matched.
            </summary>
            <remarks>
            <para>
            If the list is empty, the filter matches everything.
            </para>
            </remarks>
        </member>
        <member name="T:Gallio.Model.Filters.AnyFilter`1">
            <summary>
            A filter that matches anything and always returns true.
            </summary>
        </member>
        <member name="M:Gallio.Model.Filters.AnyFilter`1.IsMatch(`0)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.Filters.AnyFilter`1.Accept(Gallio.Model.Filters.IFilterVisitor)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.Filters.AnyFilter`1.ToString">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Model.Filters.AssemblyFilter`1">
            <summary>
            A filter that matches objects whose <see cref="P:Gallio.Model.Filters.ITestDescriptor.CodeElement"/>
            matches the specified assembly name filter.
            </summary>
        </member>
        <member name="M:Gallio.Model.Filters.AssemblyFilter`1.#ctor(Gallio.Model.Filters.Filter{System.String})">
            <summary>
            Creates an assembly filter.
            </summary>
            <param name="assemblyNameFilter">A filter for the assembly name that is used
            to match one of the following values:
            <list type="bullet">
            <item>Full name as returned by <see cref="P:System.Reflection.Assembly.FullName"/>.</item>
            <item>Simple name (aka. partial name) as returned by <see cref="P:System.Reflection.AssemblyName.Name"/>.</item>
            </list>
            </param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="assemblyNameFilter"/> is null.</exception>
        </member>
        <member name="M:Gallio.Model.Filters.AssemblyFilter`1.IsMatch(`0)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.Filters.AssemblyFilter`1.ToString">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Model.Filters.AssemblyFilter`1.Key">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Model.Filters.IdFilter`1">
            <summary>
            A filter that matches objects whose <see cref="P:Gallio.Model.Filters.ITestDescriptor.Id"/>
            matches the specified id filter.
            </summary>
        </member>
        <member name="M:Gallio.Model.Filters.IdFilter`1.#ctor(Gallio.Model.Filters.Filter{System.String})">
            <summary>
            Creates an identity filter.
            </summary>
            <param name="idFilter">A filter for the id.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="idFilter"/> is null.</exception>
        </member>
        <member name="M:Gallio.Model.Filters.IdFilter`1.IsMatch(`0)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.Filters.IdFilter`1.ToString">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Model.Filters.IdFilter`1.Key">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Model.Filters.MemberFilter`1">
            <summary>
            A filter that matches objects whose <see cref="P:Gallio.Model.Filters.ITestDescriptor.CodeElement"/>
            matches the specified member name filter.  This filter should normally be used together with
            a <see cref="T:System.Reflection.TypeFilter"/> to ensure the accuracy of the member match.
            </summary>
        </member>
        <member name="M:Gallio.Model.Filters.MemberFilter`1.#ctor(Gallio.Model.Filters.Filter{System.String})">
            <summary>
            Creates a member filter.
            </summary>
            <param name="memberNameFilter">A filter for the member name as returned by <see cref="P:System.Reflection.MemberInfo.Name"/>.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="memberNameFilter"/> is null.</exception>
        </member>
        <member name="M:Gallio.Model.Filters.MemberFilter`1.IsMatch(`0)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.Filters.MemberFilter`1.ToString">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Model.Filters.MemberFilter`1.Key">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Model.Filters.MetadataFilter`1">
            <summary>
            A filter that matches objects whose <see cref="P:Gallio.Model.Filters.ITestDescriptor.Metadata"/>
            has a key with a value that matches the value filter.
            </summary>
        </member>
        <member name="M:Gallio.Model.Filters.MetadataFilter`1.#ctor(System.String,Gallio.Model.Filters.Filter{System.String})">
            <summary>
            Creates a metadata filter.
            </summary>
            <param name="key">The metadata key to look for.</param>
            <param name="valueFilter">A filter for the metadata value to match.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="key"/> or <paramref name="valueFilter"/> is null.</exception>
        </member>
        <member name="M:Gallio.Model.Filters.MetadataFilter`1.IsMatch(`0)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.Filters.MetadataFilter`1.ToString">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Model.Filters.MetadataFilter`1.Key">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Model.Filters.NamespaceFilter`1">
            <summary>
            A filter that matches objects whose <see cref="P:Gallio.Model.Filters.ITestDescriptor.CodeElement"/>
            matches the specified namespace name.
            </summary>
        </member>
        <member name="M:Gallio.Model.Filters.NamespaceFilter`1.#ctor(Gallio.Model.Filters.Filter{System.String})">
            <summary>
            Creates a namespace filter.
            </summary>
            <param name="namespaceNameFilter">A filter for the namespace name
            obtained via reflection on types.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="namespaceNameFilter"/> is null.</exception>
        </member>
        <member name="M:Gallio.Model.Filters.NamespaceFilter`1.IsMatch(`0)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.Filters.NamespaceFilter`1.ToString">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Model.Filters.NamespaceFilter`1.Key">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Model.Filters.NoneFilter`1">
            <summary>
            A filter that matches nothing and always returns false.
            </summary>
        </member>
        <member name="M:Gallio.Model.Filters.NoneFilter`1.IsMatch(`0)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.Filters.NoneFilter`1.Accept(Gallio.Model.Filters.IFilterVisitor)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.Filters.NoneFilter`1.ToString">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Model.Filters.NotFilter`1">
            <summary>
            A filter combinator that is the negation of another filter.
            </summary>
        </member>
        <member name="M:Gallio.Model.Filters.NotFilter`1.#ctor(Gallio.Model.Filters.Filter{`0})">
            <summary>
            Creates a NOT-filter.
            </summary>
            <param name="filter">The filter to be negated.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="filter"/> is null.</exception>
        </member>
        <member name="M:Gallio.Model.Filters.NotFilter`1.IsMatch(`0)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.Filters.NotFilter`1.Accept(Gallio.Model.Filters.IFilterVisitor)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.Filters.NotFilter`1.ToString">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Model.Filters.NotFilter`1.Filter">
            <summary>
            Gets the filter to be negated.
            </summary>
        </member>
        <member name="T:Gallio.Model.Filters.OrFilter`1">
            <summary>
            A filter combinator that matches a value when at least one of its constituent filters
            matches the value.
            </summary>
        </member>
        <member name="M:Gallio.Model.Filters.OrFilter`1.#ctor(System.Collections.Generic.ICollection{Gallio.Model.Filters.Filter{`0}})">
            <summary>
            Creates an OR-filter.
            </summary>
            <param name="filters">The filters from which at least one match must be found.
            If the list is empty, the filter matches everything.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="filters"/> is null.</exception>
        </member>
        <member name="M:Gallio.Model.Filters.OrFilter`1.IsMatch(`0)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.Filters.OrFilter`1.Accept(Gallio.Model.Filters.IFilterVisitor)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.Filters.OrFilter`1.ToString">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Model.Filters.OrFilter`1.Filters">
            <summary>
            Gets the filters from which at least one match must be found.
            </summary>
            <remarks>
            <para>
            If the list is empty, the filter matches everything.
            </para>
            </remarks>
        </member>
        <member name="T:Gallio.Model.Filters.TypeFilter`1">
            <summary>
            A filter that matches objects whose <see cref="P:Gallio.Model.Filters.ITestDescriptor.CodeElement"/>
            matches the specified type name.
            </summary>
            <remarks>
            <para>
            Generic types should be specified by the name of their generic type definition.
            eg. Foo`1.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Model.Filters.TypeFilter`1.#ctor(Gallio.Model.Filters.Filter{System.String},System.Boolean)">
            <summary>
            Creates a type filter.
            </summary>
            <param name="typeNameFilter">A filter to match the type name obtained via reflection
            on the type in one of the following ways:
            <list type="bullet">
            <item>Fully qualified by namespace and assembly as returned by <see cref="P:System.Type.AssemblyQualifiedName"/></item>
            <item>Qualified by namespace as returned by <see cref="P:System.Type.FullName"/></item>
            <item>Unqualified as returned by the type's <see cref="P:System.Reflection.MemberInfo.Name"/></item>
            </list>
            </param>
            <param name="includeDerivedTypes">If true, subclasses and interface implementations of the specified
            type are also matched by the filter if they can be located.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="typeNameFilter"/> is null.</exception>
        </member>
        <member name="M:Gallio.Model.Filters.TypeFilter`1.IsMatch(`0)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.Filters.TypeFilter`1.ToString">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Model.Filters.TypeFilter`1.Key">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Model.TestKinds">
            <summary>
            A list of standard test kind names provided by Gallio.
            </summary>
            <remarks>
            <para>
            The test kind has no effect on the semantics of the test runner but it allows tests to
            be classified so that a user interface can provide appropriate icons, descriptions,
            decorations and affordances for registered test kinds.
            </para>
            <para>
            To create your own custom test kinds for your test framework, register a
            <see cref="T:Gallio.Model.ITestKind"/> component in your plugin metadata with a unique name.
            </para>
            </remarks>
            <seealso cref="T:Gallio.Model.ITestKind"/>
            <seealso cref="T:Gallio.Model.TestKindTraits"/>
            <seealso cref="F:Gallio.Model.MetadataKeys.TestKind"/>
        </member>
        <member name="F:Gallio.Model.TestKinds.Root">
            <summary>
            The test represents the root of the test tree.
            </summary>
        </member>
        <member name="F:Gallio.Model.TestKinds.File">
            <summary>
            The test represents the tests contained in a single test file.
            </summary>
            <remarks>
            <para>
            A file should have an associated <see cref="F:Gallio.Model.MetadataKeys.Framework"/> metadata.
            </para>
            </remarks>
        </member>
        <member name="F:Gallio.Model.TestKinds.Assembly">
            <summary>
            The test represents the tests contained in a single test assembly.
            </summary>
            <remarks>
            <para>
            An assembly should have an associated <see cref="F:Gallio.Model.MetadataKeys.Framework"/> metadata.
            </para>
            </remarks>
        </member>
        <member name="F:Gallio.Model.TestKinds.Namespace">
            <summary>
            The test represents the tests contained in a single test namespace.
            </summary>
        </member>
        <member name="F:Gallio.Model.TestKinds.Group">
            <summary>
            The test represents a grouping of tests for descriptive purposes.
            </summary>
        </member>
        <member name="F:Gallio.Model.TestKinds.Suite">
            <summary>
            The test represents a test suite.
            </summary>
        </member>
        <member name="F:Gallio.Model.TestKinds.Fixture">
            <summary>
            The test represents a test fixture.
            </summary>
        </member>
        <member name="F:Gallio.Model.TestKinds.Test">
            <summary>
            The test represents a test case.
            </summary>
        </member>
        <member name="F:Gallio.Model.TestKinds.Unsupported">
            <summary>
            The test is a placeholder for an unsupported test file or element.
            </summary>
        </member>
        <member name="T:Gallio.Model.LifecyclePhases">
            <summary>
            Defines the names of common test step lifecycle phases.
            </summary>
            <remarks>
            <para>
            Custom phases may also be defined.
            </para>
            </remarks>
        </member>
        <member name="F:Gallio.Model.LifecyclePhases.Starting">
            <summary>
            The test step is starting.
            </summary>
        </member>
        <member name="F:Gallio.Model.LifecyclePhases.Initialize">
            <summary>
            The test is being initialize. (Fixture construction, etc.)
            </summary>
        </member>
        <member name="F:Gallio.Model.LifecyclePhases.SetUp">
            <summary>
            The test step is being set up.
            </summary>
        </member>
        <member name="F:Gallio.Model.LifecyclePhases.Execute">
            <summary>
            The test step is executing its main body.
            </summary>
        </member>
        <member name="F:Gallio.Model.LifecyclePhases.TearDown">
            <summary>
            The test step is being torn down.
            </summary>
        </member>
        <member name="F:Gallio.Model.LifecyclePhases.Dispose">
            <summary>
            The test step's context is being disposed.
            </summary>
        </member>
        <member name="F:Gallio.Model.LifecyclePhases.Finishing">
            <summary>
            The test step is finishing.
            </summary>
        </member>
        <member name="T:Gallio.Model.MetadataKeys">
            <summary>
            Provides common metadata keys.
            </summary>
        </member>
        <member name="F:Gallio.Model.MetadataKeys.AuthorEmail">
            <summary>
            The metadata key for the author's email.
            </summary>
            <remarks>
            <para>
            May be derived from <c>AuthorAttribute</c> in MbUnit or its equivalent.
            </para>
            </remarks>
        </member>
        <member name="F:Gallio.Model.MetadataKeys.AuthorName">
            <summary>
            The metadata key for the author's name.
            </summary>
            <remarks>
            <para>
            May be derived from <c>AuthorAttribute</c> in MbUnit or its equivalent.
            </para>
            </remarks>
        </member>
        <member name="F:Gallio.Model.MetadataKeys.AuthorHomepage">
            <summary>
            The metadata key for the author's homepage.
            </summary>
            <remarks>
            <para>
            May be derived from <c>AuthorAttribute</c> in MbUnit or its equivalent.
            </para>
            </remarks>
        </member>
        <member name="F:Gallio.Model.MetadataKeys.Category">
            <summary>
            The metadata key for the name of a category to which a test belongs.
            </summary>
            <remarks>
            <para>
            May be derived from <c>CategoryAttribute</c> in MbUnit or its equivalent.
            </para>
            </remarks>
        </member>
        <member name="F:Gallio.Model.MetadataKeys.CodeBase">
            <summary>
            The matadata key for the location of an assembly as a local
            file path or as a Uri.
            </summary>
            <remarks>
            <para>
            May be derived from the assembly's <see cref="P:System.Reflection.Assembly.CodeBase"/> property.
            </para>
            </remarks>
        </member>
        <member name="F:Gallio.Model.MetadataKeys.Company">
            <summary>
            The metadata key for the name of the company associated with a test.
            </summary>
            <remarks>
            <para>
            May be derived from <see cref="T:System.Reflection.AssemblyCompanyAttribute"/>.
            </para>
            </remarks>
        </member>
        <member name="F:Gallio.Model.MetadataKeys.Configuration">
            <summary>
            The metadata key for build/release configuration information associated with a test.
            </summary>
            <remarks>
            <para>
            It describes the target environment or usage for the test.
            </para>
            <para>
            May be derived from <see cref="T:System.Reflection.AssemblyConfigurationAttribute"/>.
            </para>
            </remarks>
        </member>
        <member name="F:Gallio.Model.MetadataKeys.Copyright">
            <summary>
            The metadata key for a copyright associated with a test.
            </summary>
            <remarks>
            <para>
            May be derived from <see cref="T:System.Reflection.AssemblyCopyrightAttribute"/>.
            </para>
            </remarks>
        </member>
        <member name="F:Gallio.Model.MetadataKeys.DataLocation">
            <summary>
            The metadata key for specifying the origin of data used by a test.
            </summary>
            <remarks>
            <para>
            May be the file name and line number of a record in a file, the ID
            of a database record or some other identifying characteristic.
            </para>
            </remarks>
        </member>
        <member name="F:Gallio.Model.MetadataKeys.Description">
            <summary>
            The metadata key for the description of a test component.
            </summary>
            <remarks>
            <para>
            May be derived from <see cref="T:System.Reflection.AssemblyDescriptionAttribute"/>
            or <c>DescriptionAttribute</c> in MbUnit or its equivalent.
            </para>
            </remarks>
        </member>
        <member name="F:Gallio.Model.MetadataKeys.ExpectedException">
            <summary>
            The metadata key for the expected exception type which should be the name,
            full name or assembly-qualified name of the expected exception type.
            </summary>
            <remarks>
            <para>
            May be derived from <c>ExpectedExceptionAttribute</c> in MbUnit
            or its equivalent.
            </para>
            </remarks>
        </member>
        <member name="F:Gallio.Model.MetadataKeys.ExpectedInnerException">
            <summary>
            The metadata key for the expected inner exception type which should be the name,
            full name or assembly-qualified name of the expected inner exception type.
            </summary>
            <remarks>
            <para>
            May be derived from <c>ExpectedExceptionAttribute</c> in MbUnit
            or its equivalent.
            </para>
            </remarks>
        </member>
        <member name="F:Gallio.Model.MetadataKeys.ExpectedExceptionMessage">
            <summary>
            The metadata key for the expected exception message.
            May be a substring of the actual exception message.
            </summary>
            <remarks>
            <para>
            May be derived from <c>ExpectedExceptionAttribute</c> in MbUnit
            or its equivalent.
            </para>
            </remarks>
        </member>
        <member name="F:Gallio.Model.MetadataKeys.ExplicitReason">
            <summary>
            The metadata key that describes the reason that a test should be run explicitly.
            </summary>
            <remarks>
            <para>
            Tests may of course be marked explicit without a declared reason.
            </para>
            <para>
            May be derived from <c>ExplicitAttribute</c> in MbUnit or its equivalent.
            </para>
            </remarks>
        </member>
        <member name="F:Gallio.Model.MetadataKeys.File">
            <summary>
            The metadata key for a file associated with a test.
            </summary>
            <remarks>
            <para>
            The file key should be associated with the top test produced by a file that
            the test framework was asked to explore.  For example, if the test package
            included "C:\Tests\MyTests.dll" then the assembly-level test emitted by the framework
            should have a File metadata entry with the value "C:\Tests\MyTests.dll".
            </para>
            </remarks>
        </member>
        <member name="F:Gallio.Model.MetadataKeys.FileVersion">
            <summary>
            The metadata key for a file version number associated with a test.
            </summary>
            <remarks>
            <para>
            May be derived from <see cref="T:System.Reflection.AssemblyFileVersionAttribute"/>.
            </para>
            </remarks>
        </member>
        <member name="F:Gallio.Model.MetadataKeys.Framework">
            <summary>
            The metadata key for the test framework name associated with a test assembly in the test tree.
            </summary>
            <remarks>
            <para>
            The value should be the descriptive name of the framework including its version.  eg. "MbUnit v3.1 build 200"
            </para>
            <para>
            A single assembly may have multiple associated frameworks.
            </para>
            </remarks>
        </member>
        <member name="F:Gallio.Model.MetadataKeys.IgnoreReason">
            <summary>
            The metadata key that describes the reason that a test is being ignored.
            </summary>
            <remarks>
            <para>
            Tests may of course be ignored without a declared reason.
            </para>
            <para>
            May be derived from <c>IgnoreAttribute</c> in MbUnit or its equivalent.
            </para>
            </remarks>
        </member>
        <member name="F:Gallio.Model.MetadataKeys.Importance">
            <summary>
            The metadata key for the importance of a test component as the
            string representation of one of the <c>TestImportance</c> constants in MbUnit
            or its equivalent.
            </summary>
            <remarks>
            <para>
            May be derived from <c>ImportantAttribute</c> in MbUnit or its equivalent.
            </para>
            </remarks>
        </member>
        <member name="F:Gallio.Model.MetadataKeys.InformationalVersion">
            <summary>
            The metadata key for an informational version number associated with a test.
            </summary>
            <remarks>
            <para>
            May be derived from <see cref="T:System.Reflection.AssemblyInformationalVersionAttribute"/>.
            </para>
            </remarks>
        </member>
        <member name="F:Gallio.Model.MetadataKeys.PendingReason">
            <summary>
            The metadata key that describes the reason that a test is pending.
            </summary>
            <remarks>
            <para>
            Tests may of course be marked pending without a declared reason.
            </para>
            <para>
            May be derived from <c>PendingAttribute</c> in MbUnit or its equivalent.
            </para>
            </remarks>
        </member>
        <member name="F:Gallio.Model.MetadataKeys.Product">
            <summary>
            The metadata key for a product associated with a test.
            </summary>
            <remarks>
            <para>
            May be derived from <see cref="T:System.Reflection.AssemblyProductAttribute"/>.
            </para>
            </remarks>
        </member>
        <member name="F:Gallio.Model.MetadataKeys.TestsOn">
            <summary>
            The metadata key for the name of the type being tested.
            </summary>
            <remarks>
            <para>
            The associated value should be the full name of the type from <see cref="P:System.Type.FullName"/>
            or the assembly qualified name of the type from <see cref="P:System.Type.AssemblyQualifiedName"/>.
            </para>
            <para>
            May be derived from <c>TestsOnAttribute</c> in MbUnit or its equivalent.
            </para>
            </remarks>
        </member>
        <member name="F:Gallio.Model.MetadataKeys.TestKind">
            <summary>
            The metadata key used to describe the kind of a test as the
            string representation of one of the <see cref="T:Gallio.Model.TestKinds"/> constants.
            </summary>
        </member>
        <member name="F:Gallio.Model.MetadataKeys.Title">
            <summary>
            The metadata key for a title associated with a test.
            </summary>
            <remarks>
            <para>
            May be derived from <see cref="T:System.Reflection.AssemblyTitleAttribute"/>.
            </para>
            </remarks>
        </member>
        <member name="F:Gallio.Model.MetadataKeys.Trademark">
            <summary>
            The metadata key for a trademark associated with a test.
            </summary>
            <remarks>
            <para>
            May be derived from <see cref="T:System.Reflection.AssemblyTrademarkAttribute"/>.
            </para>
            </remarks>
        </member>
        <member name="F:Gallio.Model.MetadataKeys.Version">
            <summary>
            The metadata key for a version number associated with a test.
            </summary>
            <remarks>
            <para>
            May be derived from <see cref="T:System.Reflection.AssemblyVersionAttribute"/>.
            </para>
            </remarks>
        </member>
        <member name="F:Gallio.Model.MetadataKeys.XmlDocumentation">
            <summary>
            The metadata key for the XML documentation of the test derived from
            XML code documentation comments.
            </summary>
        </member>
        <member name="T:Gallio.Model.ModelException">
            <summary>
            The type of exception thrown when test model and test framework
            operations fail.
            </summary>
        </member>
        <member name="M:Gallio.Model.ModelException.#ctor">
            <summary>
            Creates an exception.
            </summary>
        </member>
        <member name="M:Gallio.Model.ModelException.#ctor(System.String)">
            <summary>
            Creates an exception.
            </summary>
            <param name="message">The message.</param>
        </member>
        <member name="M:Gallio.Model.ModelException.#ctor(System.String,System.Exception)">
            <summary>
            Creates an exception.
            </summary>
            <param name="message">The message.</param>
            <param name="innerException">The inner exception.</param>
        </member>
        <member name="M:Gallio.Model.ModelException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Creates an exception from serialization info.
            </summary>
            <param name="info">The serialization info.</param>
            <param name="context">The streaming context.</param>
        </member>
        <member name="T:Gallio.Model.ModelUtils">
            <summary>
            Provides utility functions for manipulating the object model.
            </summary>
        </member>
        <member name="M:Gallio.Model.ModelUtils.PopulateMetadataFromAssembly(Gallio.Common.Reflection.IAssemblyInfo,Gallio.Common.Collections.PropertyBag)">
            <summary>
            Populates the provided metadata map with asembly-level metadata derived
            from custom attributes.
            </summary>
            <remarks>
            <para>
            Currently recognized attributes:
            <list type="bullet">
            <item><see cref="T:System.Reflection.AssemblyCompanyAttribute"/></item>
            <item><see cref="T:System.Reflection.AssemblyConfigurationAttribute"/></item>
            <item><see cref="T:System.Reflection.AssemblyCopyrightAttribute"/></item>
            <item><see cref="T:System.Reflection.AssemblyDescriptionAttribute"/></item>
            <item><see cref="T:System.Reflection.AssemblyFileVersionAttribute"/></item>
            <item><see cref="T:System.Reflection.AssemblyInformationalVersionAttribute"/></item>
            <item><see cref="T:System.Reflection.AssemblyProductAttribute"/></item>
            <item><see cref="T:System.Reflection.AssemblyTitleAttribute"/></item>
            <item><see cref="T:System.Reflection.AssemblyTrademarkAttribute"/></item>
            <item><see cref="T:System.Reflection.AssemblyVersionAttribute"/></item>
            </list>
            </para>
            </remarks>
            <param name="assembly">The assembly.</param>
            <param name="metadataMap">The metadata map.</param>
        </member>
        <member name="T:Gallio.Model.Tree.RootTest">
            <summary>
            The root test in the test tree.
            </summary>
        </member>
        <member name="F:Gallio.Model.Tree.RootTest.RootTestName">
            <summary>
            Gets the root test name.
            </summary>
        </member>
        <member name="M:Gallio.Model.Tree.RootTest.#ctor">
            <summary>
            Creates the root test.
            </summary>
        </member>
        <member name="T:Gallio.Model.TestExplorationOptions">
            <summary>
            Provides options that control how test exploration occurs.
            </summary>
        </member>
        <member name="M:Gallio.Model.TestExplorationOptions.#ctor">
            <summary>
            Creates a default set of test execution options.
            </summary>
        </member>
        <member name="M:Gallio.Model.TestExplorationOptions.ClearProperties">
            <summary>
            Clears the collection of properties.
            </summary>
        </member>
        <member name="M:Gallio.Model.TestExplorationOptions.AddProperty(System.String,System.String)">
            <summary>
            Adds a property key/value pair.
            </summary>
            <param name="key">The property key.</param>
            <param name="value">The property value.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="key"/> or <paramref name="value"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Thrown if <paramref name="key"/> is already in the property set.</exception>
        </member>
        <member name="M:Gallio.Model.TestExplorationOptions.RemoveProperty(System.String)">
            <summary>
            Removes a property key/value pair.
            </summary>
            <param name="key">The property key.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="key"/> is null.</exception>
        </member>
        <member name="M:Gallio.Model.TestExplorationOptions.Copy">
            <summary>
            Creates a copy of the options.
            </summary>
            <returns>The copy.</returns>
        </member>
        <member name="P:Gallio.Model.TestExplorationOptions.Properties">
            <summary>
            Gets a read-only collection of configuration properties for test exploration.
            </summary>
        </member>
        <member name="T:Gallio.Model.TestOutcome">
            <summary>
            Describes the outcome of a test.
            </summary>
            <remarks>
            <para>
            An outcome consists of two parts.  First, a required <see cref="P:Gallio.Model.TestOutcome.Status"/> that describes
            whether test passed, failed or was inconclusive.  Second, an optional <see cref="P:Gallio.Model.TestOutcome.Category"/>
            that enables different outcomes with the same status to be distinguished.  The category
            also provides an opportunity to extend the definition of a test outcome to include
            custom semantic details.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Model.TestOutcome.#ctor(Gallio.Model.TestStatus)">
            <summary>
            Creates a test outcome with no category.
            </summary>
            <param name="status">The test <see cref="P:Gallio.Model.TestOutcome.Status"/>.</param>
        </member>
        <member name="M:Gallio.Model.TestOutcome.#ctor(Gallio.Model.TestStatus,System.String)">
            <summary>
            Creates a test outcome with an optional category.
            </summary>
            <param name="status">The test <see cref="P:Gallio.Model.TestOutcome.Status"/></param>
            <param name="category">The test <see cref="P:Gallio.Model.TestOutcome.Category"/>, or null or an empty string if none.</param>
        </member>
        <member name="M:Gallio.Model.TestOutcome.CombineWith(Gallio.Model.TestOutcome)">
            <summary>
            If the other outcome is more severe than this one, returns it.
            Otherwise returns this outcome.
            </summary>
            <remarks>
            <para>
            This combination rule has the nice property of preserving the first
            failure encountered even if subsequent failures occur and are combined.
            </para>
            </remarks>
            <param name="other">The other outcome.</param>
            <returns>The combined outcome.</returns>
            <seealso cref="T:Gallio.Model.TestStatus"/> for test status severity ranking information.
        </member>
        <member name="M:Gallio.Model.TestOutcome.Generalize">
            <summary>
            Produces an outcome with the same status but omitting the category information.
            </summary>
            <returns>The generalized outcome.</returns>
        </member>
        <member name="M:Gallio.Model.TestOutcome.Normalize">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.TestOutcome.ToString">
            <summary>
            Returns the <see cref="P:Gallio.Model.TestOutcome.DisplayName"/> of the outcome.
            </summary>
            <returns>The display name.</returns>
        </member>
        <member name="M:Gallio.Model.TestOutcome.GetStandardOutcome(System.String)">
            <summary>
            Returns the <see cref="T:Gallio.Model.TestOutcome"/> instance that corresponds to the specified string.
            </summary>
            <param name="outcomeName">The name of the <see cref="T:Gallio.Model.TestOutcome"/>. It can be optionally prefixed with "TestOutcome.". Case-sensitive.</param>
            <returns>Returns the <see cref="T:Gallio.Model.TestOutcome"/> instance that corresponds to the specified string.</returns>
            <exception cref="T:System.ArgumentException">Thrown if <paramref name="outcomeName"/> is invalid.</exception>
        </member>
        <member name="M:Gallio.Model.TestOutcome.ProvideXmlSchema(System.Xml.Schema.XmlSchemaSet)">
            <summary>
            Provides the Xml schema for this element.
            </summary>
            <param name="schemas">The schema set.</param>
            <returns>The schema type of the element.</returns>
        </member>
        <member name="M:Gallio.Model.TestOutcome.op_Equality(Gallio.Model.TestOutcome,Gallio.Model.TestOutcome)">
            <summary>
            Compares two outcomes for equality.
            </summary>
            <param name="a">The first outcome.</param>
            <param name="b">The second outcome.</param>
            <returns>True if the outcomes are equal.</returns>
        </member>
        <member name="M:Gallio.Model.TestOutcome.op_Inequality(Gallio.Model.TestOutcome,Gallio.Model.TestOutcome)">
            <summary>
            Compares two outcomes for inequality.
            </summary>
            <param name="a">The first outcome.</param>
            <param name="b">The second outcome.</param>
            <returns>True if the outcomes are not equal.</returns>
        </member>
        <member name="M:Gallio.Model.TestOutcome.Equals(Gallio.Model.TestOutcome)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.TestOutcome.Equals(System.Object)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Model.TestOutcome.GetHashCode">
            <inheritdoc />
        </member>
        <member name="P:Gallio.Model.TestOutcome.Status">
            <summary>
            Gets the test status.
            </summary>
            <remarks>
            <para>
            The test status describes whether a test passed, failed or produced an inconclusive
            result.  This information may be reported to the user with icons and textual
            labels to explain the overall significance of the outcome.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Model.TestOutcome.Category">
            <summary>
            Gets the test outcome category, or null if none.  Never an empty string.
            </summary>
            <remarks>
            <para>
            The category, when provided, provides additional information to describe what happened
            to result in this particular outcome.
            </para>
            <para>
            Examples: "ignored", "skipped", "pending", "canceled", "aborted", "timeout".
            </para>
            <para>
            Naming guidelines:
            <list type="bullet">
            <item>A category should be a single lower-case word.</item>
            <item>It should be a word that can appear on its own or following a number.  Consequently, nouns are poor choices because they may need to be pluralized.</item>
            <item>It should not repeat the information already provided by the <see cref="P:Gallio.Model.TestOutcome.Status"/>.  Consequently, "passed", "failed" and "inconclusive" are poor choices.</item>
            <item>It should be a standard category, if possible.</item>
            <item>It should not be too granular.  If too many categories are in common usage, test result summaries by category may become unwieldly.</item>
            </list>
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Model.TestOutcome.DisplayName">
            <summary>
            Gets the name of the outcome as it should be displayed.
            </summary>
            <remarks>
            <para>
            The display name is the outcome's <see cref="P:Gallio.Model.TestOutcome.Category"/>, if available.
            Otherwise it is a lowercase rendition of the outcome's <see cref="P:Gallio.Model.TestOutcome.Status"/>.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Model.TestOutcome.Passed">
            <summary>
            Gets a standard outcome for a test that passed.
            </summary>
            <remarks>
            <para>
            Status: <see cref="F:Gallio.Model.TestStatus.Passed"/>.
            Category: null.
            </para>
            </remarks>
            <returns>The outcome.</returns>
        </member>
        <member name="P:Gallio.Model.TestOutcome.Failed">
            <summary>
            Gets a standard outcome for a test that failed.
            </summary>
            <remarks>
            <para>
            Status: <see cref="F:Gallio.Model.TestStatus.Failed"/>.
            Category: null.
            </para>
            </remarks>
            <returns>The outcome.</returns>
        </member>
        <member name="P:Gallio.Model.TestOutcome.Error">
            <summary>
            Gets a standard outcome for a test that failed due to an error.
            </summary>
            <remarks>
            <para>
            Status: <see cref="F:Gallio.Model.TestStatus.Failed"/>.
            Category: "error".
            </para>
            </remarks>
            <returns>The outcome.</returns>
        </member>
        <member name="P:Gallio.Model.TestOutcome.Timeout">
            <summary>
            Gets a standard outcome for a test that failed because it ran out of time.
            </summary>
            <remarks>
            <para>
            Status: <see cref="F:Gallio.Model.TestStatus.Failed"/>.
            Category: "timeout".
            </para>
            </remarks>
            <returns>The outcome.</returns>
        </member>
        <member name="P:Gallio.Model.TestOutcome.Inconclusive">
            <summary>
            Gets a standard outcome for a test that was inconclusive.
            </summary>
            <remarks>
            <para>
            Status: <see cref="F:Gallio.Model.TestStatus.Inconclusive"/>.
            Category: null.
            </para>
            </remarks>
            <returns>The outcome.</returns>
        </member>
        <member name="P:Gallio.Model.TestOutcome.Canceled">
            <summary>
            Gets a standard outcome for a test that has an inconclusive outcome because it was canceled.
            </summary>
            <remarks>
            <para>
            Status: <see cref="F:Gallio.Model.TestStatus.Inconclusive"/>.
            Category: "canceled".
            </para>
            </remarks>
            <returns>The outcome.</returns>
        </member>
        <member name="P:Gallio.Model.TestOutcome.Skipped">
            <summary>
            Gets a standard outcome for a test that did not run.
            </summary>
            <remarks>
            <para>
            Status: <see cref="F:Gallio.Model.TestStatus.Skipped"/>.
            Category: null.
            </para>
            </remarks>
            <returns>The outcome.</returns>
        </member>
        <member name="P:Gallio.Model.TestOutcome.Ignored">
            <summary>
            Gets a standard outcome for a test that did not run because the user is choosing
            to ignore it.  Perhaps the test is broken or non-functional.
            </summary>
            <remarks>
            <para>
            Status: <see cref="F:Gallio.Model.TestStatus.Skipped"/>.
            Category: "ignored".
            </para>
            </remarks>
            <returns>The outcome.</returns>
        </member>
        <member name="P:Gallio.Model.TestOutcome.Pending">
            <summary>
            Gets a standard outcome for a test that did not run because it has unsatisfied
            prerequisites.  The test may depend on functionality that has not yet been implemented
            or perhaps the test itself has yet to be implemented.
            </summary>
            <remarks>
            <para>
            Status: <see cref="F:Gallio.Model.TestStatus.Skipped"/>.
            Category: "pending".
            </para>
            </remarks>
            <returns>The outcome.</returns>
        </member>
        <member name="P:Gallio.Model.TestOutcome.Explicit">
            <summary>
            Gets a standard outcome for a test that did not run because it must be selected explicitly.
            The test may be particularly expensive or require manual supervision by an operator.
            </summary>
            <remarks>
            <para>
            Status: <see cref="F:Gallio.Model.TestStatus.Skipped"/>.
            Category: "explicit".
            </para>
            </remarks>
            <returns>The outcome.</returns>
        </member>
        <member name="T:Gallio.Model.TestStatus">
            <summary>
            Describes whether a test passed, failed, was skipped or was inconclusive.
            </summary>
            <remarks>
            <para>
            The status codes are ranked in order of severity from least to greatest
            as follows: <see cref="F:Gallio.Model.TestStatus.Passed"/>, <see cref="F:Gallio.Model.TestStatus.Skipped"/>, <see cref="F:Gallio.Model.TestStatus.Inconclusive"/>,
            <see cref="F:Gallio.Model.TestStatus.Failed"/>.
            </para>
            </remarks>
        </member>
        <member name="F:Gallio.Model.TestStatus.Passed">
            <summary>
            The test passed.
            </summary>
        </member>
        <member name="F:Gallio.Model.TestStatus.Skipped">
            <summary>
            The test did not run so nothing is known about its status.
            </summary>
        </member>
        <member name="F:Gallio.Model.TestStatus.Inconclusive">
            <summary>
            The test did not run or its result was inconclusive.
            </summary>
        </member>
        <member name="F:Gallio.Model.TestStatus.Failed">
            <summary>
            The test failed or encountered an error during execution.
            </summary>
        </member>
        <member name="T:Gallio.Common.Concurrency.Sync">
            <summary>
            Provides helpers for cross-thread synchronization.
            </summary>
        </member>
        <member name="M:Gallio.Common.Concurrency.Sync.Invoke(System.ComponentModel.ISynchronizeInvoke,Gallio.Common.Action)">
            <summary>
            Synchronizes an action.
            </summary>
            <param name="invoker">The invoker, such as a WinForms control.</param>
            <param name="action">The action.</param>
            <exception cref="T:System.Exception">The exception thrown by the action.</exception>
        </member>
        <member name="M:Gallio.Common.Concurrency.Sync.Invoke``1(System.ComponentModel.ISynchronizeInvoke,Gallio.Common.Func{``0})">
            <summary>
            Synchronizes a function that returns a value.
            </summary>
            <param name="invoker">The invoker, such as a WinForms control.</param>
            <param name="func">The function.</param>
            <returns>The value returned by the function.</returns>
            <typeparam name="T">The function return type.</typeparam>
            <exception cref="T:System.Exception">The exception thrown by the function.</exception>
        </member>
        <member name="T:Gallio.Common.Xml.DefaultXmlSerializer">
            <summary>
             Default IXmlSerializer implementation.
            </summary>
        </member>
        <member name="M:Gallio.Common.Xml.DefaultXmlSerializer.SaveToXml``1(``0,System.String)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Common.Xml.DefaultXmlSerializer.LoadFromXml``1(System.String)">
            <inheritdoc />
        </member>
        <member name="T:Gallio.Common.Xml.XmlUtils">
            <summary>
            Provides utilities for manipulating Xml.
            </summary>
        </member>
        <member name="M:Gallio.Common.Xml.XmlUtils.WriteToXPathDocument(System.Action{System.Xml.XmlWriter})">
            <summary>
            Produces an XPathDocument given an action applied to an XmlWriter.
            </summary>
            <param name="writeAction">The action to perform.</param>
            <returns>The XPathDocument.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="writeAction"/> is null.</exception>
        </member>
        <member name="T:Gallio.Common.Policies.CorrelatedExceptionEventArgs">
            <summary>
            Describes an exception that is to be reported.
            </summary>
        </member>
        <member name="M:Gallio.Common.Policies.CorrelatedExceptionEventArgs.#ctor(System.String,System.Exception,System.String,System.Boolean)">
            <summary>
            Creates event arguments for reporting an exception.
            </summary>
            <param name="message">The message associated with the exception.</param>
            <param name="exception">The exception that occurred.</param>
            <param name="reporterStackTrace">The stack trace of the code that called to report the exception, or null if not available.</param>
            <param name="isRecursive">True if a second exception occurred while attempting to report a previous
            unhandled exception on the same thread.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="message"/> or
            <paramref name="exception"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Policies.CorrelatedExceptionEventArgs.AddCorrelationMessage(System.String)">
            <summary>
            Adds a message that serves to describe the context in which the exception occurred.
            The <see cref="P:Gallio.Common.Policies.CorrelatedExceptionEventArgs.Message"/> will be augmented with these details.
            </summary>
            <param name="correlationMessage">The correlation message to append.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="correlationMessage"/> is null.</exception>
            <seealso cref="E:Gallio.Common.Policies.UnhandledExceptionPolicy.CorrelateUnhandledException"/>
        </member>
        <member name="M:Gallio.Common.Policies.CorrelatedExceptionEventArgs.GetDescription">
            <summary>
            Formats a description of the exception to a string like: "Message\nException\nReported by: ReporterStackTrace".
            </summary>
            <returns>The formatted string.</returns>
        </member>
        <member name="M:Gallio.Common.Policies.CorrelatedExceptionEventArgs.GetDetails">
            <summary>
            Formats the defaults of the exception to a string like: "Exception\nReported by: ReporterStackTrace".
            </summary>
            <returns>The formatted string.</returns>
        </member>
        <member name="P:Gallio.Common.Policies.CorrelatedExceptionEventArgs.Message">
            <summary>
            Gets the message associated with the exception.
            </summary>
        </member>
        <member name="P:Gallio.Common.Policies.CorrelatedExceptionEventArgs.Exception">
            <summary>
            Gets the exception that occurred.
            </summary>
            <remarks>
            <para>
            The event handler should use care when processing the exception object as it
            may have been obtained from an untrusted source.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.Common.Policies.CorrelatedExceptionEventArgs.ReporterStackTrace">
            <summary>
            Gets the stack trace of the code that called to report the exception or null if not available.
            </summary>
        </member>
        <member name="P:Gallio.Common.Policies.CorrelatedExceptionEventArgs.IsRecursive">
            <summary>
            Returns true if a second exception occurred while attempting to report a previous
            exception on the same thread.
            </summary>
        </member>
        <member name="T:Gallio.Common.Text.StringUtils">
            <summary>
            Provides utility functions for working with strings.
            </summary>
        </member>
        <member name="M:Gallio.Common.Text.StringUtils.Truncate(System.String,System.Int32)">
            <summary>
            Truncates the string to the specified maximum length.
            Discards characters at the end of the string with indices greater than
            or equal to <paramref name="maxLength"/>.
            </summary>
            <param name="str">The string to truncate.</param>
            <param name="maxLength">The maximum length of the string to retain.</param>
            <returns>The truncated string.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="str"/> is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="maxLength"/> is negative.</exception>
        </member>
        <member name="M:Gallio.Common.Text.StringUtils.TruncateWithEllipsis(System.String,System.Int32)">
            <summary>
            If the string is longer than the specified maximum length, truncates
            it and appends an ellipsis mark ("...").  If the maximum length is
            less than or equal to 3, omits the ellipsis mark on truncation.
            </summary>
            <param name="str">The string to truncate.</param>
            <param name="maxLength">The maximum length of the string to retain
            including the ellipsis mark when used.</param>
            <returns>The truncated string.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="str"/> is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="maxLength"/> is negative.</exception>
        </member>
        <member name="M:Gallio.Common.Text.StringUtils.ToHexDigit(System.Int32)">
            <summary>
            Gets a lowercase hexadecimal digit corresponding to the least significant nybble of
            the specified value.
            </summary>
            <param name="value">The value, only the last 4 bits of which are used.</param>
            <returns>The hexadecimal digit.</returns>
        </member>
        <member name="M:Gallio.Common.Text.StringUtils.ToCharLiteral(System.Char)">
            <summary>
            Formats a character value as "'x'" or "'\n'" with support for escaped characters
            as a valid literal value.  Encloses the char in single quotes (').
            </summary>
            <remarks>
            <para>
            Replaces common escaped characters with C# style escape codes.  Unprintable characters
            are represented by a Unicode character escape.
            </para>
            </remarks>
            <param name="value">The character value to format.</param>
            <returns>The formatted character.</returns>
        </member>
        <member name="M:Gallio.Common.Text.StringUtils.ToUnquotedCharLiteral(System.Char)">
            <summary>
            Escapes a character value as "x" or "\n".  Unlike <see cref="M:Gallio.Common.Text.StringUtils.ToCharLiteral(System.Char)"/>,
            does not enclose the literal in single quotes (').
            </summary>
            <remarks>
            <para>
            Replaces common escaped characters with C# style escape codes.  Unprintable characters
            are represented by a Unicode character escape.
            </para>
            </remarks>
            <param name="value">The character value to format.</param>
            <returns>The unquoted char literal.</returns>
        </member>
        <member name="M:Gallio.Common.Text.StringUtils.ToStringLiteral(System.String)">
            <summary>
            Formats a string value as ""abc\ndef"" with support for escaped characters
            as a valid literal value.  Encloses the string in quotes (").
            </summary>
            <remarks>
            <para>
            Replaces common escaped characters with C# style escape codes.  Unprintable characters
            are represented by a Unicode character escape.
            </para>
            </remarks>
            <param name="value">The string value to format.</param>
            <returns>The formatted string.</returns>
        </member>
        <member name="M:Gallio.Common.Text.StringUtils.ToUnquotedStringLiteral(System.String)">
            <summary>
            Escapes a string value such as "abc\ndef".  Unlike <see cref="M:Gallio.Common.Text.StringUtils.ToStringLiteral(System.String)"/>,
            does not enclose the literal in quotes (").
            </summary>
            <remarks>
            <para>
            Replaces common escaped characters with C# style escape codes.  Unprintable characters
            are represented by a Unicode character escape.
            </para>
            </remarks>
            <param name="value">The string value to format.</param>
            <returns>The unquoted string literal.</returns>
        </member>
        <member name="M:Gallio.Common.Text.StringUtils.ParseKeyValuePair(System.String)">
            <summary>
            Parses a key/value pair from an input string of the form "key=value", with the
            value optionally quoted and optional surrounding whitespace removed.
            </summary>
            <remarks>
            <para>
            If the value is quoted, the outermost quotes will be removed.
            If the equals or value is absent then an empty string will be used as the value.
            Also trims whitespace around the key and value.
            </para>
            </remarks>
            <param name="input">The input string.</param>
            <returns>The key value pair.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="input"/> is null.</exception>
        </member>
        <member name="M:Gallio.Common.Text.StringUtils.ParseArguments(System.String)">
            <summary>
            Parses a string of whitespace delimited and possibly quoted arguments and
            returns an array of each one unquoted.
            </summary>
            <param name="arguments">The arguments string, eg. "/foo 'quoted arg' /bar.</param>
            <returns>The parsed and unquoted arguments.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="arguments"/> is null.</exception>
        </member>
        <member name="T:Gallio.Framework.TestLog">
            <summary>
            The test log class provides services for writing information to the
            execution log associated with a test.
            </summary>
            <remarks>
            <para>
            A test log records the output of a test during its execution including any text
            that was written to console output streams, exceptions that occurred, and 
            anything else the test writer might want to save.
            </para>
            <para>
            A log consists of zero or more log streams that are opened automatically
            on demand to capture independent sequences of log output.  Each stream can
            further be broken down into possibly nested sections to classify output
            during different phases of test execution (useful for drilling into complex tests).
            In addition to text, a log can contain attachments that are either attached
            at the top level of the log or embedded into log streams.  Attachments are
            typed by mime-type and can contain Text, Xml, Images, Blobs, or any other content.
            Certain test frameworks may automatically create attachments to gather all manner
            of diagnostic information over the course of the test.
            </para>
            <para>
            Test log messages are not echoed to the console or runtime log during test execution,
            they are incorporated into the test report.  Use <see cref="T:Gallio.Framework.DiagnosticLog"/> instead if you
            wish to write messages immediately where the operator can see them.
            </para>
            </remarks>
            <seealso cref="T:Gallio.Framework.DiagnosticLog"/>
        </member>
        <member name="M:Gallio.Framework.TestLog.Flush">
            <summary>
            Flushes the log writer.
            </summary>
            <remarks>
            <para>
            This is a convenience method that forwards the request to the current log
            writer as returned by the <see cref="P:Gallio.Framework.TestLog.Writer"/> property.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Framework.TestLog.Attach(Gallio.Common.Markup.Attachment)">
            <summary>
            Attaches an attachment to the execution log.
            </summary>
            <remarks>
            <para>
            This is a convenience method that forwards the request to the current log
            writer as returned by the <see cref="P:Gallio.Framework.TestLog.Writer"/> property.
            </para>
            </remarks>
            <param name="attachment">The attachment to include.</param>
            <returns>The attachment.</returns>
            <seealso cref="M:Gallio.Common.Markup.MarkupDocumentWriter.Attach(Gallio.Common.Markup.Attachment)"/>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="attachment"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Thrown if there is already an attachment
            with the same name.</exception>
        </member>
        <member name="M:Gallio.Framework.TestLog.AttachPlainText(System.String,System.String)">
            <summary>
            Attaches an plain text attachment with mime-type <see cref="F:Gallio.Common.Markup.MimeTypes.PlainText"/>.
            </summary>
            <remarks>
            <para>
            This is a convenience method that forwards the request to the current log
            writer as returned by the <see cref="P:Gallio.Framework.TestLog.Writer"/> property.
            </para>
            </remarks>
            <param name="attachmentName">The name of the attachment to create or null to
            automatically assign one.  The attachment name must be unique within the scope of the
            currently executing test step.</param>
            <param name="text">The text to attach.</param>
            <returns>The attachment.</returns>
            <seealso cref="M:Gallio.Common.Markup.MarkupDocumentWriter.AttachPlainText(System.String,System.String)"/>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="text"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Thrown if there is already an attachment
            with the same name.</exception>
        </member>
        <member name="M:Gallio.Framework.TestLog.AttachHtml(System.String,System.String)">
            <summary>
            Attaches an HTML attachment with mime-type <see cref="F:Gallio.Common.Markup.MimeTypes.Html"/>.
            </summary>
            <remarks>
            <para>
            This is a convenience method that forwards the request to the current log
            writer as returned by the <see cref="P:Gallio.Framework.TestLog.Writer"/> property.
            </para>
            </remarks>
            <param name="attachmentName">The name of the attachment to create or null to
            automatically assign one.  The attachment name must be unique within the scope of the
            currently executing test step.</param>
            <param name="html">The HTML to attach.</param>
            <returns>The attachment.</returns>
            <seealso cref="M:Gallio.Common.Markup.MarkupDocumentWriter.AttachHtml(System.String,System.String)"/>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="html"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Thrown if there is already an attachment
            with the same name.</exception>
        </member>
        <member name="M:Gallio.Framework.TestLog.AttachXHtml(System.String,System.String)">
            <summary>
            Attaches an XHTML attachment with mime-type <see cref="F:Gallio.Common.Markup.MimeTypes.XHtml"/>.
            </summary>
            <remarks>
            <para>
            This is a convenience method that forwards the request to the current log
            writer as returned by the <see cref="P:Gallio.Framework.TestLog.Writer"/> property.
            </para>
            </remarks>
            <param name="attachmentName">The name of the attachment to create or null to
            automatically assign one.  The attachment name must be unique within the scope of the
            currently executing test step.</param>
            <param name="xhtml">The XHTML to attach.</param>
            <returns>The attachment.</returns>
            <seealso cref="M:Gallio.Common.Markup.MarkupDocumentWriter.AttachXHtml(System.String,System.String)"/>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="xhtml"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Thrown if there is already an attachment
            with the same name.</exception>
        </member>
        <member name="M:Gallio.Framework.TestLog.AttachXml(System.String,System.String)">
            <summary>
            Attaches an XML attachment with mime-type <see cref="F:Gallio.Common.Markup.MimeTypes.Xml"/>.
            </summary>
            <remarks>
            <para>
            This is a convenience method that forwards the request to the current log
            writer as returned by the <see cref="P:Gallio.Framework.TestLog.Writer"/> property.
            </para>
            </remarks>
            <param name="attachmentName">The name of the attachment to create or null to
            automatically assign one.  The attachment name must be unique within the scope of the
            currently executing test step.</param>
            <param name="xml">The XML to attach.</param>
            <returns>The attachment.</returns>
            <seealso cref="M:Gallio.Common.Markup.MarkupDocumentWriter.AttachXml(System.String,System.String)"/>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="xml"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Thrown if there is already an attachment
            with the same name.</exception>
        </member>
        <member name="M:Gallio.Framework.TestLog.AttachImage(System.String,System.Drawing.Image)">
            <summary>
            Attaches an image attachment with a mime-type compatible with its internal representation.
            </summary>
            <remarks>
            <para>
            This is a convenience method that forwards the request to the current log
            writer as returned by the <see cref="P:Gallio.Framework.TestLog.Writer"/> property.
            </para>
            </remarks>
            <param name="attachmentName">The name of the attachment to create or null to
            automatically assign one.  The attachment name must be unique within the scope of the
            currently executing test step.</param>
            <param name="image">The image to attach.</param>
            <returns>The attachment.</returns>
            <seealso cref="M:Gallio.Common.Markup.MarkupDocumentWriter.AttachImage(System.String,System.Drawing.Image)"/>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="image"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Thrown if there is already an attachment
            with the same name.</exception>
        </member>
        <member name="M:Gallio.Framework.TestLog.AttachVideo(System.String,Gallio.Common.Media.Video)">
            <summary>
            Attaches a video attachment with a mime-type compatible with its internal representation.
            </summary>
            <remarks>
            <para>
            This is a convenience method that forwards the request to the current log
            writer as returned by the <see cref="P:Gallio.Framework.TestLog.Writer"/> property.
            </para>
            </remarks>
            <param name="attachmentName">The name of the attachment to create or null to
            automatically assign one.  The attachment name must be unique within the scope of the
            currently executing test step.</param>
            <param name="video">The video to attach.</param>
            <returns>The attachment.</returns>
            <seealso cref="M:Gallio.Common.Markup.MarkupDocumentWriter.AttachVideo(System.String,Gallio.Common.Media.Video)"/>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="video"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Thrown if there is already an attachment
            with the same name.</exception>
        </member>
        <member name="M:Gallio.Framework.TestLog.AttachObjectAsXml(System.String,System.Object)">
            <summary>
            Attaches an XML-serialized object as an XML attachment with mime-type <see cref="F:Gallio.Common.Markup.MimeTypes.Xml"/>
            using the default <see cref="T:System.Xml.Serialization.XmlSerializer"/> for the object's type.
            </summary>
            <remarks>
            <para>
            This is a convenience method that forwards the request to the current log
            writer as returned by the <see cref="P:Gallio.Framework.TestLog.Writer"/> property.
            </para>
            </remarks>
            <param name="attachmentName">The name of the attachment to create or null to
            automatically assign one.  The attachment name must be unique within the scope of the
            currently executing test step.</param>
            <param name="obj">The object to serialize and embed, must not be null.</param>
            <returns>The attachment.</returns>
            <seealso cref="M:Gallio.Common.Markup.MarkupDocumentWriter.AttachObjectAsXml(System.String,System.Object)"/>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="obj"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Thrown if there is already an attachment
            with the same name.</exception>
        </member>
        <member name="M:Gallio.Framework.TestLog.AttachObjectAsXml(System.String,System.Object,System.Xml.Serialization.XmlSerializer)">
            <summary>
            Attaches an XML-serialized object as an XML attachment with mime-type <see cref="F:Gallio.Common.Markup.MimeTypes.Xml"/>
            using the specified <see cref="T:System.Xml.Serialization.XmlSerializer"/>.
            </summary>
            <remarks>
            <para>
            This is a convenience method that forwards the request to the current log
            writer as returned by the <see cref="P:Gallio.Framework.TestLog.Writer"/> property.
            </para>
            </remarks>
            <param name="attachmentName">The name of the attachment to create or null to
            automatically assign one.  The attachment name must be unique within the scope of the
            currently executing test step.</param>
            <param name="obj">The object to serialize and embed, must not be null.</param>
            <param name="xmlSerializer">The <see cref="T:System.Xml.Serialization.XmlSerializer"/> to use, or null to use the default <see cref="T:System.Xml.Serialization.XmlSerializer"/>
            for the object's type.</param>
            <returns>The attachment.</returns>
            <seealso cref="M:Gallio.Common.Markup.MarkupDocumentWriter.AttachObjectAsXml(System.String,System.Object,System.Xml.Serialization.XmlSerializer)"/>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="obj"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Thrown if there is already an attachment
            with the same name.</exception>
        </member>
        <member name="M:Gallio.Framework.TestLog.Write(System.Char)">
            <summary>
            Writes a character.
            </summary>
            <remarks>
            <para>
            This is a convenience method that forwards the request to the current default
            log stream writer as returned by the <see cref="P:Gallio.Framework.TestLog.Default"/> property.
            </para>
            </remarks>
            <param name="value">The character value.</param>
        </member>
        <member name="M:Gallio.Framework.TestLog.Write(System.String)">
            <summary>
            Writes a string.
            </summary>
            <remarks>
            <para>
            This is a convenience method that forwards the request to the current default
            log stream writer as returned by the <see cref="P:Gallio.Framework.TestLog.Default"/> property.
            </para>
            </remarks>
            <param name="value">The string value.</param>
        </member>
        <member name="M:Gallio.Framework.TestLog.Write(System.Object)">
            <summary>
            Writes a formatted object.
            </summary>
            <remarks>
            <para>
            This is a convenience method that forwards the request to the current default
            log stream writer as returned by the <see cref="P:Gallio.Framework.TestLog.Default"/> property.
            </para>
            </remarks>
            <param name="value">The object value.</param>
        </member>
        <member name="M:Gallio.Framework.TestLog.Write(System.Char[])">
            <summary>
            Writes an array of characters.
            </summary>
            <remarks>
            <para>
            This is a convenience method that forwards the request to the current default
            log stream writer as returned by the <see cref="P:Gallio.Framework.TestLog.Default"/> property.
            </para>
            </remarks>
            <param name="value">The array of characters.</param>
        </member>
        <member name="M:Gallio.Framework.TestLog.Write(System.Char[],System.Int32,System.Int32)">
            <summary>
            Writes an array of characters.
            </summary>
            <remarks>
            <para>
            This is a convenience method that forwards the request to the current default
            log stream writer as returned by the <see cref="P:Gallio.Framework.TestLog.Default"/> property.
            </para>
            </remarks>
            <param name="buffer">The character buffer.</param>
            <param name="index">The index of the first character in the buffer to write.</param>
            <param name="count">The number of characters from the buffer to write.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="buffer"/> is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="index"/> or <paramref name="count"/> are out of range.</exception>
        </member>
        <member name="M:Gallio.Framework.TestLog.Write(System.String,System.Object[])">
            <summary>
            Writes a formatted string.
            </summary>
            <remarks>
            <para>
            This is a convenience method that forwards the request to the current default
            log stream writer as returned by the <see cref="P:Gallio.Framework.TestLog.Default"/> property.
            </para>
            </remarks>
            <param name="format">The format string.</param>
            <param name="args">The format string arguments.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="format"/> is null.</exception>
            <seealso cref="M:System.String.Format(System.String,System.Object[])"/>
        </member>
        <member name="M:Gallio.Framework.TestLog.WriteLine">
            <summary>
            Writes a line delimiter.
            </summary>
            <remarks>
            <para>
            This is a convenience method that forwards the request to the current default
            log stream writer as returned by the <see cref="P:Gallio.Framework.TestLog.Default"/> property.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Framework.TestLog.WriteLine(System.Char)">
            <summary>
            Writes a character followed by a line delimiter.
            </summary>
            <remarks>
            <para>
            This is a convenience method that forwards the request to the current default
            log stream writer as returned by the <see cref="P:Gallio.Framework.TestLog.Default"/> property.
            </para>
            </remarks>
            <param name="value">The character value.</param>
        </member>
        <member name="M:Gallio.Framework.TestLog.WriteLine(System.String)">
            <summary>
            Writes a string followed by a line delimiter.
            </summary>
            <remarks>
            <para>
            This is a convenience method that forwards the request to the current default
            log stream writer as returned by the <see cref="P:Gallio.Framework.TestLog.Default"/> property.
            </para>
            </remarks>
            <param name="value">The string value.</param>
        </member>
        <member name="M:Gallio.Framework.TestLog.WriteLine(System.Object)">
            <summary>
            Writes a formatted object followed by a line delimiter.
            </summary>
            <remarks>
            <para>
            This is a convenience method that forwards the request to the current default
            log stream writer as returned by the <see cref="P:Gallio.Framework.TestLog.Default"/> property.
            </para>
            </remarks>
            <param name="value">The object value.</param>
        </member>
        <member name="M:Gallio.Framework.TestLog.WriteLine(System.Char[])">
            <summary>
            Writes an array of characters followed by a line delimiter.
            </summary>
            <remarks>
            <para>
            This is a convenience method that forwards the request to the current default
            log stream writer as returned by the <see cref="P:Gallio.Framework.TestLog.Default"/> property.
            </para>
            </remarks>
            <param name="value">The array of characters.</param>
        </member>
        <member name="M:Gallio.Framework.TestLog.WriteLine(System.String,System.Object[])">
            <summary>
            Writes a formatted string followed by a line delimiter.
            </summary>
            <remarks>
            <para>
            This is a convenience method that forwards the request to the current default
            log stream writer as returned by the <see cref="P:Gallio.Framework.TestLog.Default"/> property.
            </para>
            </remarks>
            <param name="format">The format string.</param>
            <param name="args">The format string arguments.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="format"/> is null.</exception>
            <seealso cref="M:System.String.Format(System.String,System.Object[])"/>
        </member>
        <member name="M:Gallio.Framework.TestLog.Write(Gallio.Common.Markup.IMarkupStreamWritable)">
            <summary>
            Writes a test log stream writable object to the stream.
            </summary>
            <remarks>
            <para>
            This is a convenience method that forwards the request to the current default
            log stream writer as returned by the <see cref="P:Gallio.Framework.TestLog.Default"/> property.
            </para>
            </remarks>
            <param name="obj">The object to write, or null if none.</param>
        </member>
        <member name="M:Gallio.Framework.TestLog.WriteException(System.Exception)">
            <summary>
            Writes an exception.
            </summary>
            <remarks>
            <para>
            This is a convenience method that forwards the request to the current default
            log stream writer as returned by the <see cref="P:Gallio.Framework.TestLog.Default"/> property.
            </para>
            <para>
            The exception will not be terminated by a new line.
            </para>
            </remarks>
            <param name="exception">The exception to write.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="exception"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.TestLog.WriteException(System.Exception,System.String)">
            <summary>
            Writes an exception within its own section.
            </summary>
            <remarks>
            <para>
            This is a convenience method that forwards the request to the current default
            log stream writer as returned by the <see cref="P:Gallio.Framework.TestLog.Default"/> property.
            </para>
            <para>
            The exception will not be terminated by a new line.
            </para>
            </remarks>
            <param name="exception">The exception to write.</param>
            <param name="sectionName">The section name, or null if none.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="exception"/>,
            or <paramref name="sectionName"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.TestLog.WriteException(Gallio.Common.Diagnostics.ExceptionData)">
            <summary>
            Writes an exception.
            </summary>
            <remarks>
            <para>
            This is a convenience method that forwards the request to the current default
            log stream writer as returned by the <see cref="P:Gallio.Framework.TestLog.Default"/> property.
            </para>
            <para>
            The exception will not be terminated by a new line.
            </para>
            </remarks>
            <param name="exception">The exception data to write.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="exception"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.TestLog.WriteException(Gallio.Common.Diagnostics.ExceptionData,System.String)">
            <summary>
            Writes an exception within its own section which provides additional cues for interpretation.
            </summary>
            <remarks>
            <para>
            This is a convenience method that forwards the request to the current default
            log stream writer as returned by the <see cref="P:Gallio.Framework.TestLog.Default"/> property.
            </para>
            <para>
            The exception will not be terminated by a new line.
            </para>
            </remarks>
            <param name="exception">The exception data to write.</param>
            <param name="sectionName">The section name, or null if none.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="exception"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.TestLog.WriteHighlighted(System.String)">
            <summary>
            Writes highlighted text.
            </summary>
            <remarks>
            <para>
            Highlights can be used to emphasize important information such differences 
            between similar expected and actual values.
            </para>
            <para>
            This is a convenience method that forwards the request to the current default
            log stream writer as returned by the <see cref="P:Gallio.Framework.TestLog.Default"/> property.
            </para>
            <para>
            This is a convenience method that simply encapsulates the highlighted text within a
            marker region of type <see cref="P:Gallio.Common.Markup.Marker.Highlight"/>.
            </para>
            </remarks>
            <param name="text">The text to write, or null if none.</param>
        </member>
        <member name="M:Gallio.Framework.TestLog.WriteEllipsis">
            <summary>
            Writes an ellipsis to indicate where content has been elided for brevity.
            </summary>
            <remarks>
            <para>
            An ellipsis may be used, for example, when printing assertion failures to clearly
            identify sections where the user is not being presented all of the information
            because it was too long and had to be truncated.
            </para>
            <para>
            This is a convenience method that forwards the request to the current default
            log stream writer as returned by the <see cref="P:Gallio.Framework.TestLog.Default"/> property.
            </para>
            <para>
            This is a convenience method that simply encapsulates "..." within a
            marked region of type <see cref="P:Gallio.Common.Markup.Marker.Ellipsis"/>.  However, tools
            may reinterpret the special marker to make the "..." less ambiguous.
            </para>
            </remarks>
        </member>
        <member name="M:Gallio.Framework.TestLog.BeginSection(System.String)">
            <summary>
            Begins a section with the specified name.  May be nested.
            </summary>
            <remarks>
            <para>
            A section groups together related content in the test log to make it
            easier to distinguish.  The section name is used as a heading.
            </para>
            <para>
            This is a convenience method that forwards the request to the current default
            log stream writer as returned by the <see cref="P:Gallio.Framework.TestLog.Default"/> property.
            </para>
            </remarks>
            <example>
            <code><![CDATA[
            using (Log.BeginSection("Doing something interesting"))
            {
                Log.WriteLine("Ah ha!");
            }
            ]]></code>
            </example>
            <param name="sectionName">The name of the section.</param>
            <returns>A Disposable object that calls <see cref="M:Gallio.Framework.TestLog.End"/> when disposed.  This
            is a convenience for use with the C# "using" statement.</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="sectionName"/> is null.</exception>
        </member>
        <member name="M:Gallio.Framework.TestLog.BeginMarker(Gallio.Common.Markup.Marker)">
            <summary>
            Begins a marked region.  May be nested.
            </summary>
            <remarks>
            <para>
            A marker is a hidden tag that labels its contents with a semantic class.
            It is roughly equivalent in operation to an HTML "span" tag.  Various tools
            may inspect the markers and modify the presentation accordingly.
            </para>
            <para>
            This is a convenience method that forwards the request to the current default
            log stream writer as returned by the <see cref="P:Gallio.Framework.TestLog.Default"/> property.
            </para>
            </remarks>
            <example>
            <code><![CDATA[
            using (Log.BeginMarker(Marker.Monospace))
            {
                Log.WriteLine(contents);
            }
            ]]></code>
            </example>
            <param name="marker">The marker.</param>
            <returns>A Disposable object that calls <see cref="M:Gallio.Framework.TestLog.End"/> when disposed.  This
            is a convenience for use with the C# "using" statement.</returns>
        </member>
        <member name="M:Gallio.Framework.TestLog.End">
            <summary>
            Ends the region most recently started with one of the Begin* methods.
            </summary>
            <remarks>
            <para>
            This is a convenience method that forwards the request to the current default
            log stream writer as returned by the <see cref="P:Gallio.Framework.TestLog.Default"/> property.
            </para>
            </remarks>
            <exception cref="T:System.InvalidOperationException">Thrown if there is no current nested region.</exception>
        </member>
        <member name="M:Gallio.Framework.TestLog.Embed(Gallio.Common.Markup.Attachment)">
            <summary>
            Embeds an attachment.
            </summary>
            <remarks>
            <para>
            This is a convenience method that forwards the request to the current default
            log stream writer as returned by the <see cref="P:Gallio.Framework.TestLog.Default"/> property.
            </para>
            </remarks>
            <remarks>
            An attachment instance can be embedded multiple times efficiently since each
            embedded copy is typically represented as a link to the same common attachment instance.
            </remarks>
            <param name="attachment">The attachment to embed.</param>
            <returns>The attachment.</returns>
            <seealso cref="M:Gallio.Common.Markup.MarkupStreamWriter.Embed(Gallio.Common.Markup.Attachment)"/>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="attachment"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Thrown if there is already an attachment
            with the same name.</exception>
        </member>
        <member name="M:Gallio.Framework.TestLog.EmbedExisting(System.String)">
            <summary>
            Embeds another copy of an existing attachment.
            </summary>
            <remarks>
            <para>
            This is a convenience method that forwards the request to the current default
            log stream writer as returned by the <see cref="P:Gallio.Framework.TestLog.Default"/> property.
            </para>
            </remarks>
            <remarks>
            <para>
            This method can be used to
            repeatedly embed an existing attachment at multiple points in multiple
            streams without needing to keep the <see cref="T:Gallio.Common.Markup.Attachment"/> instance
            itself around.  This can help to reduce memory footprint since the
            original <see cref="T:Gallio.Common.Markup.Attachment"/> instance can be garbage collected shortly
            after it is first attached.
            </para>
            <para>
            An attachment instance can be embedded multiple times efficiently since each
            embedded copy is typically represented as a link to the same common attachment instance.
            </para>
            </remarks>
            <param name="attachmentName">The name of the existing attachment to embed.</param>
            <seealso cref="M:Gallio.Common.Markup.MarkupStreamWriter.EmbedExisting(System.String)"/>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="attachmentName"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Thrown if no attachment with the specified
            name has been previously attached.</exception>
        </member>
        <member name="M:Gallio.Framework.TestLog.EmbedPlainText(System.String,System.String)">
            <summary>
            Embeds an plain text attachment with mime-type <see cref="F:Gallio.Common.Markup.MimeTypes.PlainText"/>.
            </summary>
            <remarks>
            <para>
            This is a convenience method that forwards the request to the current default
            log stream writer as returned by the <see cref="P:Gallio.Framework.TestLog.Default"/> property.
            </para>
            </remarks>
            <param name="attachmentName">The name of the attachment to create or null to
            automatically assign one.  The attachment name must be unique within the scope of the
            currently executing test step.</param>
            <param name="text">The text to attach.</param>
            <returns>The attachment.</returns>
            <seealso cref="M:Gallio.Common.Markup.MarkupStreamWriter.EmbedPlainText(System.String,System.String)"/>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="text"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Thrown if there is already an attachment
            with the same name.</exception>
        </member>
        <member name="M:Gallio.Framework.TestLog.EmbedHtml(System.String,System.String)">
            <summary>
            Embeds an HTML attachment with mime-type <see cref="F:Gallio.Common.Markup.MimeTypes.Html"/>.
            </summary>
            <remarks>
            <para>
            This is a convenience method that forwards the request to the current default
            log stream writer as returned by the <see cref="P:Gallio.Framework.TestLog.Default"/> property.
            </para>
            </remarks>
            <param name="attachmentName">The name of the attachment to create or null to
            automatically assign one.  The attachment name must be unique within the scope of the
            currently executing test step.</param>
            <param name="html">The HTML to attach.</param>
            <returns>The attachment.</returns>
            <seealso cref="M:Gallio.Common.Markup.MarkupStreamWriter.EmbedHtml(System.String,System.String)"/>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="html"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Thrown if there is already an attachment
            with the same name.</exception>
        </member>
        <member name="M:Gallio.Framework.TestLog.EmbedXHtml(System.String,System.String)">
            <summary>
            Embeds an XHTML attachment with mime-type <see cref="F:Gallio.Common.Markup.MimeTypes.XHtml"/>.
            </summary>
            <remarks>
            <para>
            This is a convenience method that forwards the request to the current default
            log stream writer as returned by the <see cref="P:Gallio.Framework.TestLog.Default"/> property.
            </para>
            </remarks>
            <param name="attachmentName">The name of the attachment to create or null to
            automatically assign one.  The attachment name must be unique within the scope of the
            currently executing test step.</param>
            <param name="xhtml">The XHTML to attach.</param>
            <returns>The attachment.</returns>
            <seealso cref="M:Gallio.Common.Markup.MarkupStreamWriter.EmbedXHtml(System.String,System.String)"/>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="xhtml"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Thrown if there is already an attachment
            with the same name.</exception>
        </member>
        <member name="M:Gallio.Framework.TestLog.EmbedXml(System.String,System.String)">
            <summary>
            Embeds an XML attachment with mime-type <see cref="F:Gallio.Common.Markup.MimeTypes.Xml"/>.
            </summary>
            <remarks>
            <para>
            This is a convenience method that forwards the request to the current default
            log stream writer as returned by the <see cref="P:Gallio.Framework.TestLog.Default"/> property.
            </para>
            </remarks>
            <param name="attachmentName">The name of the attachment to create or null to
            automatically assign one.  The attachment name must be unique within the scope of the
            currently executing test step.</param>
            <param name="xml">The XML to attach.</param>
            <returns>The attachment.</returns>
            <seealso cref="M:Gallio.Common.Markup.MarkupStreamWriter.EmbedXml(System.String,System.String)"/>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="xml"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Thrown if there is already an attachment
            with the same name.</exception>
        </member>
        <member name="M:Gallio.Framework.TestLog.EmbedImage(System.String,System.Drawing.Image)">
            <summary>
            Embeds an image attachment with a mime-type compatible with its internal representation.
            </summary>
            <remarks>
            <para>
            This is a convenience method that forwards the request to the current default
            log stream writer as returned by the <see cref="P:Gallio.Framework.TestLog.Default"/> property.
            </para>
            </remarks>
            <param name="attachmentName">The name of the attachment to create or null to
            automatically assign one.  The attachment name must be unique within the scope of the
            currently executing test step.</param>
            <param name="image">The image to attach.</param>
            <returns>The attachment.</returns>
            <seealso cref="M:Gallio.Common.Markup.MarkupStreamWriter.EmbedImage(System.String,System.Drawing.Image)"/>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="image"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Thrown if there is already an attachment
            with the same name.</exception>
        </member>
        <member name="M:Gallio.Framework.TestLog.EmbedVideo(System.String,Gallio.Common.Media.Video)">
            <summary>
            Embeds a video attachment with a mime-type compatible with its internal representation.
            </summary>
            <remarks>
            <para>
            This is a convenience method that forwards the request to the current default
            log stream writer as returned by the <see cref="P:Gallio.Framework.TestLog.Default"/> property.
            </para>
            </remarks>
            <param name="attachmentName">The name of the attachment to create or null to
            automatically assign one.  The attachment name must be unique within the scope of the
            currently executing test step.</param>
            <param name="video">The video to attach.</param>
            <returns>The attachment.</returns>
            <seealso cref="M:Gallio.Common.Markup.MarkupStreamWriter.EmbedVideo(System.String,Gallio.Common.Media.Video)"/>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="video"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Thrown if there is already an attachment
            with the same name.</exception>
        </member>
        <member name="M:Gallio.Framework.TestLog.EmbedObjectAsXml(System.String,System.Object)">
            <summary>
            Embeds an XML-serialized object as an XML attachment with mime-type <see cref="F:Gallio.Common.Markup.MimeTypes.Xml"/>
            using the default <see cref="T:System.Xml.Serialization.XmlSerializer"/> for the object's type.
            </summary>
            <remarks>
            <para>
            This is a convenience method that forwards the request to the current default
            log stream writer as returned by the <see cref="P:Gallio.Framework.TestLog.Default"/> property.
            </para>
            </remarks>
            <param name="attachmentName">The name of the attachment to create or null to
            automatically assign one.  The attachment name must be unique within the scope of the
            currently executing test step.</param>
            <param name="obj">The object to serialize and embed, must not be null.</param>
            <returns>The attachment.</returns>
            <seealso cref="M:Gallio.Common.Markup.MarkupStreamWriter.EmbedObjectAsXml(System.String,System.Object)"/>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="obj"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Thrown if there is already an attachment
            with the same name.</exception>
        </member>
        <member name="M:Gallio.Framework.TestLog.EmbedObjectAsXml(System.String,System.Object,System.Xml.Serialization.XmlSerializer)">
            <summary>
            Embeds an XML-serialized object as an XML attachment with mime-type <see cref="F:Gallio.Common.Markup.MimeTypes.Xml"/>
            using the specified <see cref="T:System.Xml.Serialization.XmlSerializer"/>.
            </summary>
            <remarks>
            <para>
            This is a convenience method that forwards the request to the current default
            log stream writer as returned by the <see cref="P:Gallio.Framework.TestLog.Default"/> property.
            </para>
            </remarks>
            <param name="attachmentName">The name of the attachment to create or null to
            automatically assign one.  The attachment name must be unique within the scope of the
            currently executing test step.</param>
            <param name="obj">The object to serialize and embed, must not be null.</param>
            <param name="xmlSerializer">The <see cref="T:System.Xml.Serialization.XmlSerializer"/> to use, or null to use the default <see cref="T:System.Xml.Serialization.XmlSerializer"/>
            for the object's type.</param>
            <returns>The attachment.</returns>
            <seealso cref="M:Gallio.Common.Markup.MarkupStreamWriter.EmbedObjectAsXml(System.String,System.Object,System.Xml.Serialization.XmlSerializer)"/>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="obj"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Thrown if there is already an attachment
            with the same name.</exception>
        </member>
        <member name="P:Gallio.Framework.TestLog.Writer">
            <summary>
            Gets the current log writer.
            </summary>
            <returns>The execution log, never null.</returns>
            <exception cref="T:System.InvalidOperationException">Thrown if there is no current log writer.</exception>
        </member>
        <member name="P:Gallio.Framework.TestLog.ConsoleInput">
            <summary>
            Gets the current stream writer for captured <see cref="P:System.Console.In"/> messages.
            </summary>
        </member>
        <member name="P:Gallio.Framework.TestLog.ConsoleOutput">
            <summary>
            Gets the current stream writer for captured <see cref="P:System.Console.Out"/> messages.
            </summary>
        </member>
        <member name="P:Gallio.Framework.TestLog.ConsoleError">
            <summary>
            Gets the current stream writer for captured <see cref="P:System.Console.Error"/> messages.
            </summary>
        </member>
        <member name="P:Gallio.Framework.TestLog.DebugTrace">
            <summary>
            Gets the current stream writer for diagnostic <see cref="T:System.Diagnostics.Debug"/> and <see cref="T:System.Diagnostics.Trace"/> messages.
            </summary>
        </member>
        <member name="P:Gallio.Framework.TestLog.Failures">
            <summary>
            Gets the current stream writer for reporting failure messages and exceptions.
            </summary>
        </member>
        <member name="P:Gallio.Framework.TestLog.Warnings">
            <summary>
            Gets the current stream writer for reporting warning messages.
            </summary>
        </member>
        <member name="P:Gallio.Framework.TestLog.Default">
            <summary>
            Gets the current stream writer for generic log messages such as those written
            using the static methods of this class.
            </summary>
        </member>
        <member name="T:Gallio.Runtime.RuntimeAccessor">
            <summary>
            Provides functions for obtaining runtime services.
            </summary>
        </member>
        <member name="M:Gallio.Runtime.RuntimeAccessor.SetRuntime(Gallio.Runtime.IRuntime)">
            <summary>
            Sets the runtime instance.
            </summary>
            <remarks>
            <para>
            This method should only be used by applications that host Gallio
            and not generally by client code.
            </para>
            </remarks>
            <param name="runtime">The runtime instance, or null if none.</param>
        </member>
        <member name="P:Gallio.Runtime.RuntimeAccessor.Instance">
            <summary>
            Gets the runtime instance.
            </summary>
            <exception cref="T:System.InvalidOperationException">Thrown if the runtime has not been initialized.</exception>
        </member>
        <member name="P:Gallio.Runtime.RuntimeAccessor.Logger">
            <summary>
            Gets the runtime's logger, or a <see cref="T:Gallio.Runtime.Logging.NullLogger"/> if the runtime is not initialized.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.RuntimeAccessor.AssemblyLoader">
            <summary>
            Gets the runtime's assembly loader.
            </summary>
            <exception cref="T:System.InvalidOperationException">Thrown if the runtime has not been initialized.</exception>
        </member>
        <member name="P:Gallio.Runtime.RuntimeAccessor.Registry">
            <summary>
            Gets the runtime's registry.
            </summary>
            <exception cref="T:System.InvalidOperationException">Thrown if the runtime has not been initialized.</exception>
        </member>
        <member name="P:Gallio.Runtime.RuntimeAccessor.ServiceLocator">
            <summary>
            Gets the runtime's service locator.
            </summary>
            <exception cref="T:System.InvalidOperationException">Thrown if the runtime has not been initialized.</exception>
        </member>
        <member name="P:Gallio.Runtime.RuntimeAccessor.ResourceLocator">
            <summary>
            Gets the runtime's resource locator.
            </summary>
            <exception cref="T:System.InvalidOperationException">Thrown if the runtime has not been initialized.</exception>
        </member>
        <member name="P:Gallio.Runtime.RuntimeAccessor.IsInitialized">
            <summary>
            Returns true if the runtime has been initialized.
            </summary>
        </member>
        <member name="E:Gallio.Runtime.RuntimeAccessor.InstanceChanged">
            <summary>
            The event dispatched when the value of the current runtime
            <see cref="P:Gallio.Runtime.RuntimeAccessor.Instance"/> changes.
            </summary>
        </member>
        <member name="P:Gallio.Runtime.RuntimeAccessor.RuntimePath">
            <summary>
            Gets the path of the Gallio runtime components.
            </summary>
            <returns>The runtime path.</returns>
        </member>
        <member name="T:Gallio.Properties.Resources">
            <summary>
              A strongly-typed resource class, for looking up localized strings, etc.
            </summary>
        </member>
        <member name="P:Gallio.Properties.Resources.ResourceManager">
            <summary>
              Returns the cached ResourceManager instance used by this class.
            </summary>
        </member>
        <member name="P:Gallio.Properties.Resources.Culture">
            <summary>
              Overrides the current thread's CurrentUICulture property for all
              resource lookups using this strongly typed resource class.
            </summary>
        </member>
        <member name="P:Gallio.Properties.Resources.BaseTest_ParameterListAlreadyContainsParameterWithSameName">
            <summary>
              Looks up a localized string similar to The parameter list already contains a parameter named &apos;{0}&apos;..
            </summary>
        </member>
        <member name="P:Gallio.Properties.Resources.BaseTest_TestAlreadyHasAParent">
            <summary>
              Looks up a localized string similar to The test to be added is already a child of another test..
            </summary>
        </member>
        <member name="P:Gallio.Properties.Resources.CodeReference_ToString_ParameterName">
            <summary>
              Looks up a localized string similar to Parameter &apos;{0}&apos; of .
            </summary>
        </member>
        <member name="P:Gallio.Properties.Resources.CommandLineArgumentAttribute_NoResourceException">
            <summary>
              Looks up a localized string similar to Localized attribute strings must supply a resource.
            </summary>
        </member>
        <member name="P:Gallio.Properties.Resources.CommandLineArgumentAttribute_ResourceNotAStringException">
            <summary>
              Looks up a localized string similar to Localized attribute string does not point to a string resource.
            </summary>
        </member>
        <member name="P:Gallio.Properties.Resources.CommandLineArgumentAttribute_ResourceNotFoundException">
            <summary>
              Looks up a localized string similar to Localized attribute string not found in resource named.
            </summary>
        </member>
        <member name="P:Gallio.Properties.Resources.CommandLineArgumentParser_Argument_CollectionArgumentsMustAllowMultipleValues">
            <summary>
              Looks up a localized string similar to Collection arguments must have AllowMultiple flag..
            </summary>
        </member>
        <member name="P:Gallio.Properties.Resources.CommandLineArgumentParser_Argument_DuplicateArgument">
            <summary>
              Looks up a localized string similar to Duplicate &apos;{0}&apos; argument..
            </summary>
        </member>
        <member name="P:Gallio.Properties.Resources.CommandLineArgumentParser_Argument_DuplicateArgumentValueExpectedUnique">
            <summary>
              Looks up a localized string similar to Duplicate &apos;{0}&apos; argument value &apos;{1}&apos;, expected unique values..
            </summary>
        </member>
        <member name="P:Gallio.Properties.Resources.CommandLineArgumentParser_Argument_InvalidArgumentValue">
            <summary>
              Looks up a localized string similar to Invalid &apos;{0}&apos; argument value &apos;{1}&apos;..
            </summary>
        </member>
        <member name="P:Gallio.Properties.Resources.CommandLineArgumentParser_Argument_InvalidUsageOfUniqueFlag">
            <summary>
              Looks up a localized string similar to Unique flag only applicable to collection arguments..
            </summary>
        </member>
        <member name="P:Gallio.Properties.Resources.CommandLineArgumentParser_Argument_MissingLongName">
            <summary>
              Looks up a localized string similar to Argument long name must be specified..
            </summary>
        </member>
        <member name="P:Gallio.Properties.Resources.CommandLineArgumentParser_Argument_MissingRequiredArgument">
            <summary>
              Looks up a localized string similar to Missing required argument &apos;/{0}&apos;..
            </summary>
        </member>
        <member name="P:Gallio.Properties.Resources.CommandLineArgumentParser_Argument_MissingRequiredDefaultArgument">
            <summary>
              Looks up a localized string similar to Missing required default argument..
            </summary>
        </member>
        <member name="P:Gallio.Properties.Resources.CommandLineArgumentParser_Argument_UnsupportedValueType">
            <summary>
              Looks up a localized string similar to Unsupported value type..
            </summary>
        </member>
        <member name="P:Gallio.Properties.Resources.CommandLineArgumentParser_ArgumentObjectIsOfIncorrectType">
            <summary>
              Looks up a localized string similar to Parsed argument object is not of the correct type..
            </summary>
        </member>
        <member name="P:Gallio.Properties.Resources.CommandLineArgumentParser_DuplicateArgumentName">
            <summary>
              Looks up a localized string similar to Duplicate argument name &apos;{0}&apos;..
            </summary>
        </member>
        <member name="P:Gallio.Properties.Resources.CommandLineArgumentParser_ErrorOpeningResponseFile">
            <summary>
              Looks up a localized string similar to Error opening response file &apos;{0}&apos;: {1}..
            </summary>
        </member>
        <member name="P:Gallio.Properties.Resources.CommandLineArgumentParser_ExceptionWhileParsing">
            <summary>
              Looks up a localized string similar to A fatal exception occurred while parsing arguments: {0}.
            </summary>
        </member>
        <member name="P:Gallio.Properties.Resources.CommandLineArgumentParser_MismatchedQuotedInResponseFile">
            <summary>
              Looks up a localized string similar to Mismatched quotes in response file &apos;{0}&apos;.
            </summary>
        </member>
        <member name="P:Gallio.Properties.Resources.CommandLineArgumentParser_MoreThanOneDefaultCommandLineArgumentDefined">
            <summary>
              Looks up a localized string similar to More than one default command line argument has been defined..
            </summary>
        </member>
        <member name="P:Gallio.Properties.Resources.CommandLineArgumentParser_NoArgumentFields">
            <summary>
              Looks up a localized string similar to No fields tagged with CommandLineArgumentAttribute..
            </summary>
        </member>
        <member name="P:Gallio.Properties.Resources.CommandLineArgumentParser_ResponseFileDescription">
            <summary>
              Looks up a localized string similar to Read response file for more options..
            </summary>
        </member>
        <member name="P:Gallio.Properties.Resources.CommandLineArgumentParser_ResponseFileDoesNotExist">
            <summary>
              Looks up a localized string similar to Response file &apos;0&apos; does not exist..
            </summary>
        </member>
        <member name="P:Gallio.Properties.Resources.CommandLineArgumentParser_ResponseFileValueLabel">
            <summary>
              Looks up a localized string similar to file.
            </summary>
        </member>
        <member name="P:Gallio.Properties.Resources.CommandLineArgumentParser_UnrecognizedArgument">
            <summary>
              Looks up a localized string similar to Unrecognized argument &apos;{0}&apos;..
            </summary>
        </member>
        <member name="P:Gallio.Properties.Resources.CommandLineOutput_AvailableOptions">
            <summary>
              Looks up a localized string similar to The available options are: .
            </summary>
        </member>
        <member name="P:Gallio.Properties.Resources.CommandLineOutput_ShortForm">
            <summary>
              Looks up a localized string similar to (Short form: {0}).
            </summary>
        </member>
        <member name="P:Gallio.Properties.Resources.ConsoleProgram_ApplicationTitleFormat">
            <summary>
              Looks up a localized string similar to {0} - Version {1}.
            </summary>
        </member>
        <member name="P:Gallio.Properties.Resources.ConsoleProgressMonitor_CanceledBanner">
            <summary>
              Looks up a localized string similar to --- CANCELED ---.
            </summary>
        </member>
        <member name="P:Gallio.Properties.Resources.ConsoleProgressMonitor_CancelingBanner">
            <summary>
              Looks up a localized string similar to &gt;&gt;&gt; CANCELING &lt;&lt;&lt;.
            </summary>
        </member>
        <member name="P:Gallio.Properties.Resources.DefaultRuntime_RuntimeCannotBeInitialized">
            <summary>
              Looks up a localized string similar to The runtime could not be initialized..
            </summary>
        </member>
        <member name="P:Gallio.Properties.Resources.ExceptionDescription_DictionaryReadOnly">
            <summary>
              Looks up a localized string similar to Dictionary is read-only..
            </summary>
        </member>
        <member name="P:Gallio.Properties.Resources.ExceptionDescription_ZeroOrGreater">
            <summary>
              Looks up a localized string similar to Must be greater than or equal to zero..
            </summary>
        </member>
        <member name="P:Gallio.Properties.Resources.FilterParser_CannotEscapeCharacter">
            <summary>
              Looks up a localized string similar to Cannot escape character {0}.
            </summary>
        </member>
        <member name="P:Gallio.Properties.Resources.FilterParser_CharCode">
            <summary>
              Looks up a localized string similar to (char code = {0}).
            </summary>
        </member>
        <member name="P:Gallio.Properties.Resources.FilterParser_ColonExpected">
            <summary>
              Looks up a localized string similar to Colon expected.
            </summary>
        </member>
        <member name="P:Gallio.Properties.Resources.FilterParser_CommaExpected">
            <summary>
              Looks up a localized string similar to Comma expected.
            </summary>
        </member>
        <member name="P:Gallio.Properties.Resources.FilterParser_EmptyFilterError">
            <summary>
              Looks up a localized string similar to The filter expression can&apos;t be empty.
            </summary>
        </member>
        <member name="P:Gallio.Properties.Resources.FilterParser_FilterExpressionExpected">
            <summary>
              Looks up a localized string similar to Simple filter expression expected such as &apos;*&apos; or &apos;Key: value&apos;..
            </summary>
        </member>
        <member name="P:Gallio.Properties.Resources.FilterParser_MissingEndDelimiter">
            <summary>
              Looks up a localized string similar to Missing end {0}.
            </summary>
        </member>
        <member name="P:Gallio.Properties.Resources.FilterParser_MissingEscapedCharacter">
            <summary>
              Looks up a localized string similar to Missing escaped character.
            </summary>
        </member>
        <member name="P:Gallio.Properties.Resources.FilterParser_RightBracketExpected">
            <summary>
              Looks up a localized string similar to Right bracket expected.
            </summary>
        </member>
        <member name="P:Gallio.Properties.Resources.FilterParser_RulesNotSeperated">
            <summary>
              Looks up a localized string similar to Separate inclusion and exclusion rules must be separated by &apos;include&apos; or &apos;exclude&apos;..
            </summary>
        </member>
        <member name="P:Gallio.Properties.Resources.FilterParser_StringLiteralExpected">
            <summary>
              Looks up a localized string similar to String literal expected.
            </summary>
        </member>
        <member name="P:Gallio.Properties.Resources.FilterParser_UnexpectedCharacterFound">
            <summary>
              Looks up a localized string similar to Unexpected character found ({0}).
            </summary>
        </member>
        <member name="P:Gallio.Properties.Resources.FilterParser_UnexpectedEndOfInput">
            <summary>
              Looks up a localized string similar to Unexpected end of input.
            </summary>
        </member>
        <member name="P:Gallio.Properties.Resources.FilterParser_ValueExpected">
            <summary>
              Looks up a localized string similar to Value expected.
            </summary>
        </member>
        <member name="P:Gallio.Properties.Resources.ModelUtils_InvalidSignature">
            <summary>
              Looks up a localized string similar to Expected a method with signature ({0}) but found ({1})..
            </summary>
        </member>
        <member name="P:Gallio.Properties.Resources.RemoteHost_RemoteException">
            <summary>
              Looks up a localized string similar to The remote host service threw an exception or could not be reached..
            </summary>
        </member>
        <member name="P:Gallio.Properties.Resources.RootTest_RootTestName">
            <summary>
              Looks up a localized string similar to Root.
            </summary>
        </member>
        <member name="P:Gallio.Properties.Resources.SimpleDiskCache_DiskCacheDirectoryOpenException">
            <summary>
              Looks up a localized string similar to Could not open disk cache directory &apos;{0}&apos;..
            </summary>
        </member>
        <member name="P:Gallio.Properties.Resources.SimpleDiskCache_DiskCacheFileOpenException">
            <summary>
              Looks up a localized string similar to Could not open disk cache file &apos;{0}&apos;..
            </summary>
        </member>
        <member name="P:Gallio.Properties.Resources.SimpleDiskCache_DiskCacheGroupDeleteException">
            <summary>
              Looks up a localized string similar to Could not delete the disk cache group from &apos;{0}&apos;..
            </summary>
        </member>
        <member name="P:Gallio.Properties.Resources.SimpleDiskCache_DiskCacheGroupIndeterminateExistance">
            <summary>
              Looks up a localized string similar to Could not determine whether the disk cache group from &apos;{0}&apos; exists..
            </summary>
        </member>
        <member name="P:Gallio.Properties.Resources.SimpleDiskCache_PurgeException">
            <summary>
              Looks up a localized string similar to Could not purge the cache from location &apos;{0}&apos;..
            </summary>
        </member>
        <member name="P:Gallio.Properties.Resources.ThreadAbortScope_ReentranceException">
            <summary>
              Looks up a localized string similar to At most one action may be active within the scope at a time..
            </summary>
        </member>
    </members>
</doc>
