<?xml version="1.0"?>
<doc>
    <assembly>
        <name>Microsoft.VisualStudio.SolutionPersistence</name>
    </assembly>
    <members>
        <member name="T:System.Runtime.CompilerServices.IsExternalInit">
            <summary>
                Reserved to be used by the compiler for tracking metadata.
                This class should not be used by developers in source code.
            </summary>
            <remarks>
                This definition is provided by the <i>IsExternalInit</i> NuGet package (https://www.nuget.org/packages/IsExternalInit).
                Please see https://github.com/manuelroemer/IsExternalInit for more information.
            </remarks>
        </member>
        <member name="T:System.Runtime.CompilerServices.CallerArgumentExpressionAttribute">
            <summary>
            An attribute that allows parameters to receive the expression of other parameters.
            </summary>
        </member>
        <member name="M:System.Runtime.CompilerServices.CallerArgumentExpressionAttribute.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:System.Runtime.CompilerServices.CallerArgumentExpressionAttribute" /> class.
            </summary>
            <param name="parameterName">The condition parameter value.</param>
        </member>
        <member name="P:System.Runtime.CompilerServices.CallerArgumentExpressionAttribute.ParameterName">
            <summary>
            Gets the parameter name the expression is retrieved from.
            </summary>
        </member>
        <member name="M:System.Runtime.CompilerServices.CollectionBuilderAttribute.#ctor(System.Type,System.String)">
            <summary>
            Initialize the attribute to refer to the <paramref name="methodName" /> method on the <paramref name="builderType" /> type.
            </summary>
            <param name="builderType">The type of the builder to use to construct the collection.</param>
            <param name="methodName">The name of the method on the builder to use to construct the collection.</param>
            <remarks>
            <paramref name="methodName" /> must refer to a static method that accepts a single parameter of
            type <see cref="T:System.ReadOnlySpan`1" /> and returns an instance of the collection being built containing
            a copy of the data from that span.  In future releases of .NET, additional patterns may be supported.
            </remarks>
        </member>
        <member name="P:System.Runtime.CompilerServices.CollectionBuilderAttribute.BuilderType">
            <summary>
            Gets the type of the builder to use to construct the collection.
            </summary>
        </member>
        <member name="P:System.Runtime.CompilerServices.CollectionBuilderAttribute.MethodName">
            <summary>
            Gets the name of the method on the builder to use to construct the collection.
            </summary>
            <remarks>
            This should match the metadata name of the target method.
            For example, this might be ".ctor" if targeting the type's constructor.
            </remarks>
        </member>
        <member name="T:System.Runtime.CompilerServices.InterpolatedStringHandlerArgumentAttribute">
            <summary>
            Indicates which arguments to a method involving an interpolated string handler should be passed to that handler.
            </summary>
        </member>
        <member name="M:System.Runtime.CompilerServices.InterpolatedStringHandlerArgumentAttribute.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:System.Runtime.CompilerServices.InterpolatedStringHandlerArgumentAttribute" /> class.
            </summary>
            <param name="argument">The name of the argument that should be passed to the handler.</param>
            <remarks><see langword="null" /> may be used as the name of the receiver in an instance method.</remarks>
        </member>
        <member name="M:System.Runtime.CompilerServices.InterpolatedStringHandlerArgumentAttribute.#ctor(System.String[])">
            <summary>
            Initializes a new instance of the <see cref="T:System.Runtime.CompilerServices.InterpolatedStringHandlerArgumentAttribute" /> class.
            </summary>
            <param name="arguments">The names of the arguments that should be passed to the handler.</param>
            <remarks><see langword="null" /> may be used as the name of the receiver in an instance method.</remarks>
        </member>
        <member name="P:System.Runtime.CompilerServices.InterpolatedStringHandlerArgumentAttribute.Arguments">
            <summary>
            Gets the names of the arguments that should be passed to the handler.
            </summary>
            <remarks><see langword="null" /> may be used as the name of the receiver in an instance method.</remarks>
        </member>
        <member name="T:System.Runtime.CompilerServices.InterpolatedStringHandlerAttribute">
            <summary>
            Indicates the attributed type is to be used as an interpolated string handler.
            </summary>
        </member>
        <member name="T:System.Runtime.CompilerServices.ModuleInitializerAttribute">
             <summary>
             Used to indicate to the compiler that a method should be called
             in its containing module's initializer.
             </summary>
             <remarks>
             When one or more valid methods
             with this attribute are found in a compilation, the compiler will
             emit a module initializer which calls each of the attributed methods.
            
             Certain requirements are imposed on any method targeted with this attribute:
             - The method must be `static`.
             - The method must be an ordinary member method, as opposed to a property accessor, constructor, local function, etc.
             - The method must be parameterless.
             - The method must return `void`.
             - The method must not be generic or be contained in a generic type.
             - The method's effective accessibility must be `internal` or `public`.
            
             The specification for module initializers in the .NET runtime can be found here:
             https://github.com/dotnet/runtime/blob/main/docs/design/specs/Ecma-335-Augments.md#module-initializer
             </remarks>
        </member>
        <member name="T:System.Runtime.CompilerServices.OverloadResolutionPriorityAttribute">
            <summary>
            Specifies the priority of a member in overload resolution. When unspecified, the default priority is 0.
            </summary>
        </member>
        <member name="M:System.Runtime.CompilerServices.OverloadResolutionPriorityAttribute.#ctor(System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:System.Runtime.CompilerServices.OverloadResolutionPriorityAttribute" /> class.
            </summary>
            <param name="priority">The priority of the attributed member. Higher numbers are prioritized, lower numbers are deprioritized. 0 is the default if no attribute is present.</param>
        </member>
        <member name="P:System.Runtime.CompilerServices.OverloadResolutionPriorityAttribute.Priority">
            <summary>
            The priority of the member.
            </summary>
        </member>
        <member name="T:System.Runtime.CompilerServices.ParamCollectionAttribute">
            <summary>
            Indicates that a method will allow a variable number of arguments in its invocation.
            </summary>
        </member>
        <member name="T:System.Runtime.CompilerServices.RequiresLocationAttribute">
            <summary>
            Reserved for use by a compiler for tracking metadata.
            This attribute should not be used by developers in source code.
            </summary>
        </member>
        <member name="T:System.Runtime.CompilerServices.SkipLocalsInitAttribute">
            <summary>
            Used to indicate to the compiler that the <c>.locals init</c> flag should not be set in method headers.
            </summary>
        </member>
        <member name="M:System.Runtime.Versioning.RequiresPreviewFeaturesAttribute.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:System.Runtime.Versioning.RequiresPreviewFeaturesAttribute" /> class.
            </summary>
        </member>
        <member name="M:System.Runtime.Versioning.RequiresPreviewFeaturesAttribute.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:System.Runtime.Versioning.RequiresPreviewFeaturesAttribute" /> class with the specified message.
            </summary>
            <param name="message">An optional message associated with this attribute instance.</param>
        </member>
        <member name="P:System.Runtime.Versioning.RequiresPreviewFeaturesAttribute.Message">
            <summary>
            Returns the optional message associated with this attribute instance.
            </summary>
        </member>
        <member name="P:System.Runtime.Versioning.RequiresPreviewFeaturesAttribute.Url">
            <summary>
            Returns the optional URL associated with this attribute instance.
            </summary>
        </member>
        <member name="T:System.Diagnostics.CodeAnalysis.AllowNullAttribute">
            <summary>
            Specifies that null is allowed as an input even if the corresponding type disallows it.
            </summary>
        </member>
        <member name="T:System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute">
            <summary>
            Indicates that the specified method parameter expects a constant.
            </summary>
            <remarks>
            This can be used to inform tooling that a constant should be used as an argument for the annotated parameter.
            </remarks>
        </member>
        <member name="P:System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute.Min">
            <summary>
            Indicates the minimum bound of the expected constant, inclusive.
            </summary>
        </member>
        <member name="P:System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute.Max">
            <summary>
            Indicates the maximum bound of the expected constant, inclusive.
            </summary>
        </member>
        <member name="T:System.Diagnostics.CodeAnalysis.DisallowNullAttribute">
            <summary>
            Specifies that null is disallowed as an input even if the corresponding type allows it.
            </summary>
        </member>
        <member name="T:System.Diagnostics.CodeAnalysis.DoesNotReturnAttribute">
            <summary>
            Applied to a method that will never return under any circumstance.
            </summary>
        </member>
        <member name="T:System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute">
            <summary>
            Specifies that the method will not return if the associated Boolean parameter is passed the specified value.
            </summary>
        </member>
        <member name="M:System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute.#ctor(System.Boolean)">
            <summary>
            Initializes the attribute with the specified parameter value.
            </summary>
            <param name="parameterValue">
            The condition parameter value. Code after the method will be considered unreachable
            by diagnostics if the argument to the associated parameter matches this value.
            </param>
        </member>
        <member name="P:System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute.ParameterValue">
            <summary>
            Gets the condition parameter value.
            </summary>
        </member>
        <member name="T:System.Diagnostics.CodeAnalysis.ExperimentalAttribute">
            <summary>
            Indicates that an API is experimental and it may change in the future.
            </summary>
            <remarks>
            This attribute allows call sites to be flagged with a diagnostic that indicates that an experimental
            feature is used. Authors can use this attribute to ship preview features in their assemblies.
            </remarks>
        </member>
        <member name="M:System.Diagnostics.CodeAnalysis.ExperimentalAttribute.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:System.Diagnostics.CodeAnalysis.ExperimentalAttribute" /> class,
            specifying the ID that the compiler will use when reporting a use of the API the attribute applies to.
            </summary>
            <param name="diagnosticId">The ID that the compiler will use when reporting a use of the API the attribute applies to.</param>
        </member>
        <member name="P:System.Diagnostics.CodeAnalysis.ExperimentalAttribute.DiagnosticId">
            <summary>
            Gets the ID that the compiler will use when reporting a use of the API the attribute applies to.
            </summary>
            <value>The unique diagnostic ID.</value>
            <remarks>
            The diagnostic ID is shown in build output for warnings and errors.
            <para>This property represents the unique ID that can be used to suppress the warnings or errors, if needed.</para>
            </remarks>
        </member>
        <member name="P:System.Diagnostics.CodeAnalysis.ExperimentalAttribute.UrlFormat">
            <summary>
            Gets or sets the URL for corresponding documentation.
            The API accepts a format string instead of an actual URL, creating a generic URL that includes the diagnostic ID.
            </summary>
            <value>The format string that represents a URL to corresponding documentation.</value>
            <remarks>An example format string is <c>https://contoso.com/obsoletion-warnings/{0}</c>.</remarks>
        </member>
        <member name="T:System.Diagnostics.CodeAnalysis.MaybeNullAttribute">
            <summary>
            Specifies that an output may be null even if the corresponding type disallows it.
            </summary>
        </member>
        <member name="T:System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute">
            <summary>
            Specifies that when a method returns <see cref="P:System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute.ReturnValue" />, the parameter may be null even if the corresponding type disallows it.
            </summary>
        </member>
        <member name="M:System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute.#ctor(System.Boolean)">
            <summary>
            Initializes the attribute with the specified return value condition.
            </summary>
            <param name="returnValue">The return value condition. If the method returns this value, the associated parameter may be null.</param>
        </member>
        <member name="P:System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute.ReturnValue">
            <summary>
            Gets the return value condition.
            </summary>
        </member>
        <member name="T:System.Diagnostics.CodeAnalysis.MemberNotNullAttribute">
            <summary>
            Specifies that the method or property will ensure that the listed field and property members have not-null values.
            </summary>
        </member>
        <member name="M:System.Diagnostics.CodeAnalysis.MemberNotNullAttribute.#ctor(System.String)">
            <summary>
            Initializes the attribute with a field or property member.
            </summary>
            <param name="member">The field or property member that is promised to be not-null.</param>
        </member>
        <member name="M:System.Diagnostics.CodeAnalysis.MemberNotNullAttribute.#ctor(System.String[])">
            <summary>
            Initializes the attribute with the list of field and property members.
            </summary>
            <param name="members">The list of field and property members that are promised to be not-null.</param>
        </member>
        <member name="P:System.Diagnostics.CodeAnalysis.MemberNotNullAttribute.Members">
            <summary>
            Gets field or property member names.
            </summary>
        </member>
        <member name="T:System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute">
            <summary>
            Specifies that the method or property will ensure that the listed field and property
            members have not-null values when returning with the specified return value condition.
            </summary>
        </member>
        <member name="M:System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute.#ctor(System.Boolean,System.String)">
            <summary>
            Initializes the attribute with the specified return value condition and a field or property member.
            </summary>
            <param name="returnValue">The return value condition. If the method returns this value, the associated parameter will not be null.</param>
            <param name="member">The field or property member that is promised to be not-null.</param>
        </member>
        <member name="M:System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute.#ctor(System.Boolean,System.String[])">
            <summary>
            Initializes the attribute with the specified return value condition and list of field and property members.
            </summary>
            <param name="returnValue">The return value condition. If the method returns this value, the associated parameter will not be null.</param>
            <param name="members">The list of field and property members that are promised to be not-null.</param>
        </member>
        <member name="P:System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute.ReturnValue">
            <summary>
            Gets the return value condition.
            </summary>
        </member>
        <member name="P:System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute.Members">
            <summary>
            Gets field or property member names.
            </summary>
        </member>
        <member name="T:System.Diagnostics.CodeAnalysis.NotNullAttribute">
            <summary>
            Specifies that an output will not be null even if the corresponding type allows it.
            Specifies that an input argument was not null when the call returns.
            </summary>
        </member>
        <member name="T:System.Diagnostics.CodeAnalysis.NotNullIfNotNullAttribute">
            <summary>
            Specifies that the output will be non-null if the named parameter is non-null.
            </summary>
        </member>
        <member name="M:System.Diagnostics.CodeAnalysis.NotNullIfNotNullAttribute.#ctor(System.String)">
            <summary>
            Initializes the attribute with the associated parameter name.
            </summary>
            <param name="parameterName">The associated parameter name. The output will be non-null if the argument to the parameter specified is non-null.</param>
        </member>
        <member name="P:System.Diagnostics.CodeAnalysis.NotNullIfNotNullAttribute.ParameterName">
            <summary>
            Gets the associated parameter name.
            </summary>
        </member>
        <member name="T:System.Diagnostics.CodeAnalysis.NotNullWhenAttribute">
            <summary>
            Specifies that when a method returns <see cref="P:System.Diagnostics.CodeAnalysis.NotNullWhenAttribute.ReturnValue" />, the parameter will not be null even if the corresponding type allows it.
            </summary>
        </member>
        <member name="M:System.Diagnostics.CodeAnalysis.NotNullWhenAttribute.#ctor(System.Boolean)">
            <summary>
            Initializes the attribute with the specified return value condition.
            </summary>
            <param name="returnValue">The return value condition. If the method returns this value, the associated parameter will not be null.</param>
        </member>
        <member name="P:System.Diagnostics.CodeAnalysis.NotNullWhenAttribute.ReturnValue">
            <summary>Gets the return value condition.</summary>
        </member>
        <member name="T:System.Diagnostics.CodeAnalysis.StringSyntaxAttribute">
            <summary>
            Specifies the syntax used in a string.
            </summary>
        </member>
        <member name="M:System.Diagnostics.CodeAnalysis.StringSyntaxAttribute.#ctor(System.String)">
            <summary>
            Initializes the <see cref="T:System.Diagnostics.CodeAnalysis.StringSyntaxAttribute" /> with the identifier of the syntax used.
            </summary>
            <param name="syntax">The syntax identifier.</param>
        </member>
        <member name="M:System.Diagnostics.CodeAnalysis.StringSyntaxAttribute.#ctor(System.String,System.Object[])">
            <summary>Initializes the <see cref="T:System.Diagnostics.CodeAnalysis.StringSyntaxAttribute" /> with the identifier of the syntax used.</summary>
            <param name="syntax">The syntax identifier.</param>
            <param name="arguments">Optional arguments associated with the specific syntax employed.</param>
        </member>
        <member name="P:System.Diagnostics.CodeAnalysis.StringSyntaxAttribute.Syntax">
            <summary>Gets the identifier of the syntax used.</summary>
        </member>
        <member name="P:System.Diagnostics.CodeAnalysis.StringSyntaxAttribute.Arguments">
            <summary>Optional arguments associated with the specific syntax employed.</summary>
        </member>
        <member name="F:System.Diagnostics.CodeAnalysis.StringSyntaxAttribute.CompositeFormat">
            <summary>The syntax identifier for strings containing composite formats for string formatting.</summary>
        </member>
        <member name="F:System.Diagnostics.CodeAnalysis.StringSyntaxAttribute.DateOnlyFormat">
            <summary>The syntax identifier for strings containing date format specifiers.</summary>
        </member>
        <member name="F:System.Diagnostics.CodeAnalysis.StringSyntaxAttribute.DateTimeFormat">
            <summary>The syntax identifier for strings containing date and time format specifiers.</summary>
        </member>
        <member name="F:System.Diagnostics.CodeAnalysis.StringSyntaxAttribute.EnumFormat">
            <summary>The syntax identifier for strings containing <see cref="T:System.Enum" /> format specifiers.</summary>
        </member>
        <member name="F:System.Diagnostics.CodeAnalysis.StringSyntaxAttribute.GuidFormat">
            <summary>The syntax identifier for strings containing <see cref="T:System.Guid" /> format specifiers.</summary>
        </member>
        <member name="F:System.Diagnostics.CodeAnalysis.StringSyntaxAttribute.Json">
            <summary>The syntax identifier for strings containing JavaScript Object Notation (JSON).</summary>
        </member>
        <member name="F:System.Diagnostics.CodeAnalysis.StringSyntaxAttribute.NumericFormat">
            <summary>The syntax identifier for strings containing numeric format specifiers.</summary>
        </member>
        <member name="F:System.Diagnostics.CodeAnalysis.StringSyntaxAttribute.Regex">
            <summary>The syntax identifier for strings containing regular expressions.</summary>
        </member>
        <member name="F:System.Diagnostics.CodeAnalysis.StringSyntaxAttribute.TimeOnlyFormat">
            <summary>The syntax identifier for strings containing time format specifiers.</summary>
        </member>
        <member name="F:System.Diagnostics.CodeAnalysis.StringSyntaxAttribute.TimeSpanFormat">
            <summary>The syntax identifier for strings containing <see cref="T:System.TimeSpan" /> format specifiers.</summary>
        </member>
        <member name="F:System.Diagnostics.CodeAnalysis.StringSyntaxAttribute.Uri">
            <summary>The syntax identifier for strings containing URIs.</summary>
        </member>
        <member name="F:System.Diagnostics.CodeAnalysis.StringSyntaxAttribute.Xml">
            <summary>The syntax identifier for strings containing XML.</summary>
        </member>
        <member name="T:System.Diagnostics.CodeAnalysis.UnscopedRefAttribute">
            <summary>
            Used to indicate a byref escapes and is not scoped.
            </summary>
            <remarks>
            <para>
            There are several cases where the C# compiler treats a <see langword="ref" /> as implicitly
            <see langword="scoped" /> - where the compiler does not allow the <see langword="ref" /> to escape the method.
            </para>
            <para>
            For example:
            <list type="number">
                <item><see langword="this" /> for <see langword="struct" /> instance methods.</item>
                <item><see langword="ref" /> parameters that refer to <see langword="ref" /> <see langword="struct" /> types.</item>
                <item><see langword="out" /> parameters.</item>
            </list>
            </para>
            <para>
            This attribute is used in those instances where the <see langword="ref" /> should be allowed to escape.
            </para>
            <para>
            Applying this attribute, in any form, has impact on consumers of the applicable API. It is necessary for
            API authors to understand the lifetime implications of applying this attribute and how it may impact their users.
            </para>
            </remarks>
        </member>
        <member name="T:System.Index">
            <summary>Represent a type can be used to index a collection either from the start or the end.</summary>
            <remarks>
            Index is used by the C# compiler to support the new index syntax
            <code>
            int[] someArray = new int[5] { 1, 2, 3, 4, 5 } ;
            int lastElement = someArray[^1]; // lastElement = 5
            </code>
            </remarks>
        </member>
        <member name="M:System.Index.#ctor(System.Int32,System.Boolean)">
            <summary>Construct an Index using a value and indicating if the index is from the start or from the end.</summary>
            <param name="value">The index value. it has to be zero or positive number.</param>
            <param name="fromEnd">Indicating if the index is from the start or from the end.</param>
            <remarks>
            If the Index constructed from the end, index value 1 means pointing at the last element and index value 0 means pointing at beyond last element.
            </remarks>
        </member>
        <member name="P:System.Index.Start">
            <summary>Create an Index pointing at first element.</summary>
        </member>
        <member name="P:System.Index.End">
            <summary>Create an Index pointing at beyond last element.</summary>
        </member>
        <member name="M:System.Index.FromStart(System.Int32)">
            <summary>Create an Index from the start at the position indicated by the value.</summary>
            <param name="value">The index value from the start.</param>
        </member>
        <member name="M:System.Index.FromEnd(System.Int32)">
            <summary>Create an Index from the end at the position indicated by the value.</summary>
            <param name="value">The index value from the end.</param>
        </member>
        <member name="P:System.Index.Value">
            <summary>Returns the index value.</summary>
        </member>
        <member name="P:System.Index.IsFromEnd">
            <summary>Indicates whether the index is from the start or the end.</summary>
        </member>
        <member name="M:System.Index.GetOffset(System.Int32)">
            <summary>Calculate the offset from the start using the giving collection length.</summary>
            <param name="length">The length of the collection that the Index will be used with. length has to be a positive value</param>
            <remarks>
            For performance reason, we don't validate the input length parameter and the returned offset value against negative values.
            we don't validate either the returned offset is greater than the input length.
            It is expected Index will be used with collections which always have non negative length/count. If the returned offset is negative and
            then used to index a collection will get out of range exception which will be same affect as the validation.
            </remarks>
        </member>
        <member name="M:System.Index.Equals(System.Object)">
            <summary>Indicates whether the current Index object is equal to another object of the same type.</summary>
            <param name="value">An object to compare with this object</param>
        </member>
        <member name="M:System.Index.Equals(System.Index)">
            <summary>Indicates whether the current Index object is equal to another Index object.</summary>
            <param name="other">An object to compare with this object</param>
        </member>
        <member name="M:System.Index.GetHashCode">
            <summary>Returns the hash code for this instance.</summary>
        </member>
        <member name="M:System.Index.op_Implicit(System.Int32)~System.Index">
            <summary>Converts integer number to an Index.</summary>
        </member>
        <member name="M:System.Index.ToString">
            <summary>Converts the value of the current Index object to its equivalent string representation.</summary>
        </member>
        <member name="T:System.Range">
            <summary>Represent a range has start and end indexes.</summary>
            <remarks>
            Range is used by the C# compiler to support the range syntax.
            <code>
            int[] someArray = new int[5] { 1, 2, 3, 4, 5 };
            int[] subArray1 = someArray[0..2]; // { 1, 2 }
            int[] subArray2 = someArray[1..^0]; // { 2, 3, 4, 5 }
            </code>
            </remarks>
        </member>
        <member name="P:System.Range.Start">
            <summary>Represent the inclusive start index of the Range.</summary>
        </member>
        <member name="P:System.Range.End">
            <summary>Represent the exclusive end index of the Range.</summary>
        </member>
        <member name="M:System.Range.#ctor(System.Index,System.Index)">
            <summary>Construct a Range object using the start and end indexes.</summary>
            <param name="start">Represent the inclusive start index of the range.</param>
            <param name="end">Represent the exclusive end index of the range.</param>
        </member>
        <member name="M:System.Range.Equals(System.Object)">
            <summary>Indicates whether the current Range object is equal to another object of the same type.</summary>
            <param name="value">An object to compare with this object</param>
        </member>
        <member name="M:System.Range.Equals(System.Range)">
            <summary>Indicates whether the current Range object is equal to another Range object.</summary>
            <param name="other">An object to compare with this object</param>
        </member>
        <member name="M:System.Range.GetHashCode">
            <summary>Returns the hash code for this instance.</summary>
        </member>
        <member name="M:System.Range.ToString">
            <summary>Converts the value of the current Range object to its equivalent string representation.</summary>
        </member>
        <member name="M:System.Range.StartAt(System.Index)">
            <summary>Create a Range object starting from start index to the end of the collection.</summary>
        </member>
        <member name="M:System.Range.EndAt(System.Index)">
            <summary>Create a Range object starting from first element in the collection to the end Index.</summary>
        </member>
        <member name="P:System.Range.All">
            <summary>Create a Range object starting from first element to the end.</summary>
        </member>
        <member name="M:System.Range.GetOffsetAndLength(System.Int32)">
            <summary>Calculate the start offset and length of range object using a collection length.</summary>
            <param name="length">The length of the collection that the range will be used with. length has to be a positive value.</param>
            <remarks>
            For performance reason, we don't validate the input length parameter against negative values.
            It is expected Range will be used with collections which always have non negative length/count.
            We validate the range is inside the length scope though.
            </remarks>
        </member>
        <member name="T:Microsoft.VisualStudio.SolutionPersistence.Errors">
            <summary>
              A strongly-typed resource class, for looking up localized strings, etc.
            </summary>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Errors.ResourceManager">
            <summary>
              Returns the cached ResourceManager instance used by this class.
            </summary>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Errors.Culture">
            <summary>
              Overrides the current thread's CurrentUICulture property for all
              resource lookups using this strongly typed resource class.
            </summary>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Errors.CannotMoveFolderToChildFolder">
            <summary>
              Looks up a localized string similar to Cannot move a folder to a child folder..
            </summary>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Errors.DuplicateDefaultProjectType">
            <summary>
              Looks up a localized string similar to Multiple default project types defined..
            </summary>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Errors.DuplicateExtension_Args2">
            <summary>
              Looks up a localized string similar to Duplicate file extension '{0}' for project type '{1}'..
            </summary>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Errors.DuplicateItemRef_Args2">
            <summary>
              Looks up a localized string similar to Duplicate item '{0}' of type '{1}'..
            </summary>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Errors.DuplicateKey">
            <summary>
              Looks up a localized string similar to An element with the same key already exists..
            </summary>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Errors.DuplicateName_Args2">
            <summary>
              Looks up a localized string similar to Duplicate name '{0}' for project type '{1}'..
            </summary>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Errors.DuplicateProjectName_Arg2">
            <summary>
              Looks up a localized string similar to Project name '{0}' already exists in the '{1}' solution folder..
            </summary>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Errors.DuplicateProjectPath_Arg1">
            <summary>
              Looks up a localized string similar to Project path '{0}' already exists in the solution..
            </summary>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Errors.DuplicateProjectTypeId_Args2">
            <summary>
              Looks up a localized string similar to Duplicate project type id '{0}' for project type '{1}'..
            </summary>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Errors.InvalidConfiguration_Args1">
            <summary>
              Looks up a localized string similar to Invalid syntax for solution configuration '{0}'..
            </summary>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Errors.InvalidEncoding">
            <summary>
              Looks up a localized string similar to Only ASCII, UTF-8, and Unicode encodings are supported for serializing '.sln' files..
            </summary>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Errors.InvalidFolderPath_Args1">
            <summary>
              Looks up a localized string similar to Solution folder path '{0}' must start and end with '/'..
            </summary>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Errors.InvalidFolderReference_Args1">
            <summary>
              Looks up a localized string similar to Folder '{0}' not found..
            </summary>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Errors.InvalidItemRef_Args2">
            <summary>
              Looks up a localized string similar to Missing or invalid '{0}' item in type '{1}'..
            </summary>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Errors.InvalidLoop_Args1">
            <summary>
              Looks up a localized string similar to Circular dependency found for '{0}'..
            </summary>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Errors.InvalidModelItem">
            <summary>
              Looks up a localized string similar to Model does not belong to this solution..
            </summary>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Errors.InvalidName">
             <summary>
               Looks up a localized string similar to Names cannot:
            - contain any of the following characters: / ? : \ * " &lt; &gt; |
            - contain control characters
            - be system reserved names, including 'CON', 'AUX', 'PRN', 'COM1' or 'LPT2'
            - be '.' or '..'.
             </summary>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Errors.InvalidProjectReference_Args1">
            <summary>
              Looks up a localized string similar to "Project '{0}' not found.".
            </summary>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Errors.InvalidProjectTypeReference_Args1">
            <summary>
              Looks up a localized string similar to ProjectType '{0}' not found..
            </summary>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Errors.InvalidScope">
            <summary>
              Looks up a localized string similar to Missing or invalid scope..
            </summary>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Errors.InvalidVersion_Args1">
            <summary>
              Looks up a localized string similar to Invalid version '{0}'..
            </summary>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Errors.MissingDisplayName">
            <summary>
              Looks up a localized string similar to Missing display name..
            </summary>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Errors.MissingPath">
            <summary>
              Looks up a localized string similar to Missing project path..
            </summary>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Errors.MissingProjectId">
            <summary>
              Looks up a localized string similar to Missing project id..
            </summary>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Errors.MissingProjectValue">
            <summary>
              Looks up a localized string similar to Project attribute is empty..
            </summary>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Errors.MissingSectionName">
            <summary>
              Looks up a localized string similar to Missing section name..
            </summary>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Errors.NotSolution">
            <summary>
              Looks up a localized string similar to Not a solution file..
            </summary>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Errors.SyntaxError">
            <summary>
              Looks up a localized string similar to Syntax error..
            </summary>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Errors.UnsupportedVersion_Args1">
            <summary>
              Looks up a localized string similar to The file version '{0}' is unsupported..
            </summary>
        </member>
        <member name="T:Microsoft.VisualStudio.SolutionPersistence.Model.BuildDimension">
            <summary>
            Type of build dimension that can be configured.
            </summary>
        </member>
        <member name="F:Microsoft.VisualStudio.SolutionPersistence.Model.BuildDimension.BuildType">
            <summary>
            Represents the build type of a project. (For example Debug or Release).
            </summary>
        </member>
        <member name="F:Microsoft.VisualStudio.SolutionPersistence.Model.BuildDimension.Platform">
            <summary>
            Represents the platform of a project. (For example Any CPU or x64).
            </summary>
        </member>
        <member name="F:Microsoft.VisualStudio.SolutionPersistence.Model.BuildDimension.Build">
            <summary>
            Determines if the project should be built.
            </summary>
        </member>
        <member name="F:Microsoft.VisualStudio.SolutionPersistence.Model.BuildDimension.Deploy">
            <summary>
            Determines if the project should be deployed.
            </summary>
        </member>
        <member name="T:Microsoft.VisualStudio.SolutionPersistence.Model.ConfigurationRule">
            <summary>
            Represents a rule that maps a solution configuration dimension to a project configuration dimension.
            For example a Platform dimension might map "Any CPU" -&gt; "x64" for a C++ project.
            Dimensions: BuildType (e.g. Debug, Release), Platform (e.g. Any CPU, x64).
            </summary>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Model.ConfigurationRule.#ctor(Microsoft.VisualStudio.SolutionPersistence.Model.BuildDimension,System.String,System.String,System.String)">
            <summary>
            Represents a rule that maps a solution configuration dimension to a project configuration dimension.
            For example a Platform dimension might map "Any CPU" -&gt; "x64" for a C++ project.
            Dimensions: BuildType (e.g. Debug, Release), Platform (e.g. Any CPU, x64).
            </summary>
        </member>
        <member name="F:Microsoft.VisualStudio.SolutionPersistence.Model.ConfigurationRule.Dimension">
            <summary>
            The dimension that is being configured.
            </summary>
        </member>
        <member name="F:Microsoft.VisualStudio.SolutionPersistence.Model.ConfigurationRule.SolutionBuildType">
            <summary>
            The solution build type that gets mapped to the project value.
            If string.Empty, then the project value is applied for all solution build types.
            </summary>
        </member>
        <member name="F:Microsoft.VisualStudio.SolutionPersistence.Model.ConfigurationRule.SolutionPlatform">
            <summary>
            The solution platform that gets mapped to the project value.
            If string.Empty, then the project value is applied for all solution platforms.
            </summary>
        </member>
        <member name="F:Microsoft.VisualStudio.SolutionPersistence.Model.ConfigurationRule.ProjectValue">
            <summary>
            The value that the project configuration should be set to.
            For BuildType or Dimension, this string represents the project configuration value.
            For Build or Deploy, this string is a string boolean value. (True or False).
            </summary>
        </member>
        <member name="T:Microsoft.VisualStudio.SolutionPersistence.Model.ConfigurationRuleFollower">
            <summary>
            Helper to process configuration rules.
            </summary>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Model.ConfigurationRuleFollower.#ctor(System.Collections.Generic.IReadOnlyList{Microsoft.VisualStudio.SolutionPersistence.Model.ConfigurationRule})">
            <summary>
            Helper to process configuration rules.
            </summary>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Model.ConfigurationRuleFollower.RuleAppliesTo(Microsoft.VisualStudio.SolutionPersistence.Model.ConfigurationRule,Microsoft.VisualStudio.SolutionPersistence.Model.BuildDimension,System.String,System.String)">
            <summary>
            Checks if the rule applies to the specified configuration.
            Null/Empty dimensions represent all values of the dimension.
            If null dimensions are passed, only rules that apply to all values of the dimensions apply.
            </summary>
        </member>
        <member name="T:Microsoft.VisualStudio.SolutionPersistence.Model.ISerializerModelExtension">
            <summary>
            Allows the serializer to extend the model with properties that are specific to the serializer.
            </summary>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Model.ISerializerModelExtension.Serializer">
            <summary>
            Gets the serializer that is extending the model.
            </summary>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Model.ISerializerModelExtension.Tarnished">
            <summary>
            Gets a value indicating whether there were correctable errors in the file
            that would be fixed by saving the model again.
            </summary>
        </member>
        <member name="T:Microsoft.VisualStudio.SolutionPersistence.Model.ISerializerModelExtension`1">
            <summary>
            Allows the serializer to extend the model with properties that are specific to the serializer.
            </summary>
            <typeparam name="TSettings">The settings type for the serializer.</typeparam>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Model.ISerializerModelExtension`1.Settings">
            <summary>
            Gets the settings that are specific to the serializer.
            </summary>
        </member>
        <member name="T:Microsoft.VisualStudio.SolutionPersistence.Model.ModelHelper">
            <summary>
            Helpers and extension methods to be used on items in the model.
            </summary>
        </member>
        <member name="T:Microsoft.VisualStudio.SolutionPersistence.Model.ProjectConfigMapping">
            <summary>
            Represents the project configuration and build/deploy settings.
            This is used to create an expanded mapping of every solution configuration to every project configuration.
            </summary>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Model.ProjectConfigMapping.#ctor(System.String,System.String,System.Boolean,System.Boolean)">
            <summary>
            Represents the project configuration and build/deploy settings.
            This is used to create an expanded mapping of every solution configuration to every project configuration.
            </summary>
        </member>
        <member name="T:Microsoft.VisualStudio.SolutionPersistence.Model.ProjectType">
            <summary>
            Information used by the model to determine project type details for a project.
            This maps a friendly name and or a file extension to a project type id.
            It also contains a list of default configuration rules for the project type.
            It can reference another project type with BasedOn to inherit its
            configuration rules and project type id.
            </summary>
            <remarks>
            A <see cref="T:Microsoft.VisualStudio.SolutionPersistence.Model.ProjectType" /> with no Name, Extension, or ProjectTypeId is a special
            case used to define default configuration rules for all projects in the solution.
            Otherwise, a <see cref="T:Microsoft.VisualStudio.SolutionPersistence.Model.ProjectType" /> must have either a Name or Extension.
            Each unique ProjectTypeId must have a unique Name.
            </remarks>
            <param name="projectTypeId">The project type id for this item.</param>
            <param name="rules">Rules to determine the default configurations for projects of this type.</param>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Model.ProjectType.#ctor(System.Guid,System.Collections.Generic.IReadOnlyList{Microsoft.VisualStudio.SolutionPersistence.Model.ConfigurationRule})">
            <summary>
            Information used by the model to determine project type details for a project.
            This maps a friendly name and or a file extension to a project type id.
            It also contains a list of default configuration rules for the project type.
            It can reference another project type with BasedOn to inherit its
            configuration rules and project type id.
            </summary>
            <remarks>
            A <see cref="T:Microsoft.VisualStudio.SolutionPersistence.Model.ProjectType" /> with no Name, Extension, or ProjectTypeId is a special
            case used to define default configuration rules for all projects in the solution.
            Otherwise, a <see cref="T:Microsoft.VisualStudio.SolutionPersistence.Model.ProjectType" /> must have either a Name or Extension.
            Each unique ProjectTypeId must have a unique Name.
            </remarks>
            <param name="projectTypeId">The project type id for this item.</param>
            <param name="rules">Rules to determine the default configurations for projects of this type.</param>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Model.ProjectType.ProjectTypeId">
            <summary>
            Gets the project type id for this item.
            </summary>
            <remarks>
            This is a unique identifier for the project type and must not be Guid.Empty unless BasedOn is specified.
            </remarks>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Model.ProjectType.ConfigurationRules">
            <summary>
            Gets rules to determine the default configurations for projects of this type.
            </summary>
            <remarks>
            If a project type should not build, it should have a single rule with Build set to <see langword="false" />.
            </remarks>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Model.ProjectType.Name">
            <summary>
            Gets the name of the project type. This can be used instead of the ProjectTypeId to be
            more friendly to read.
            </summary>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Model.ProjectType.Extension">
            <summary>
            Gets the file extension of the project type. This can be used to determine the project type automatically.
            </summary>
            <remarks>
            The leading dot is recommended, but optional.
            </remarks>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Model.ProjectType.BasedOn">
            <summary>
            Gets a references to a base project type to inherit its configuration rules and project type id.
            This uses the <see cref="P:Microsoft.VisualStudio.SolutionPersistence.Model.ProjectType.Name" /> or <see cref="P:Microsoft.VisualStudio.SolutionPersistence.Model.ProjectType.Extension" /> of the base project type to find it.
            </summary>
        </member>
        <member name="T:Microsoft.VisualStudio.SolutionPersistence.Model.ProjectTypeTable">
            <summary>
            Wrapper to query list of project types.
            </summary>
        </member>
        <member name="T:Microsoft.VisualStudio.SolutionPersistence.Model.PropertyContainerModel">
            <summary>
            Base model for models that contain property bags.
            </summary>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Model.PropertyContainerModel.#ctor(Microsoft.VisualStudio.SolutionPersistence.Model.PropertyContainerModel)">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.SolutionPersistence.Model.PropertyContainerModel" /> class.
            Copy constructor.
            </summary>
            <param name="propertyContainer">The property container model to copy.</param>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Model.PropertyContainerModel.Properties">
            <summary>
            Gets properties associated with this model.
            </summary>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Model.PropertyContainerModel.FindProperties(System.String)">
            <summary>
            Gets a property bag by its id.
            </summary>
            <param name="id">The property bag id.</param>
            <returns>The property bag if found.</returns>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Model.PropertyContainerModel.AddProperties(System.String,Microsoft.VisualStudio.SolutionPersistence.Model.PropertiesScope)">
            <summary>
            Adds or gets a property bag by its id.
            </summary>
            <param name="id">The property bag id.</param>
            <param name="scope">The scope to create a new property bag with.</param>
            <returns>The property bag.</returns>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Model.PropertyContainerModel.RemoveProperties(System.String)">
            <summary>
            Removes a property bag by its id.
            </summary>
            <param name="id">The property bag id.</param>
            <returns><see langword="true" /> if the property bag was found and removed.</returns>
        </member>
        <member name="T:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionArgumentException">
            <summary>
            Represents an argument exception inside the solution.
            </summary>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionArgumentException.#ctor(System.String,Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType)">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionArgumentException" /> class.
            </summary>
            <param name="message">Message to be shown with the exception.</param>
            <param name="type">Reason for the exception.</param>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionArgumentException.#ctor(System.String,System.Exception,Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType)">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionArgumentException" /> class.
            </summary>
            <param name="message">Message to be shown with the exception.</param>
            <param name="innerException">Exception that triggered this exception.</param>
            <param name="type">Reason for the exception.</param>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionArgumentException.#ctor(System.String,System.String,Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType)">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionArgumentException" /> class.
            </summary>
            <param name="message">Message to be shown with the exception.</param>
            <param name="paramName">Name of parameter that triggered this exception.</param>
            <param name="type">Reason for the exception.</param>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionArgumentException.#ctor(System.String,System.String,System.Exception,Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType)">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionArgumentException" /> class.
            </summary>
            <param name="message">Message to be shown with the exception.</param>
            <param name="paramName">Name of parameter that triggered this exception.</param>
            <param name="innerException">Exception that triggered this exception.</param>
            <param name="type">Reason for the exception.</param>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionArgumentException.Type">
            <summary>
            Gets reason why the exception was raised.
            </summary>
        </member>
        <member name="T:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionConfigurationMap">
            <summary>
            Helper to convert full list of solution to project configuration mappings to model rules and vice versa.
            </summary>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionConfigurationMap.GetProjectConfigMap(Microsoft.VisualStudio.SolutionPersistence.Model.SolutionProjectModel,Microsoft.VisualStudio.SolutionPersistence.Model.SolutionConfigurationMap.SolutionToProjectMappings@,System.Boolean@)">
            <summary>
            Used to convert this model to a full list of all solution to project configurations.
            </summary>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionConfigurationMap.CreateMatrixAnnotation">
            <summary>
            This just create a mapping of all solution configurations to indexes.
            Solution configurations are every combination of buildType and platform.
            </summary>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionConfigurationMap.DistillProjectConfigurations">
            <summary>
            Interprets all of the current project configurations to a full list of all mappings.
            Then recalculates a distilled set of rules for each project.
            </summary>
        </member>
        <member name="T:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionConfigurationMap.SolutionToProjectMappings">
            <summary>
            Represents all project configurations that are mapped from
            all solution configurations for a single project.
            </summary>
        </member>
        <member name="T:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionConfigurationMap.SolutionConfigIndex">
            <summary>
            Represents an index into the matrix of solution to project configurations mappings.
            </summary>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionConfigurationMap.CreateProjectRules(Microsoft.VisualStudio.SolutionPersistence.Model.SolutionProjectModel)">
            <summary>
            This is used to create a simplified set of rules for a project to get project
            configurations. This uses the cached set of mappings to determine what rules to create.
            </summary>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionConfigurationMap.ApplyRules(Microsoft.VisualStudio.SolutionPersistence.Model.SolutionConfigurationMap.SolutionToProjectMappings@,Microsoft.VisualStudio.SolutionPersistence.Model.SolutionConfigurationMap.ScopedRules@)">
            <summary>
            Applies the rules to the mappings. This will update the mappings in place.
            Only runs the rules on the scope specified by the build type and platform.
            </summary>
            <param name="projectMappings">The mappings to update.</param>
            <param name="scopedRules">The rules to run, scoped to their effect.</param>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionConfigurationMap.CreateRules(Microsoft.VisualStudio.SolutionPersistence.Model.SolutionConfigurationMap.SolutionToProjectMappings@,Microsoft.VisualStudio.SolutionPersistence.Model.SolutionConfigurationMap.SolutionToProjectMappings@)">
            <summary>
            Creates a set of rules that convert the project mappings in currentMatrix to the expectedMatrix.
            </summary>
            <param name="expectedMatrix">What the default mappings are. These get updated after each rule is added.</param>
            <param name="currentMatrix">What the final mappings should be.</param>
        </member>
        <member name="T:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionConfigurationMap.ScopedRules">
            <summary>
            A list of rules and a specific or range of build types and platforms that the rules apply to.
            </summary>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionConfigurationMap.ScopedRules.#ctor(System.Int32,System.Int32,System.Collections.Generic.IReadOnlyList{Microsoft.VisualStudio.SolutionPersistence.Model.ConfigurationRule})">
            <summary>
            A list of rules and a specific or range of build types and platforms that the rules apply to.
            </summary>
        </member>
        <member name="T:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType">
            <summary>
            Reasons the SolutionArgumentException was raised.
            </summary>
        </member>
        <member name="F:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType.Undefined">
            <summary>
            The cause of the error is not specified.
            </summary>
        </member>
        <member name="F:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType.CannotMoveFolderToChildFolder">
            <summary>
            There was an error while trying to move a folder to a child folder.
            </summary>
        </member>
        <member name="F:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType.DuplicateDefaultProjectType">
            <summary>
            The default project type was duplicated.
            </summary>
        </member>
        <member name="F:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType.DuplicateExtension">
            <summary>
            File has two extensions.
            </summary>
        </member>
        <member name="F:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType.DuplicateItemRef">
            <summary>
            Item already exists in the solution.
            </summary>
        </member>
        <member name="F:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType.DuplicateName">
            <summary>
            Name of item is duplicate.
            </summary>
        </member>
        <member name="F:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType.DuplicateProjectName">
            <summary>
            A project with the same name already exists.
            </summary>
        </member>
        <member name="F:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType.DuplicateProjectPath">
            <summary>
            A project with the same path already exists.
            </summary>
        </member>
        <member name="F:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType.DuplicateProjectTypeId">
            <summary>
            This project type is already specified.
            </summary>
        </member>
        <member name="F:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType.InvalidConfiguration">
            <summary>
            Invalid syntax for solution configuration.
            </summary>
        </member>
        <member name="F:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType.InvalidEncoding">
            <summary>
            Invalid encoding for solution.
            </summary>
        </member>
        <member name="F:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType.InvalidFolderPath">
            <summary>
            Folder path doesn't follow correct format.
            </summary>
        </member>
        <member name="F:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType.InvalidFolderReference">
            <summary>
            Folder was not found.
            </summary>
        </member>
        <member name="F:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType.InvalidItemRef">
            <summary>
            Item is not valid.
            </summary>
        </member>
        <member name="F:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType.InvalidLoop">
            <summary>
            Found a circular dependency.
            </summary>
        </member>
        <member name="F:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType.InvalidModelItem">
            <summary>
            Model does not belong to this solution.
            </summary>
        </member>
        <member name="F:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType.InvalidName">
            <summary>
            Name of item is not valid.
            </summary>
        </member>
        <member name="F:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType.InvalidProjectReference">
            <summary>
            Project was not found.
            </summary>
        </member>
        <member name="F:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType.InvalidProjectTypeReference">
            <summary>
            Project type was not found.
            </summary>
        </member>
        <member name="F:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType.InvalidVersion">
            <summary>
            File version is not supported.
            </summary>
        </member>
        <member name="F:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType.MissingProjectValue">
            <summary>
            Empty value for project attribute.
            </summary>
        </member>
        <member name="F:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType.NotSolution">
            <summary>
            The file is not a solution file.
            </summary>
        </member>
        <member name="F:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType.UnsupportedVersion">
            <summary>
            This veersion is not supported.
            </summary>
        </member>
        <member name="F:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType.InvalidXmlDecoratorElementName">
            <summary>
            Invalid decorator element name.
            </summary>
        </member>
        <member name="T:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionException">
            <summary>
            An exception that is thrown when a solution file is not in the expected format.
            </summary>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionException.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionException" /> class.
            </summary>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionException.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionException" /> class.
            </summary>
            <param name="message">The error message that explains the reason for the exception.</param>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionException.#ctor(System.String,System.Exception)">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionException" /> class.
            </summary>
            <param name="message">The error message that explains the reason for the exception.</param>
            <param name="inner">The exception that is the cause of the current exception.</param>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionException.#ctor(System.String,Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType)">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionException" /> class.
            </summary>
            <param name="message">The error message that explains the reason for the exception.</param>
            <param name="errorType">The type of error associated to this exception.</param>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionException.#ctor(System.String,System.Exception,Microsoft.VisualStudio.SolutionPersistence.Model.SolutionErrorType)">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionException" /> class.
            </summary>
            <param name="message">The error message that explains the reason for the exception.</param>
            <param name="inner">The exception that is the cause of the current exception.</param>
            <param name="errorType">The type of error associated to this exception.</param>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionException" /> class.
            Used for serialization in .NET Framework.
            </summary>
            <param name="info">Serialization info.</param>
            <param name="context">Contextual info.</param>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionException.ErrorType">
            <summary>
            Gets error type.
            </summary>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionException.File">
            <summary>
            Gets file the error occurred in if known.
            </summary>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionException.Line">
            <summary>
            Gets line number the error occurred on if known.
            </summary>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionException.Column">
            <summary>
            Gets column number the error occurred on if known.
            </summary>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <inheritdoc />
        </member>
        <member name="T:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionFolderModel">
            <summary>
            Represents a solution folder in the solution model.
            </summary>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionFolderModel.#ctor(Microsoft.VisualStudio.SolutionPersistence.Model.SolutionModel,Microsoft.VisualStudio.SolutionPersistence.Model.SolutionFolderModel)">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionFolderModel" /> class.
            Copy constructor.
            </summary>
            <param name="solutionModel">The new solution model parent.</param>
            <param name="folderModel">The folder model to copy.</param>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionFolderModel.Files">
            <summary>
            Gets the files in this solution folder.
            </summary>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionFolderModel.Name">
            <summary>
            Gets or sets the name of the solution folder.
            </summary>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionFolderModel.Path">
            <summary>
            Gets a unique reference to this folder in the solution.
            </summary>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionFolderModel.ActualDisplayName">
            <inheritdoc />
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionFolderModel.TypeId">
            <inheritdoc />
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionFolderModel.ItemRef">
            <inheritdoc />
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionFolderModel.AddFile(System.String)">
            <summary>
            Adds a file to this solution folder.
            </summary>
            <param name="file">The file to add.</param>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionFolderModel.RemoveFile(System.String)">
            <summary>
            Removes a file from this solution folder.
            </summary>
            <param name="file">The file to remove.</param>
            <returns><see langword="true" /> if the item was found and removed.</returns>
        </member>
        <member name="T:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionItemModel">
            <summary>
            Represents an item in the solution model, either a project or a solution folder.
            </summary>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionItemModel.#ctor(Microsoft.VisualStudio.SolutionPersistence.Model.SolutionModel,Microsoft.VisualStudio.SolutionPersistence.Model.SolutionItemModel)">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionItemModel" /> class.
            Copy constructor. This does a shallow copy of the Parent.
            </summary>
            <param name="solutionModel">The new solution model parent.</param>
            <param name="itemModel">The item model to copy.</param>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionItemModel.Solution">
            <summary>
            Gets the solution model that contains this item.
            </summary>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionItemModel.Parent">
            <summary>
            Gets the parent solution folder.
            </summary>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionItemModel.Id">
            <summary>
            Gets or sets the unique Id of the item within the solution.
            </summary>
            <remarks>
            Set to <see cref="F:System.Guid.Empty" /> to use default guid.
            </remarks>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionItemModel.IsDefaultId">
            <summary>
            Gets a value indicating whether the Id is the default Id generated from the ItemRef.
            </summary>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionItemModel.ActualDisplayName">
            <summary>
            Gets the display name of the item. If there is a filename it will be used, otherwise the actual display name.
            </summary>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionItemModel.TypeId">
            <summary>
            Gets the project type id of the item.
            </summary>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionItemModel.ItemRef">
            <summary>
            Gets a unique reference to the item in the solution.
            This is designed as a replacement to Id and provides a human readable reference to the item.
            </summary>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionItemModel.MoveToFolder(Microsoft.VisualStudio.SolutionPersistence.Model.SolutionFolderModel)">
            <summary>
            Moves the item to a new folder.
            </summary>
            <param name="folder">The folder to move to.</param>
        </member>
        <member name="T:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionModel">
            <summary>
            Represents a solution.
            This contains a list of projects and folders and the information
            required to build the solution in different configurations.
            </summary>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionModel.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionModel" /> class.
            Creates a new empty solution.
            </summary>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionModel.#ctor(Microsoft.VisualStudio.SolutionPersistence.Model.SolutionModel)">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionModel" /> class.
            Creates a deep copy of the solution.
            </summary>
            <param name="solutionModel">Instance of the <see cref="T:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionModel" /> to copy.</param>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionModel.StringTable">
            <summary>
            Gets or sets the string table used by the solution model.
            This is used to reduce string duplication.
            </summary>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionModel.SerializerExtension">
            <summary>
            Gets or sets the serializer extension model that can be used to
            get or specify settings specific to a serializer.
            This can be created by a serializer.
            </summary>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionModel.Description">
            <summary>
            Gets or sets a user visible comment describing the solution.
            </summary>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionModel.SolutionItems">
            <summary>
            Gets the list of solution items in the solution.
            This is all of the solution folders and projects in the solution.
            </summary>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionModel.SolutionProjects">
            <summary>
            Gets the list of projects in the solution.
            </summary>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionModel.SolutionFolders">
            <summary>
            Gets the list of solution folders in the solution.
            </summary>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionModel.BuildTypes">
            <summary>
            Gets the list of build types in the solution. (e.g Debug/Release).
            </summary>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionModel.Platforms">
            <summary>
            Gets the list of platforms in the solution. (e.g. x64/Any CPU).
            </summary>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionModel.ProjectTypes">
            <summary>
            Gets or sets the list of project types in the solution.
            </summary>
            <remarks>
            These can be defined to provide information about a project type used in the solution.
            It can be associated with a file extension or a friendly name.
            It contains the project type id and and default configuration mapping rules.
            </remarks>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionModel.VisualStudioProperties">
            <summary>
            Gets a helper to get and set Visual Studio specific properties.
            </summary>
            <returns>A helper to get and set Visual Studio properties.</returns>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionModel.AddFolder(System.String)">
            <summary>
            Gets or adds a solution folder to the solution.
            </summary>
            <param name="path">
            The full path of the solution folder. The path must start and end with a forward slash, with subfolders separated by forward slashes.
            Folders will be created as needed.
            </param>
            <returns>The model for the new folder.</returns>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionModel.AddProject(System.String,System.String,Microsoft.VisualStudio.SolutionPersistence.Model.SolutionFolderModel)">
            <summary>
            Adds a project to the solution.
            </summary>
            <param name="filePath">The relative path to the project.</param>
            <param name="projectTypeName">The project type name of the project.
            This can be null if the project type can be determined from the project's file extension.
            </param>
            <param name="folder">The parent solution folder to add the project to.</param>
            <returns>The model for the new project.</returns>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionModel.RemoveFolder(Microsoft.VisualStudio.SolutionPersistence.Model.SolutionFolderModel)">
            <summary>
            Remove a solution folder from the solution model. This includes any child folders and projects.
            </summary>
            <param name="folder">The folder to remove.</param>
            <returns><see langword="true" /> if the folder was found and removed.</returns>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionModel.RemoveProject(Microsoft.VisualStudio.SolutionPersistence.Model.SolutionProjectModel)">
            <summary>
            Remove a project from the solution model.
            </summary>
            <param name="project">The item to remove.</param>
            <returns><see langword="true" /> if the project was found and removed.</returns>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionModel.AddBuildType(System.String)">
            <summary>
            Adds a build type to the solution.
            </summary>
            <param name="buildType">The build type to add.</param>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionModel.RemoveBuildType(System.String)">
            <summary>
            Removes a build type from the solution.
            </summary>
            <param name="buildType">The build type to remove.</param>
            <returns><see langword="true" /> if the build type was found and removed.</returns>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionModel.AddPlatform(System.String)">
            <summary>
            Adds a platform to the solution.
            </summary>
            <param name="platform">The platform to add.</param>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionModel.RemovePlatform(System.String)">
            <summary>
            Removes a platform from the solution.
            </summary>
            <param name="platform">The platform to remove.</param>
            <returns><see langword="true" /> if the platform was found and removed.</returns>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionModel.FindItemById(System.Guid)">
            <summary>
            Find a solution folder or project by id.
            </summary>
            <param name="id">The id of the item to look for.</param>
            <returns>The item if found.</returns>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionModel.FindFolder(System.String)">
            <summary>
            Find a solution folder by unique path.
            </summary>
            <param name="path">The folder path to look for.</param>
            <returns>The folder if found.</returns>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionModel.FindProject(System.String)">
            <summary>
            Find a solution project by path.
            </summary>
            <param name="path">The project path to look for.</param>
            <returns>The project if found.</returns>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionModel.DistillProjectConfigurations">
            <summary>
            Regenerates all of the project configuration rules. If rules are added
            to project types, or possible redundant rules are added to projects this
            can be called to recalculate the rules.
            </summary>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionModel.TrimVisualStudioProperties">
            <summary>
            Remove any unneccessary VS properties from the model.
            This removes project and solution guid ids plus any properties removed by <see cref="M:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionModel.RemoveObsoleteProperties" />.
            </summary>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionModel.RemoveObsoleteProperties">
            <summary>
            Remove any obsolete VS properties from the model.
            This removes minimum version older than Dev17, shared project properties, and
            removes any CPS project types ids that were accidentally used in .sln files.
            </summary>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionModel.CreateFolder(System.String)">
            <summary>
            Always adds a solution folder to the solution.
            </summary>
            <param name="name">The name of the new solution folder.</param>
            <returns>The model for the new folder.</returns>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionModel.SuspendProjectValidation">
            <summary>
            Suspends project validation while adding multiple projects without
            solution folder information.
            This must be called in a using block to properly resume validation.
            </summary>
            <returns>Use to scope suspension, call <see cref="M:System.IDisposable.Dispose" /> to reenable validation.</returns>
        </member>
        <member name="T:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionProjectModel">
            <summary>
            Represents a project in the solution model.
            </summary>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionProjectModel.#ctor(Microsoft.VisualStudio.SolutionPersistence.Model.SolutionModel,Microsoft.VisualStudio.SolutionPersistence.Model.SolutionProjectModel)">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionProjectModel" /> class.
            Copy constructor.
            </summary>
            <param name="solutionModel">The new solution model parent.</param>
            <param name="projectModel">The project model to copy.</param>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionProjectModel.TypeId">
            <inheritdoc />
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionProjectModel.Type">
            <summary>
            Gets or sets the project type.
            This can be empty if the project file extension is known.
            This can be a type name of a defined project type.
            This can be a project type id (Guid).
            </summary>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionProjectModel.FilePath">
            <summary>
            Gets or sets the path to the project file.
            </summary>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionProjectModel.Extension">
            <summary>
            Gets the file extension of the project file.
            </summary>
            <remarks>
            Some project types, like web site projects, do not have a file extension.
            </remarks>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionProjectModel.DisplayName">
            <summary>
            Gets or sets the display name of the project.
            </summary>
            <remarks>
            This will be ignored if the project path is a file name.
            </remarks>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionProjectModel.ActualDisplayName">
            <inheritdoc />
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionProjectModel.Dependencies">
            <summary>
            Gets the list of the dependencies of this project.
            </summary>
            <remarks>
            Project to project dependencies are normally stored in the project file itself,
            this is used for solution level dependencies.
            </remarks>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionProjectModel.ProjectConfigurationRules">
            <summary>
            Gets or sets a list of configuration rules for this project.
            These rules can be simplified to essential rules by calling <see cref="M:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionModel.DistillProjectConfigurations" />.
            </summary>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionProjectModel.ItemRef">
            <inheritdoc />
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionProjectModel.GetProjectConfiguration(System.String,System.String)">
            <summary>
            Gets the project configuration for the given solution configuration.
            </summary>
            <param name="solutionBuildType">The solution build type. (e.g. Debug).</param>
            <param name="solutionPlatform">The solution platform. (e.g. x64).</param>
            <returns>
            The project configuration for the given solution configuration.
            BuildType and Platform will be null if the configuration information is missing.
            </returns>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionProjectModel.AddDependency(Microsoft.VisualStudio.SolutionPersistence.Model.SolutionProjectModel)">
            <summary>
            Adds a dependency to this project.
            </summary>
            <param name="dependency">The dependency to add.</param>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionProjectModel.RemoveDependency(Microsoft.VisualStudio.SolutionPersistence.Model.SolutionProjectModel)">
            <summary>
            Removes a dependency from this project.
            </summary>
            <param name="dependency">The dependency to remove.</param>
            <returns><see langword="true" /> if the dependency was found and removed.</returns>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionProjectModel.AddProjectConfigurationRule(Microsoft.VisualStudio.SolutionPersistence.Model.ConfigurationRule)">
            <summary>
            Adds a configuration rule to this project.
            </summary>
            <param name="rule">The rule to add.</param>
        </member>
        <member name="T:Microsoft.VisualStudio.SolutionPersistence.Model.PropertiesScope">
            <summary>
            Used by Visual Studio's extensibility to determine when to notify the extensibility extensions for a property bag.
            </summary>
        </member>
        <member name="F:Microsoft.VisualStudio.SolutionPersistence.Model.PropertiesScope.PreLoad">
            <summary>
            In Visual Studio the extensibility extensions for these properties are loaded before the solution/project is loaded.
            </summary>
        </member>
        <member name="F:Microsoft.VisualStudio.SolutionPersistence.Model.PropertiesScope.PostLoad">
            <summary>
            In Visual Studio the extensibility extensions for these properties are loaded after the solution/project is loaded.
            </summary>
        </member>
        <member name="T:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionPropertyBag">
            <summary>
            Represents a dictionary of property names and values that are associated
            with a solution, project, or solution folder.
            </summary>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionPropertyBag.#ctor(System.String,Microsoft.VisualStudio.SolutionPersistence.Model.PropertiesScope)">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionPropertyBag" /> class.
            </summary>
            <param name="id">The property bag id.</param>
            <param name="scope">The scope to create a new property bag with.</param>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionPropertyBag.Id">
            <summary>
            Gets the unique name of the property bag.
            </summary>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionPropertyBag.Scope">
            <summary>
            Gets the scope of the property bag.
            </summary>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionPropertyBag.Count">
            <inheritdoc />
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionPropertyBag.PropertyNames">
            <summary>
            Gets a list of property names in the order they were declared.
            </summary>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionPropertyBag.Keys">
            <inheritdoc />
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionPropertyBag.Values">
            <inheritdoc />
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionPropertyBag.Item(System.String)">
            <inheritdoc />
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionPropertyBag.TryGetValue(System.String,System.String@)">
            <inheritdoc />
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionPropertyBag.ContainsKey(System.String)">
            <inheritdoc />
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionPropertyBag.GetEnumerator">
            <inheritdoc />
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionPropertyBag.System#Collections#IEnumerable#GetEnumerator">
            <inheritdoc />
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionPropertyBag.Add(System.String,System.String)">
            <summary>
            Adds a property to the property bag.
            </summary>
            <param name="name">The property name.</param>
            <param name="value">The property value.</param>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionPropertyBag.AddRange(System.Collections.Generic.IReadOnlyCollection{System.Collections.Generic.KeyValuePair{System.String,System.String}})">
            <summary>
            Adds multiple properties to the property bag.
            </summary>
            <param name="properties">The properties to add.</param>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionPropertyBag.Remove(System.String)">
            <summary>
            Removes a property.
            </summary>
            <param name="name">The name of the property to remove.</param>
            <returns><see langword="true" /> if the property was found and removed.</returns>
        </member>
        <member name="T:Microsoft.VisualStudio.SolutionPersistence.Model.StringTable">
            <summary>
            Table of strings that can be used to remove duplicate string allocations.
            This is helpful in the solution model as several types of strings are repeated.
            </summary>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Model.StringTable.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.SolutionPersistence.Model.StringTable" /> class.
            Creates an empty string table.
            </summary>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Model.StringTable.GetString(System.ReadOnlySpan{System.Char})">
            <summary>
            Attempts to get a string from the table.
            If not found the string is added to the table.
            </summary>
            <param name="str">The string to search for.</param>
            <returns>The string to use in the model.</returns>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Model.StringTable.GetString(System.String)">
            <summary>
            Attempts to get a string from the table.
            If not found the string is added to the table.
            </summary>
            <param name="str">The string to search for.</param>
            <returns>The string to use in the model.</returns>
        </member>
        <member name="T:Microsoft.VisualStudio.SolutionPersistence.Model.VisualStudioProperties">
            <summary>
            A helper to get and set Visual Studio specific properties in the solution model.
            </summary>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Model.VisualStudioProperties.#ctor(Microsoft.VisualStudio.SolutionPersistence.Model.SolutionModel)">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.SolutionPersistence.Model.VisualStudioProperties" /> struct.
            </summary>
            <param name="solution">The solution model.</param>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Model.VisualStudioProperties.OpenWith">
            <summary>
            Gets or sets extra info for VS to open the solution with a specific installed version.
            (e.g. # Visual Studio Version 17 in SLN file).
            </summary>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Model.VisualStudioProperties.HideSolutionNode">
            <summary>
            Gets or sets the solution file property that is used to determine if the solution should be shown
            in Visual Studio's solution explorer.
            </summary>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Model.VisualStudioProperties.MinimumVersion">
            <summary>
            Gets or sets the minimum version of Visual Studio required to open this solution.
            </summary>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Model.VisualStudioProperties.Version">
            <summary>
            Gets or sets the version of Visual Studio that was used to save this solution.
            </summary>
            <remarks>
            This value is only for reference and does not impact any behavior.
            </remarks>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Model.VisualStudioProperties.SolutionId">
            <summary>
            Gets or sets an id for the solution.
            </summary>
        </member>
        <member name="T:Microsoft.VisualStudio.SolutionPersistence.ISolutionSerializer">
            <summary>
            Represents a solution serializer.
            </summary>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.ISolutionSerializer.Name">
            <summary>
            Gets the name of the serializer.
            </summary>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.ISolutionSerializer.CreateModelExtension">
            <summary>
            Creates a default model extension for the serializer.
            This is added to the model to provide additional information from the serializer.
            </summary>
            <returns>A model extension object.</returns>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.ISolutionSerializer.OpenAsync(System.String,System.Threading.CancellationToken)">
            <summary>
            Opens a solution model from a moniker location.
            </summary>
            <param name="moniker">The moniker that represents the solution location.</param>
            <param name="cancellationToken">Cancellation token.</param>
            <returns>The loaded solution model.</returns>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.ISolutionSerializer.SaveAsync(System.String,Microsoft.VisualStudio.SolutionPersistence.Model.SolutionModel,System.Threading.CancellationToken)">
            <summary>
            Saves a solution model to a moniker location.
            </summary>
            <param name="moniker">The moniker that represents the solution location.</param>
            <param name="model">The model to save.</param>
            <param name="cancellationToken">Cancellation token.</param>
            <returns>Task to track the asynchronous call status.</returns>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.ISolutionSerializer.IsSupported(System.String)">
            <summary>
            Checks if a moniker is supported by the serializer.
            This doesn't validate the file contents, just the moniker type.
            For single file serializers, this checks the file extension.
            </summary>
            <param name="moniker">The moniker that represents the solution location.</param>
            <returns>If this serilizer can open the solution.</returns>
        </member>
        <member name="T:Microsoft.VisualStudio.SolutionPersistence.ISolutionSerializer`1">
            <summary>
            Represents a solution serializer.
            </summary>
            <typeparam name="TSettings">The settings type for the serializer.</typeparam>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.ISolutionSerializer`1.CreateModelExtension(`0)">
            <summary>
            Creates a default model extension for the serializer.
            This is added to the model to provide additional information from the serializer.
            </summary>
            <param name="settings">[Optional] Settings that are specific to the serializer.</param>
            <returns>A model extension object.</returns>
        </member>
        <member name="T:Microsoft.VisualStudio.SolutionPersistence.ISolutionSingleFileSerializer`1">
            <summary>
            Represents a solution serializer that is contained in a single file.
            </summary>
            <typeparam name="TSettings">The settings type for the serializer.</typeparam>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.ISolutionSingleFileSerializer`1.DefaultFileExtension">
            <summary>
            Gets the default file extension of the serializer.
            </summary>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.ISolutionSingleFileSerializer`1.OpenAsync(System.IO.Stream,System.Threading.CancellationToken)">
            <summary>
            Opens a solution model from a stream.
            </summary>
            <param name="stream">The stream containing the file.</param>
            <param name="cancellationToken">Cancellation token.</param>
            <returns>The solution model of the file.</returns>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.ISolutionSingleFileSerializer`1.SaveAsync(System.IO.Stream,Microsoft.VisualStudio.SolutionPersistence.Model.SolutionModel,System.Threading.CancellationToken)">
            <summary>
            Saves a solution model to a stream.
            </summary>
            <param name="stream">The stream to save the file..</param>
            <param name="model">The model to save.</param>
            <param name="cancellationToken">Cancellation token.</param>
            <returns>Task to track the asynchronous call status.</returns>
        </member>
        <member name="T:Microsoft.VisualStudio.SolutionPersistence.Serializer.SlnV12.SlnFileV12Serializer">
            <summary>
            Serializer for classic .sln solution files (version 12).
            </summary>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Serializer.SlnV12.SlnFileV12Serializer.Name">
            <inheritdoc />
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Serializer.SlnV12.SlnFileV12Serializer.CreateModelExtension">
            <inheritdoc />
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Serializer.SlnV12.SlnFileV12Serializer.CreateModelExtension(Microsoft.VisualStudio.SolutionPersistence.Serializer.SlnV12.SlnV12SerializerSettings)">
            <inheritdoc />
        </member>
        <member name="T:Microsoft.VisualStudio.SolutionPersistence.Serializer.SlnV12.SlnFileV12Serializer.Reader">
            <summary>
            Reads Format 12.0 solution file and creates <see cref="T:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionModel" /> out of it.
            Solution file line parser.
            Differences with original solution parser:
            1) It builds solution file model, instead of immediately create Solution objects.
            2) It is versy slightly relaxed, to avoid cases it would reject a solution content when it is hard to tell the reason why just looking at content.
               This is mainly some inconsistnet arbitrary "erratas" around the spaces placement. (most of this cases were most likely bugs).
            it is a single scan forward parser (each line should be scanned only once).
            </summary>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Serializer.SlnV12.SlnFileV12Serializer.Reader.#ctor(System.IO.StreamReader,System.String)">
            <summary>
            Reads Format 12.0 solution file and creates <see cref="T:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionModel" /> out of it.
            Solution file line parser.
            Differences with original solution parser:
            1) It builds solution file model, instead of immediately create Solution objects.
            2) It is versy slightly relaxed, to avoid cases it would reject a solution content when it is hard to tell the reason why just looking at content.
               This is mainly some inconsistnet arbitrary "erratas" around the spaces placement. (most of this cases were most likely bugs).
            it is a single scan forward parser (each line should be scanned only once).
            </summary>
        </member>
        <member name="T:Microsoft.VisualStudio.SolutionPersistence.Serializer.SlnV12.SlnFileV12Serializer.SlnFileV12Writer">
            <summary>
            Produces a Format 12.00 solution file on disk from a <see cref="T:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionModel" />.
            </summary>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Serializer.SlnV12.SlnFileV12Serializer.SlnFileV12Writer.#ctor(Microsoft.VisualStudio.SolutionPersistence.Model.SolutionModel,System.IO.TextWriter)">
            <summary>
            Produces a Format 12.00 solution file on disk from a <see cref="T:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionModel" />.
            </summary>
        </member>
        <member name="T:Microsoft.VisualStudio.SolutionPersistence.Serializer.SlnV12.SlnV12Extensions">
            <summary>
            Extension methods for model to make it easier to get SlnV12 properties from model.
            </summary>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Serializer.SlnV12.SlnV12Extensions.AddSlnProperties(Microsoft.VisualStudio.SolutionPersistence.Model.SolutionItemModel,Microsoft.VisualStudio.SolutionPersistence.Model.SolutionPropertyBag)">
            <summary>
            Automatically converts special SlnV12 property bags into their equivalent model concepts.
            This handles property tables that used to represent configurations, solution folder, files and dependencies.
            If the properties are not special types, they will be added as regular property bags.
            </summary>
            <param name="solutionItem">A solution item.</param>
            <param name="properties">The properties to add to the model.</param>
            <returns>True if the properties were successfully added to the model.</returns>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Serializer.SlnV12.SlnV12Extensions.GetSlnProperties(Microsoft.VisualStudio.SolutionPersistence.Model.SolutionItemModel)">
            <summary>
            Creates solution property bags (or "sections") that used to exist in the .sln file.
            These properties were used to store solution files and project dependencies.
            These are now represented symantically in the model.
            This can be useful for code that used to handle parsing .sln files manually.
            </summary>
            <param name="solutionItem">The solution item.</param>
            <returns>All the solution property bags that are used in solution files.</returns>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Serializer.SlnV12.SlnV12Extensions.AddSlnProperties(Microsoft.VisualStudio.SolutionPersistence.Model.SolutionModel,Microsoft.VisualStudio.SolutionPersistence.Model.SolutionPropertyBag)">
            <summary>
            Automatically converts special SlnV12 property bags into their equivalent model concepts.
            This handles property tables that used to represent configurations, solution folder, files and dependencies.
            If the properties are not special types, they will be added as regular property bags.
            </summary>
            <param name="solution">A solution.</param>
            <param name="properties">The properties to add to the model.</param>
            <returns>True if the properties were successfully added to the model.</returns>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Serializer.SlnV12.SlnV12Extensions.GetSlnProperties(Microsoft.VisualStudio.SolutionPersistence.Model.SolutionModel)">
            <summary>
            Creates solution property bags (or "sections") that used to exist in the .sln file.
            These properties were used to store configurations, solution folders, and global properties.
            These are now represented symantically in the model.
            This can be useful for code that used to handle parsing .sln files manually.
            </summary>
            <param name="solution">The solution.</param>
            <returns>All the solution property bags that are used in solution files.</returns>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Serializer.SlnV12.SlnV12Extensions.CreateSlnFolder(Microsoft.VisualStudio.SolutionPersistence.Model.SolutionModel,System.String)">
            <summary>
            Always adds a solution folder to the solution.
            </summary>
            <remarks>
            This method is used for internal purposes. Use <see cref="M:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionModel.AddFolder(System.String)" /> instead.
            </remarks>
            <param name="solution">The solution.</param>
            <param name="name">The name of the new solution folder.</param>
            <returns>The model for the new folder.</returns>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Serializer.SlnV12.SlnV12Extensions.AddSlnProject(Microsoft.VisualStudio.SolutionPersistence.Model.SolutionModel,System.String,System.Guid,Microsoft.VisualStudio.SolutionPersistence.Model.SolutionFolderModel)">
            <summary>
            Adds a project to the solution.
            </summary>
            <remarks>
            This method is used for internal purposes. Use <see cref="M:Microsoft.VisualStudio.SolutionPersistence.Model.SolutionModel.AddProject(System.String,System.String,Microsoft.VisualStudio.SolutionPersistence.Model.SolutionFolderModel)" /> instead.
            </remarks>
            <param name="solution">The solution.</param>
            <param name="filePath">The relative path to the project.</param>
            <param name="projectTypeId">The project type id of the project.</param>
            <param name="folder">The parent solution folder to add the project to.</param>
            <returns>The model for the new project.</returns>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Serializer.SlnV12.SlnV12Extensions.SuspendProjectValidation(Microsoft.VisualStudio.SolutionPersistence.Model.SolutionModel)">
            <summary>
            Suspends project validation while adding multiple projects without
            solution folder information.
            This must be called in a using block to properly resume validation.
            </summary>
            <remarks>
            This method is used for internal purposes.
            </remarks>
            <param name="solution">The solution.</param>
            <returns>Use to scope suspension, call <see cref="M:System.IDisposable.Dispose" /> to reenable validation.</returns>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Serializer.SlnV12.SlnV12Extensions.TryParseVSVersion(System.ReadOnlySpan{System.Char})">
            <summary>
            Parses the version formats allowed in .sln files.
            </summary>
            <returns>Returns null if the version could not be parsed.</returns>
        </member>
        <member name="T:Microsoft.VisualStudio.SolutionPersistence.Serializer.SlnV12.SlnV12ModelExtension">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.SolutionPersistence.Serializer.SlnV12.SlnV12ModelExtension" /> class.
            </summary>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Serializer.SlnV12.SlnV12ModelExtension.#ctor(Microsoft.VisualStudio.SolutionPersistence.ISolutionSerializer,Microsoft.VisualStudio.SolutionPersistence.Serializer.SlnV12.SlnV12SerializerSettings)">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.SolutionPersistence.Serializer.SlnV12.SlnV12ModelExtension" /> class.
            </summary>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Serializer.SlnV12.SlnV12ModelExtension.Serializer">
            <inheritdoc />
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Serializer.SlnV12.SlnV12ModelExtension.Tarnished">
            <inheritdoc />
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Serializer.SlnV12.SlnV12ModelExtension.Settings">
            <inheritdoc />
        </member>
        <member name="T:Microsoft.VisualStudio.SolutionPersistence.Serializer.SlnV12.SlnV12SerializerSettings">
            <summary>
            Custom settings for the <see cref="P:Microsoft.VisualStudio.SolutionPersistence.Serializer.SolutionSerializers.SlnFileV12" /> serializer.
            </summary>
            <remarks>
            Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.SolutionPersistence.Serializer.SlnV12.SlnV12SerializerSettings" /> struct.
            Create a new settings with values from the specified settings.
            </remarks>
            <param name="settings">The settings to copy.</param>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Serializer.SlnV12.SlnV12SerializerSettings.#ctor(Microsoft.VisualStudio.SolutionPersistence.Serializer.SlnV12.SlnV12SerializerSettings)">
            <summary>
            Custom settings for the <see cref="P:Microsoft.VisualStudio.SolutionPersistence.Serializer.SolutionSerializers.SlnFileV12" /> serializer.
            </summary>
            <remarks>
            Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.SolutionPersistence.Serializer.SlnV12.SlnV12SerializerSettings" /> struct.
            Create a new settings with values from the specified settings.
            </remarks>
            <param name="settings">The settings to copy.</param>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Serializer.SlnV12.SlnV12SerializerSettings.Encoding">
            <summary>
            Gets encoding to use when writing the solution file.
            Only ASCII, UTF-8, and UTF-16 are supported.
            </summary>
        </member>
        <member name="T:Microsoft.VisualStudio.SolutionPersistence.Serializer.SolutionSerializers">
            <summary>
            Solution serializers implemented by this package.
            </summary>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Serializer.SolutionSerializers.SlnFileV12">
            <summary>
            Gets the .sln V12 solution serializer.
            </summary>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Serializer.SolutionSerializers.SlnXml">
            <summary>
            Gets the .slnx XML solution serializer.
            </summary>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Serializer.SolutionSerializers.Serializers">
            <summary>
            Gets all the solution serializers implemented by this package.
            </summary>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Serializer.SolutionSerializers.GetSerializerByMoniker(System.String)">
            <summary>
            Finds a serializer that supports opening the given solution moniker.
            </summary>
            <param name="moniker">A moniker to a solution location.</param>
            <returns>A serializer that supports the solution moniker.</returns>
        </member>
        <member name="T:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.LineInfoXmlDocument">
            <summary>
            Ensure XmlElements are created with <see cref="T:System.Xml.IXmlLineInfo" /> so that errors on elements
            can be reported with line and position information.
            </summary>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.LineInfoXmlDocument.LineInfoXmlElement.LineNumber">
            <inheritdoc />
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.LineInfoXmlDocument.LineInfoXmlElement.LinePosition">
            <inheritdoc />
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.LineInfoXmlDocument.LineInfoXmlElement.HasLineInfo">
            <inheritdoc />
        </member>
        <member name="T:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.SlnXmlModelExtension">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.SlnXmlModelExtension" /> class.
            </summary>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.SlnXmlModelExtension.#ctor(Microsoft.VisualStudio.SolutionPersistence.ISolutionSerializer,Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.SlnxSerializerSettings)">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.SlnXmlModelExtension" /> class.
            </summary>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.SlnXmlModelExtension.Serializer">
            <inheritdoc />
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.SlnXmlModelExtension.Settings">
            <inheritdoc />
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.SlnXmlModelExtension.Tarnished">
            <inheritdoc />
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.SlnXmlSerializer.Name">
            <inheritdoc />
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.SlnXmlSerializer.CreateModelExtension">
            <inheritdoc />
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.SlnXmlSerializer.CreateModelExtension(Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.SlnxSerializerSettings)">
            <inheritdoc />
        </member>
        <member name="T:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.SlnxSerializerSettings">
            <summary>
            Allows customization of the behavior of the <see cref="P:Microsoft.VisualStudio.SolutionPersistence.Serializer.SolutionSerializers.SlnXml" /> serializer.
            </summary>
            <remarks>
            Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.SlnxSerializerSettings" /> struct.
            Create a new settings with values from the specified settings.
            </remarks>
            <param name="settings">The settings to copy.</param>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.SlnxSerializerSettings.#ctor(Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.SlnxSerializerSettings)">
            <summary>
            Allows customization of the behavior of the <see cref="P:Microsoft.VisualStudio.SolutionPersistence.Serializer.SolutionSerializers.SlnXml" /> serializer.
            </summary>
            <remarks>
            Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.SlnxSerializerSettings" /> struct.
            Create a new settings with values from the specified settings.
            </remarks>
            <param name="settings">The settings to copy.</param>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.SlnxSerializerSettings.PreserveWhitespace">
            <summary>
            Gets a value indicating whether to keep whitespace when writing the solution file.
            If this is <see langword="true" />, the solution file will be written with the same whitespace as the original file.
            Default is <see langword="true" />.
            </summary>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.SlnxSerializerSettings.IndentChars">
            <summary>
            Gets the characters to use for indentation when writing the solution file.
            Default is two spaces.
            </summary>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.SlnxSerializerSettings.NewLine">
            <summary>
            Gets the characters to use for new lines when writing the solution file.
            Default is the system's new line characters.
            </summary>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.SlnxSerializerSettings.TrimVisualStudioProperties">
            <summary>
            Gets a value indicating whether to remove unneccessary Visual Studio properties from the solution file.
            </summary>
        </member>
        <member name="T:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.IItemRefDecorator">
            <summary>
            Represents an XmlElement decorator that is used in a collection where each
            item has a unique ItemRef attribute.
            </summary>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.IItemRefDecorator.ItemRefAttribute">
            <summary>
            Gets the attribute name that contains the item reference.
            </summary>
            <remarks>
            For some complicated elements, this may be a compound attribute.
            </remarks>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.IItemRefDecorator.ItemRef">
            <summary>
            Gets the unique identifier for the item.
            </summary>
        </member>
        <member name="T:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.ItemConfigurationRulesList">
            <summary>
            Helper to serialize all of the different types of configuration rules.
            This is used to share logic for ProjectTypes and Projects.
            </summary>
        </member>
        <member name="T:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.ItemRefList`1">
            <summary>
            This provides a list of decorators that are referenced by a unique identifier.
            This is used to cache unique items from the Xml DOM so they can be quickly referenced.
            The list is a type of dictionary where the ItemRef is the key.
            </summary>
            <typeparam name="T">The decorator type this represents.</typeparam>
            <param name="ignoreCase">Should this consider keys with different cases the same.</param>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.ItemRefList`1.#ctor(System.Boolean)">
            <summary>
            This provides a list of decorators that are referenced by a unique identifier.
            This is used to cache unique items from the Xml DOM so they can be quickly referenced.
            The list is a type of dictionary where the ItemRef is the key.
            </summary>
            <typeparam name="T">The decorator type this represents.</typeparam>
            <param name="ignoreCase">Should this consider keys with different cases the same.</param>
        </member>
        <member name="T:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.SlnxFile">
            <summary>
            Creates an Xml DOM model for reading and updating the slnx file.
            </summary>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.SlnxFile.ConvertToUserPath(System.String)">
            <summary>
            Converts a model project path to use the slashes the user provides, or default to forward slashes.
            </summary>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.SlnxFile.ApplyModel(Microsoft.VisualStudio.SolutionPersistence.Model.SolutionModel)">
            <summary>
            Update the Xml DOM with changes from the model.
            </summary>
            <returns>
            <see langword="true" /> if any changes were made to the XML.
            </returns>
        </member>
        <member name="T:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.XmlBuildDependency">
            <summary>
            Child to a Project that represents a build dependency.
            </summary>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.XmlBuildDependency.#ctor(Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.SlnxFile,System.Xml.XmlElement)">
            <summary>
            Child to a Project that represents a build dependency.
            </summary>
        </member>
        <member name="T:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.XmlBuildType">
            <summary>
            Child to Configurations that represents a build type (e.g. Debug/Release).
            </summary>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.XmlBuildType.#ctor(Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.SlnxFile,System.Xml.XmlElement)">
            <summary>
            Child to Configurations that represents a build type (e.g. Debug/Release).
            </summary>
        </member>
        <member name="T:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.XmlConfiguration">
            <summary>
            Child of a Project that represents a configuration mapping from a solution configuration to a project configuration.
            </summary>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.XmlConfiguration.#ctor(Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.SlnxFile,System.Xml.XmlElement,Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.Keyword)">
            <summary>
            Child of a Project that represents a configuration mapping from a solution configuration to a project configuration.
            </summary>
        </member>
        <member name="T:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.XmlConfigurations">
            <summary>
            Child to a Solution that represents a collection of configurations.
            </summary>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.XmlConfigurations.#ctor(Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.SlnxFile,System.Xml.XmlElement)">
            <summary>
            Child to a Solution that represents a collection of configurations.
            </summary>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.XmlConfigurations.ChildDecoratorFactory(System.Xml.XmlElement,Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.Keyword)">
            <inheritdoc />
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.XmlConfigurations.OnNewChildDecoratorAdded(Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.XmlDecorator)">
            <inheritdoc />
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.XmlConfigurations.FindNextDecorator``1">
            <inheritdoc />
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.XmlConfigurations.GetProjectTypeTable">
            <summary>
            Create a project type table from the declared project types in this solution.
            </summary>
        </member>
        <member name="T:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.XmlContainer">
            <summary>
            Represents a decorator that wraps an <see cref="T:System.Xml.XmlElement" /> that is a container element.
            These partial methods are used for updating the Xml DOM with changes from the model.
            </summary>
            <summary>
            Represents a decorator that wraps an <see cref="T:System.Xml.XmlElement" /> that is a container element.
            </summary>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.XmlContainer.ApplyModelItemsToXml``2(System.Collections.Generic.List{System.ValueTuple{System.String,``0}},Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.ItemRefList{``1}@,Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.Keyword,System.Func{``1,``0,System.Boolean})">
            <summary>
            Attempt to encapsulate the logic of updating the Xml DOM to match the model.
            Applies model items to the XML by updating existing elements, adding new elements, and removing elements that are no longer in the model.
            </summary>
            <typeparam name="TModelItem">The model item in the collection.</typeparam>
            <typeparam name="TDecorator">The decorator representing the model item.</typeparam>
            <param name="modelItems">The model items to apply, paired with their ItemRef.</param>
            <param name="decoratorItems">The list of existing decorator items in the XML.</param>
            <param name="decoratorElementName">The element name for the decorator, can be dynamic by using getDecoratorElementName.</param>
            <param name="applyModelToXml">Applies the model item changes to the decorator.</param>
            <returns><see langword="true" /> if the XML was changed.</returns>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.XmlContainer.CreateAndAddChild(Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.Keyword,System.String,Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.XmlDecorator)">
            <summary>
            Creates a new child element and wraps it with a new decorator.
            The new decorator is initialized and requested to add it to the cache.
            </summary>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.XmlContainer.#ctor(Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.SlnxFile,System.Xml.XmlElement,Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.Keyword)">
            <summary>
            Represents a decorator that wraps an <see cref="T:System.Xml.XmlElement" /> that is a container element.
            </summary>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.XmlContainer.ChildDecoratorFactory(System.Xml.XmlElement,Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.Keyword)">
            <summary>
            Just creates a child decorator for the given element, or null
            if it is not an expected child for the current item.
            Implementor should just create the decorator, do not initialize it or add it to the cache.
            </summary>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.XmlContainer.OnNewChildDecoratorAdded(Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.XmlDecorator)">
            <summary>
            Called on any newly added child decorator.
            </summary>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.XmlContainer.FindNextDecorator``1">
            <summary>
            Attempts to find the next decorator after the given type.
            Used to insert new decorators in the correct order.
            </summary>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.XmlContainer.UpdateFromXml">
            <inheritdoc />
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.XmlContainer.CreateChildDecorator(System.Xml.XmlElement,System.String,System.Boolean)">
            <summary>
            Wraps the given element with a new decorator and adds it to the cache.
            If this is a new element, pass itemRef and validateItemRef to <see langword="true" />.
            </summary>
        </member>
        <member name="T:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.XmlContainerWithProperties">
            <summary>
            Represents a decorator that wraps an <see cref="T:System.Xml.XmlElement" /> that is a container element with properties.
            </summary>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.XmlContainerWithProperties.#ctor(Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.SlnxFile,System.Xml.XmlElement,Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.Keyword)">
            <summary>
            Represents a decorator that wraps an <see cref="T:System.Xml.XmlElement" /> that is a container element with properties.
            </summary>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.XmlContainerWithProperties.ChildDecoratorFactory(System.Xml.XmlElement,Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.Keyword)">
            <inheritdoc />
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.XmlContainerWithProperties.OnNewChildDecoratorAdded(Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.XmlDecorator)">
            <inheritdoc />
        </member>
        <member name="T:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.XmlDecorator">
            <summary>
            Wraps an <see cref="P:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.XmlDecorator.XmlElement" /> to provide semantic helpers for the Slnx model."/&gt;
            These methods are used to update the Xml DOM with changes from the model.
            </summary>
            <summary>
            Wraps an <see cref="P:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.XmlDecorator.XmlElement" /> to provide semantic helpers for the Slnx model."/&gt;
            The XmlDecorators are created and attached 1:1 to semantic elements of the XmlDocument.
            They contain helper methods that can turn the xml document into a solution model object.
            They also contain helper methods that can update the Xml DOM with changes from the model.
            </summary>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.XmlDecorator.ItemRef">
            <summary>
            Gets or sets the item reference attribute value from the underlying XmlElement.
            </summary>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.XmlDecorator.XmlElement">
            <summary>
            Gets the XML element that this decorator wraps.
            </summary>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.XmlDecorator.ElementName">
            <summary>
            Gets the name of the XML element that this decorator wraps.
            </summary>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.XmlDecorator.IsSingleton">
            <summary>
            Gets a value indicating whether indicates whether this element is supposed to only appear once in the parent element.
            </summary>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.XmlDecorator.RawItemRef">
            <summary>
            Gets or sets allows more complex elements to override the default behavior of the ItemRef property.
            </summary>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.XmlDecorator.UpdateFromXml">
            <summary>
            Called on all decorator elements after they have been created
            to update any cached items that are derived from the XML.
            </summary>
        </member>
        <member name="T:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.XmlFile">
            <summary>
            Child of a Folder that represents a file in a solution folder.
            </summary>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.XmlFile.#ctor(Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.SlnxFile,System.Xml.XmlElement)">
            <summary>
            Child of a Folder that represents a file in a solution folder.
            </summary>
        </member>
        <member name="T:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.XmlFolder">
            <summary>
            Child of a Solution that represents a solution folder.
            </summary>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.XmlFolder.#ctor(Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.SlnxFile,Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.XmlSolution,System.Xml.XmlElement)">
            <summary>
            Child of a Solution that represents a solution folder.
            </summary>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.XmlFolder.ChildDecoratorFactory(System.Xml.XmlElement,Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.Keyword)">
            <inheritdoc />
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.XmlFolder.OnNewChildDecoratorAdded(Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.XmlDecorator)">
            <inheritdoc />
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.XmlFolder.FindNextDecorator``1">
            <inheritdoc />
        </member>
        <member name="T:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.XmlPlatform">
            <summary>
            Child to Configurations that represents a platform (e.g. x86/x64).
            </summary>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.XmlPlatform.#ctor(Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.SlnxFile,System.Xml.XmlElement)">
            <summary>
            Child to Configurations that represents a platform (e.g. x86/x64).
            </summary>
        </member>
        <member name="T:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.XmlProject">
            <summary>
            Child of a Solution or Folder that represents a project in the solution.
            </summary>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.XmlProject.#ctor(Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.SlnxFile,Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.XmlFolder,System.Xml.XmlElement)">
            <summary>
            Child of a Solution or Folder that represents a project in the solution.
            </summary>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.XmlProject.ChildDecoratorFactory(System.Xml.XmlElement,Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.Keyword)">
            <inheritdoc />
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.XmlProject.OnNewChildDecoratorAdded(Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.XmlDecorator)">
            <inheritdoc />
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.XmlProject.FindNextDecorator``1">
            <inheritdoc />
        </member>
        <member name="T:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.XmlProjectType">
            <summary>
            Child of a Solution that represents a project type not implicitly know about.
            Allows the file to specify a friendly name or associate and extension with a project type guid.
            </summary>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.XmlProjectType.#ctor(Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.SlnxFile,System.Xml.XmlElement)">
            <summary>
            Child of a Solution that represents a project type not implicitly know about.
            Allows the file to specify a friendly name or associate and extension with a project type guid.
            </summary>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.XmlProjectType.TypeId">
            <inheritdoc cref="P:Microsoft.VisualStudio.SolutionPersistence.Model.ProjectType.ProjectTypeId" />
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.XmlProjectType.Name">
            <inheritdoc cref="P:Microsoft.VisualStudio.SolutionPersistence.Model.ProjectType.Name" />
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.XmlProjectType.Extension">
            <inheritdoc cref="P:Microsoft.VisualStudio.SolutionPersistence.Model.ProjectType.Extension" />
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.XmlProjectType.BasedOn">
            <inheritdoc cref="P:Microsoft.VisualStudio.SolutionPersistence.Model.ProjectType.BasedOn" />
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.XmlProjectType.IsBuildable">
            <summary>
            Gets or sets a value indicating whether the project type is buildable.
            </summary>
            <remarks>
            Default is <see langword="true" />.
            When <see langword="false" /> automatically sets configuration rules to never build.
            </remarks>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.XmlProjectType.SupportsPlatform">
            <summary>
            Gets or sets a value indicating whether the project type supports platform configurations.
            </summary>
            <remarks>
            Default is <see langword="true" />.
            When <see langword="false" /> automatically adds configuration rule to remove platform mappings.
            This setting is ignored if <see cref="P:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.XmlProjectType.IsBuildable" /> is <see langword="false" />.
            </remarks>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.XmlProjectType.RawItemRef">
            <summary>
            Gets or sets although every project type should have a TypeId, there may be multiple project types with the same TypeId.
            So use the Name and TypeId to uniquely identify a project type.
            </summary>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.XmlProjectType.ChildDecoratorFactory(System.Xml.XmlElement,Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.Keyword)">
            <inheritdoc />
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.XmlProjectType.OnNewChildDecoratorAdded(Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.XmlDecorator)">
            <inheritdoc />
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.XmlProjectType.FindNextDecorator``1">
            <inheritdoc />
        </member>
        <member name="T:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.XmlProperties">
            <summary>
            Represents a collection of properties. Can be a child of a Solution, Project or Folder.
            </summary>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.XmlProperties.#ctor(Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.SlnxFile,System.Xml.XmlElement)">
            <summary>
            Represents a collection of properties. Can be a child of a Solution, Project or Folder.
            </summary>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.XmlProperties.ChildDecoratorFactory(System.Xml.XmlElement,Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.Keyword)">
            <inheritdoc />
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.XmlProperties.OnNewChildDecoratorAdded(Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.XmlDecorator)">
            <inheritdoc />
        </member>
        <member name="T:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.XmlProperty">
            <summary>
            Child of a Properties node that represents a property name/value pair.
            </summary>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.XmlProperty.#ctor(Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.SlnxFile,System.Xml.XmlElement)">
            <summary>
            Child of a Properties node that represents a property name/value pair.
            </summary>
        </member>
        <member name="T:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.XmlSolution">
            <summary>
            Represents the root Solution XML element in the slnx file.
            These methods are used to update the Xml DOM with changes from the model.
            </summary>
            <summary>
            Represents the root Solution XML element in the slnx file.
            </summary>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.XmlSolution.#ctor(Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.SlnxFile,System.Xml.XmlElement)">
            <summary>
            Represents the root Solution XML element in the slnx file.
            </summary>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.XmlSolution.ChildDecoratorFactory(System.Xml.XmlElement,Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.Keyword)">
            <inheritdoc />
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.XmlSolution.OnNewChildDecoratorAdded(Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.XmlDecorator)">
            <inheritdoc />
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.XmlSolution.FindNextDecorator``1">
            <inheritdoc />
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlDecorators.XmlSolution.GetProjectTypeTable">
            <summary>
            Create a project type table from the declared project types in this solution.
            </summary>
        </member>
        <member name="T:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlElementAttributes">
            <summary>
            Provides a way to enumerate over xml attributes.
            </summary>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlElementAttributes.#ctor(System.Xml.XmlAttributeCollection)">
            <summary>
            Provides a way to enumerate over xml attributes.
            </summary>
        </member>
        <member name="T:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlElementSubElements">
            <summary>
            Provides a way to enumerate over xml child elements.
            </summary>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Serializer.Xml.XmlElementSubElements.#ctor(System.Xml.XmlNode,System.String)">
            <summary>
            Provides a way to enumerate over xml child elements.
            </summary>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Argument.ThrowIfNull(System.Object,System.String)">
            <summary>Throws an <see cref="T:System.ArgumentNullException" /> if <paramref name="argument" /> is null.</summary>
            <param name="argument">The reference type argument to validate as non-null.</param>
            <param name="paramName">The name of the parameter with which <paramref name="argument" /> corresponds.</param>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Argument.ThrowIfNullOrEmpty(System.String,System.String)">
            <summary>Throws an <see cref="T:System.ArgumentNullException" /> if <paramref name="argument" /> is null or empty.</summary>
            <param name="argument">The reference type argument to validate as non-null or empty.</param>
            <param name="paramName">The name of the parameter with which <paramref name="argument" /> corresponds.</param>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.CollectionExtensions.ToList``2(System.Collections.Generic.IReadOnlyCollection{``0},System.Func{``0,``1})">
            <summary>
            Creates an array from a <see cref="T:System.Collections.Generic.IReadOnlyCollection`1" /> with a selector to transform the items.
            </summary>
            <typeparam name="TSource">The item type of the input collection.</typeparam>
            <typeparam name="TResult">The item type of the new array.</typeparam>
            <param name="collection">The input collection.</param>
            <param name="selector">A way to convert TSource to TResult.</param>
            <returns>An array of the new items.</returns>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.CollectionExtensions.WhereToList``3(System.Collections.Generic.IReadOnlyCollection{``0},System.Func{``0,``2,System.Boolean},System.Func{``0,``2,``1},``2)">
            <summary>
            Creates an array from a <see cref="T:System.Collections.Generic.IReadOnlyCollection`1" /> with a selector to transform the items.
            </summary>
            <typeparam name="TSource">The item type of the input collection.</typeparam>
            <typeparam name="TResult">The item type of the new array.</typeparam>
            <typeparam name="TState">The type of the state to pass to the predicate and selector.</typeparam>
            <param name="collection">The input collection.</param>
            <param name="predicate">A way to filter the items.</param>
            <param name="selector">A way to convert TSource to TResult.</param>
            <param name="state">The state to pass to the predicate and selector.</param>
            <returns>An array of the new items.</returns>
        </member>
        <member name="T:Microsoft.VisualStudio.SolutionPersistence.Utilities.DefaultIdGenerator">
            <summary>
            Helper for turning unique string identifiers into guid identifiers.
            </summary>
        </member>
        <member name="T:Microsoft.VisualStudio.SolutionPersistence.Utilities.Lictionary`2">
            <summary>
            Provides some dictionary like functionality with a list of key value pairs.
            Used for small collections where the overhead of a dictionary is too high.
            </summary>
            <typeparam name="TKey">Key type.</typeparam>
            <typeparam name="TValue">Value type.</typeparam>
        </member>
        <member name="T:Microsoft.VisualStudio.SolutionPersistence.Utilities.ListBuilderStruct`1">
            <summary>
            Provides a list builder that can be used to build a list of items without allocating
            on the heap if the list is small.
            </summary>
            <typeparam name="T">The type of elements in the list.</typeparam>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Utilities.PathExtensions.ConvertBackslashToModel(System.String)">
            <summary>
            Converts a serialized path that uses backslashes to a model path that uses the platform's directory separator.
            This is used by the .sln serializer.
            </summary>
        </member>
        <member name="T:Microsoft.VisualStudio.SolutionPersistence.Utilities.Internal.SpanExtensions">
            <summary>
            Extension methods for <see cref="T:System.ReadOnlySpan`1" />.
            </summary>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Utilities.Internal.SpanExtensions.Split(System.ReadOnlySpan{System.Char},System.Char,System.StringSplitOptions)">
            <summary>
            Breaks the provided <paramref name="span" /> into sections based on the provided <paramref name="separator" />.
            </summary>
            <param name="span">The input span.</param>
            <param name="separator">The delimiter to use.</param>
            <param name="splitOptions"><see cref="T:System.StringSplitOptions" /> enum indicating how split should function.</param>
            <returns>A <see cref="T:Microsoft.VisualStudio.SolutionPersistence.Utilities.Internal.SpanExtensions.CharSpanSplitEnumerator" /> that can be enumerated to evaluate the segments.</returns>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Utilities.Internal.SpanExtensions.Split(System.ReadOnlySpan{System.Char},System.Char,System.Int32,System.StringSplitOptions)">
            <summary>
            Breaks the provided <paramref name="span" /> into sections based on the provided <paramref name="separator" />.
            </summary>
            <param name="span">The input span.</param>
            <param name="separator">The delimiter to use.</param>
            <param name="count">The maximum number of elements to return.</param>
            <param name="splitOptions"><see cref="T:System.StringSplitOptions" /> enum indicating how split should function.</param>
            <returns>A <see cref="T:Microsoft.VisualStudio.SolutionPersistence.Utilities.Internal.SpanExtensions.CharSpanSplitEnumerator" /> that can be enumerated to evaluate the segments.</returns>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Utilities.Internal.SpanExtensions.Split(System.ReadOnlySpan{System.Char},System.ReadOnlySpan{System.Char},System.StringSplitOptions)">
            <summary>
            Breaks the provided <paramref name="span" /> into sections based on the provided <paramref name="separator" />.
            </summary>
            <param name="span">The input span.</param>
            <param name="separator">The separator to use.</param>
            <param name="splitOptions"><see cref="T:System.StringSplitOptions" /> enum indicating how split should function.</param>
            <returns>A <see cref="T:Microsoft.VisualStudio.SolutionPersistence.Utilities.Internal.SpanExtensions.CharSpanSplitEnumerator" /> that can be enumerated to evaluate the segments.</returns>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Utilities.Internal.SpanExtensions.Split(System.ReadOnlySpan{System.Char},System.ReadOnlySpan{System.Char},System.Int32,System.StringSplitOptions)">
            <summary>
            Breaks the provided <paramref name="span" /> into sections based on the provided <paramref name="separator" />.
            </summary>
            <param name="span">The input span.</param>
            <param name="separator">The separator to use.</param>
            <param name="count">The maximum number of elements to return.</param>
            <param name="splitOptions"><see cref="T:System.StringSplitOptions" /> enum indicating how split should function.</param>
            <returns>A <see cref="T:Microsoft.VisualStudio.SolutionPersistence.Utilities.Internal.SpanExtensions.CharSpanSplitEnumerator" /> that can be enumerated to evaluate the segments.</returns>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Utilities.Internal.SpanExtensions.Split(System.ReadOnlySpan{System.Char},System.String,System.StringSplitOptions)">
            <summary>
            Breaks the provided <paramref name="span" /> into sections based on the provided <paramref name="separator" />.
            </summary>
            <param name="span">The input span.</param>
            <param name="separator">The separator to use.</param>
            <param name="splitOptions"><see cref="T:System.StringSplitOptions" /> enum indicating how split should function.</param>
            <returns>A <see cref="T:Microsoft.VisualStudio.SolutionPersistence.Utilities.Internal.SpanExtensions.CharSpanSplitEnumerator" /> that can be enumerated to evaluate the segments.</returns>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Utilities.Internal.SpanExtensions.Split(System.ReadOnlySpan{System.Char},System.String,System.Int32,System.StringSplitOptions)">
            <summary>
            Breaks the provided <paramref name="span" /> into sections based on the provided <paramref name="separator" />.
            </summary>
            <param name="span">The input span.</param>
            <param name="separator">The separator to use.</param>
            <param name="count">The maximum number of elements to return.</param>
            <param name="splitOptions"><see cref="T:System.StringSplitOptions" /> enum indicating how split should function.</param>
            <returns>A <see cref="T:Microsoft.VisualStudio.SolutionPersistence.Utilities.Internal.SpanExtensions.CharSpanSplitEnumerator" /> that can be enumerated to evaluate the segments.</returns>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Utilities.Internal.SpanExtensions.Split(System.ReadOnlySpan{System.Char},System.ReadOnlySpan{System.String},System.StringSplitOptions)">
            <summary>
            Breaks the provided <paramref name="span" /> into sections based on the provided <paramref name="separator" />.
            </summary>
            <param name="span">The input span.</param>
            <param name="separator">The separator to use.</param>
            <param name="splitOptions"><see cref="T:System.StringSplitOptions" /> enum indicating how split should function.</param>
            <returns>A <see cref="T:Microsoft.VisualStudio.SolutionPersistence.Utilities.Internal.SpanExtensions.CharSpanSplitEnumerator" /> that can be enumerated to evaluate the segments.</returns>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Utilities.Internal.SpanExtensions.Split(System.ReadOnlySpan{System.Char},System.String[],System.Int32,System.StringSplitOptions)">
            <summary>
            Breaks the provided <paramref name="span" /> into sections based on the provided <paramref name="separator" />.
            </summary>
            <param name="span">The input span.</param>
            <param name="separator">The separator to use.</param>
            <param name="count">The maximum number of elements to return.</param>
            <param name="splitOptions"><see cref="T:System.StringSplitOptions" /> enum indicating how split should function.</param>
            <returns>A <see cref="T:Microsoft.VisualStudio.SolutionPersistence.Utilities.Internal.SpanExtensions.CharSpanSplitEnumerator" /> that can be enumerated to evaluate the segments.</returns>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Utilities.Internal.SpanExtensions.IndexOfFirstWhitespaceCharacter(System.ReadOnlySpan{System.Char})">
            <summary>
            Finds the index of the first whitespace character in <paramref name="span" />.
            </summary>
            <param name="span">The <see cref="T:System.ReadOnlySpan`1" />.</param>
            <returns>The zero-based index of the first whitespace character or -1.</returns>
        </member>
        <member name="T:Microsoft.VisualStudio.SolutionPersistence.Utilities.Internal.SpanExtensions.CharSpanSplitEnumerator">
            <summary>
            A struct enumerator for a split span.
            </summary>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Utilities.Internal.SpanExtensions.CharSpanSplitEnumerator.#ctor(System.ReadOnlySpan{System.Char},System.Char,System.Int32,System.StringSplitOptions)">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.SolutionPersistence.Utilities.Internal.SpanExtensions.CharSpanSplitEnumerator" /> struct.
            </summary>
            <param name="span">The input span.</param>
            <param name="separator">The separator to use.</param>
            <param name="count">The maximum number of elements to return.</param>
            <param name="splitOptions"><see cref="T:System.StringSplitOptions" /> enum indicating how split should function.</param>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Utilities.Internal.SpanExtensions.CharSpanSplitEnumerator.#ctor(System.ReadOnlySpan{System.Char},System.ReadOnlySpan{System.Char},System.Int32,System.StringSplitOptions)">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.SolutionPersistence.Utilities.Internal.SpanExtensions.CharSpanSplitEnumerator" /> struct.
            </summary>
            <param name="span">The input span.</param>
            <param name="separator">The separator to use.</param>
            <param name="count">The maximum number of elements to return.</param>
            <param name="splitOptions"><see cref="T:System.StringSplitOptions" /> enum indicating how split should function.</param>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Utilities.Internal.SpanExtensions.CharSpanSplitEnumerator.Current">
            <summary>
            Gets the current item.
            </summary>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Utilities.Internal.SpanExtensions.CharSpanSplitEnumerator.GetEnumerator">
            <summary>
            Gets the Enumerator.
            </summary>
            <returns><see cref="T:Microsoft.VisualStudio.SolutionPersistence.Utilities.Internal.SpanExtensions.CharSpanSplitEnumerator" />.</returns>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Utilities.Internal.SpanExtensions.CharSpanSplitEnumerator.MoveNext">
            <summary>
            Advances to the next item.
            </summary>
            <returns><see langword="bool" /> indicating if there was another item.</returns>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Utilities.Internal.SpanExtensions.CharSpanSplitEnumerator.Reset">
            <summary>
            Resets the <see cref="T:Microsoft.VisualStudio.SolutionPersistence.Utilities.Internal.SpanExtensions.CharSpanSplitEnumerator" /> to its initial state.
            </summary>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Utilities.Internal.SpanExtensions.CharSpanSplitEnumerator.ToArray">
            <summary>
            Converts a the current <see cref="T:Microsoft.VisualStudio.SolutionPersistence.Utilities.Internal.SpanExtensions.CharSpanSplitEnumerator" /> to an array of <see cref="T:System.String" />.
            This method doesn't modify the current <see cref="T:Microsoft.VisualStudio.SolutionPersistence.Utilities.Internal.SpanExtensions.CharSpanSplitEnumerator" /> and starts at the beginning.
            </summary>
            <returns>The array of <see cref="T:System.String" />.</returns>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Utilities.Internal.SpanExtensions.CharSpanSplitEnumerator.ToList">
            <summary>
            Converts a the current <see cref="T:Microsoft.VisualStudio.SolutionPersistence.Utilities.Internal.SpanExtensions.CharSpanSplitEnumerator" /> to a <see cref="T:System.Collections.Generic.List`1" /> of <see cref="T:System.String" />.
            This method doesn't modify the current <see cref="T:Microsoft.VisualStudio.SolutionPersistence.Utilities.Internal.SpanExtensions.CharSpanSplitEnumerator" /> and starts at the beginning.
            </summary>
            <returns>A <see cref="T:System.Collections.Generic.List`1" /> of <see cref="T:System.String" />.</returns>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Utilities.Internal.SpanExtensions.CharSpanSplitEnumerator.Count">
            <summary>
            Gets the count of elements returned by the current <see cref="T:Microsoft.VisualStudio.SolutionPersistence.Utilities.Internal.SpanExtensions.CharSpanSplitEnumerator" />.
            This method doesn't modify the current <see cref="T:Microsoft.VisualStudio.SolutionPersistence.Utilities.Internal.SpanExtensions.CharSpanSplitEnumerator" /> and starts at the beginning.
            </summary>
            <returns>A count of the results.</returns>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Utilities.Internal.SpanExtensions.CharSpanSplitEnumerator.First">
            <summary>
            Gets the first element returned by the current <see cref="T:Microsoft.VisualStudio.SolutionPersistence.Utilities.Internal.SpanExtensions.CharSpanSplitEnumerator" />.
            This method doesn't modify the current <see cref="T:Microsoft.VisualStudio.SolutionPersistence.Utilities.Internal.SpanExtensions.CharSpanSplitEnumerator" /> and starts at the beginning.
            </summary>
            <returns>The first result or throws if there are none.</returns>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Utilities.Internal.SpanExtensions.CharSpanSplitEnumerator.Last">
            <summary>
            Gets the last element returned by the current <see cref="T:Microsoft.VisualStudio.SolutionPersistence.Utilities.Internal.SpanExtensions.CharSpanSplitEnumerator" />.
            This method doesn't modify the current <see cref="T:Microsoft.VisualStudio.SolutionPersistence.Utilities.Internal.SpanExtensions.CharSpanSplitEnumerator" /> and starts at the beginning.
            </summary>
            <returns>The last result or throws if there are none.</returns>
        </member>
        <member name="T:Microsoft.VisualStudio.SolutionPersistence.Utilities.Internal.SpanExtensions.StringSplitEnumerator">
            <summary>
            A struct enumerator for a split span.
            </summary>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Utilities.Internal.SpanExtensions.StringSplitEnumerator.#ctor(System.ReadOnlySpan{System.Char},System.String,System.Int32,System.StringSplitOptions)">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.SolutionPersistence.Utilities.Internal.SpanExtensions.StringSplitEnumerator" /> struct.
            </summary>
            <param name="span">The input span.</param>
            <param name="separator">The separator to use.</param>
            <param name="count">The maximum number of elements to return.</param>
            <param name="splitOptions"><see cref="T:System.StringSplitOptions" /> enum indicating how split should function.</param>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Utilities.Internal.SpanExtensions.StringSplitEnumerator.#ctor(System.ReadOnlySpan{System.Char},System.ReadOnlySpan{System.String},System.Int32,System.StringSplitOptions)">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.SolutionPersistence.Utilities.Internal.SpanExtensions.StringSplitEnumerator" /> struct.
            </summary>
            <param name="span">The input span.</param>
            <param name="separator">The separator to use.</param>
            <param name="count">The maximum number of elements to return.</param>
            <param name="splitOptions"><see cref="T:System.StringSplitOptions" /> enum indicating how split should function.</param>
        </member>
        <member name="P:Microsoft.VisualStudio.SolutionPersistence.Utilities.Internal.SpanExtensions.StringSplitEnumerator.Current">
            <summary>
            Gets the current item.
            </summary>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Utilities.Internal.SpanExtensions.StringSplitEnumerator.GetEnumerator">
            <summary>
            Gets the Enumerator.
            </summary>
            <returns><see cref="T:Microsoft.VisualStudio.SolutionPersistence.Utilities.Internal.SpanExtensions.StringSplitEnumerator" />.</returns>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Utilities.Internal.SpanExtensions.StringSplitEnumerator.MoveNext">
            <summary>
            Advances to the next item.
            </summary>
            <returns><see langword="bool" /> indicating if there was another item.</returns>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Utilities.Internal.SpanExtensions.StringSplitEnumerator.Count">
            <summary>
            Gets the count of elements returned by the current <see cref="T:Microsoft.VisualStudio.SolutionPersistence.Utilities.Internal.SpanExtensions.StringSplitEnumerator" />.
            This method doesn't modify the current <see cref="T:Microsoft.VisualStudio.SolutionPersistence.Utilities.Internal.SpanExtensions.StringSplitEnumerator" /> and starts at the beginning.
            </summary>
            <returns>A count of the results.</returns>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Utilities.Internal.SpanExtensions.StringSplitEnumerator.First">
            <summary>
            Gets the first element returned by the current <see cref="T:Microsoft.VisualStudio.SolutionPersistence.Utilities.Internal.SpanExtensions.StringSplitEnumerator" />.
            This method doesn't modify the current <see cref="T:Microsoft.VisualStudio.SolutionPersistence.Utilities.Internal.SpanExtensions.StringSplitEnumerator" /> and starts at the beginning.
            </summary>
            <returns>The first result or throws if there are none.</returns>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Utilities.Internal.SpanExtensions.StringSplitEnumerator.Last">
            <summary>
            Gets the last element returned by the current <see cref="T:Microsoft.VisualStudio.SolutionPersistence.Utilities.Internal.SpanExtensions.StringSplitEnumerator" />.
            This method doesn't modify the current <see cref="T:Microsoft.VisualStudio.SolutionPersistence.Utilities.Internal.SpanExtensions.StringSplitEnumerator" /> and starts at the beginning.
            </summary>
            <returns>The last result or throws if there are none.</returns>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Utilities.Internal.SpanExtensions.StringSplitEnumerator.ToArray">
            <summary>
            Converts the current <see cref="T:Microsoft.VisualStudio.SolutionPersistence.Utilities.Internal.SpanExtensions.StringSplitEnumerator" /> to an array of <see cref="T:System.String" />.
            This method doesn't modify the current <see cref="T:Microsoft.VisualStudio.SolutionPersistence.Utilities.Internal.SpanExtensions.StringSplitEnumerator" /> and starts at the beginning.
            </summary>
            <returns>The array of <see cref="T:System.String" />.</returns>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Utilities.Internal.SpanExtensions.StringSplitEnumerator.ToList">
            <summary>
            Converts the current <see cref="T:Microsoft.VisualStudio.SolutionPersistence.Utilities.Internal.SpanExtensions.StringSplitEnumerator" /> to a <see cref="T:System.Collections.Generic.List`1" /> of <see cref="T:System.String" />
            This method doesn't modify the current <see cref="T:Microsoft.VisualStudio.SolutionPersistence.Utilities.Internal.SpanExtensions.StringSplitEnumerator" /> and starts at the beginning.
            </summary>
            <returns>A <see cref="T:System.Collections.Generic.List`1" /> of <see cref="T:System.String" />.</returns>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.Utilities.Internal.SpanExtensions.StringSplitEnumerator.Reset">
            <summary>
            Resets the <see cref="T:Microsoft.VisualStudio.SolutionPersistence.Utilities.Internal.SpanExtensions.StringSplitEnumerator" /> to its initial state.
            </summary>
        </member>
        <member name="T:Microsoft.VisualStudio.SolutionPersistence.Utilities.StringTokenizer">
            <summary>
            Similar to original parser StringTokenizer class. With slight additions.
            </summary>
        </member>
        <member name="T:Microsoft.VisualStudio.SolutionPersistence.ListStructEnumerable`1">
            <summary>
            Creates a enumerable struct wrapper around a list that might be null.
            </summary>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.ListStructEnumerable`1.#ctor(System.Collections.Generic.List{`0})">
            <summary>
            Creates a enumerable struct wrapper around a list that might be null.
            </summary>
        </member>
        <member name="M:Microsoft.VisualStudio.SolutionPersistence.StringExtensions.IsNullOrEmpty(System.String)">
            <inheritdoc cref="M:System.String.IsNullOrEmpty(System.String)" />
        </member>
    </members>
<Signature xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /><SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256" /><Reference URI=""><Transforms><Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /><Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /></Transforms><DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /><DigestValue>Jf27tVuxOXl4hmV+kzw9ikndeOQ5ZD3b5RmzmaBKtr8=</DigestValue></Reference></SignedInfo><SignatureValue>ije9Lmv0XhBpuKXc86jiHiBJRrSsh1woXhoEMmmGWR2fKPiu45lk0yp2CA7x5DtVcfm+p42JodhaYlkp5tKIFfgB+VB9AUmYE05umXYkJA6sMl30c4mljvruoJXLHbdSqZVQOPiMNw38zEgxm/pBjNxOhLz6cgtTqyJXFY5gcGf4wGPWUvVoNM+/KIwO7GDfyDYB5ue3qhmn4l/Pq13rtfd6plEjBaTHB+LepbvaXWdel7yk5JNzXEJREpG7tj9/WlRkaNl0e/tk5vLSzd4uMkU33HbNy84AFkQ5wYxUwkUM/+ioXe51MaNDCfdCA8C4A0pfgkUpzhelLj+xEtEzjw==</SignatureValue><KeyInfo><KeyValue><RSAKeyValue><Modulus>tCg32mOdDA6rBBnZSMwxwXegqiDEUFlvQH9Sxww07hY3w7L52tJxLg0mCZjcszQddI6W4NJYb5E9QM319kyyE0l8EvA/pgcxgljDP8E6XIlgVf6W40ms286Cr0azaA1f7vaJjjNhGsMqOSSSXTZDNnfKs5ENG0bkXeB2q5hrp0qLsm/TWO3oFjeROZVHN2tgETswHR3WKTm6QjnXgGNj+V6rSZJO/WkTqc8NesAo3Up/KjMwgc0e67x9llZLxRyyMWUBE9coT2+pUZqYAUDZ84nR1djnMY3PMDYiA84Gw5JpceeED38O0cEIvKdX8uG8oQa047+evMfDRr94MG9EWw==</Modulus><Exponent>AQAB</Exponent></RSAKeyValue></KeyValue><X509Data><X509Certificate>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</X509Certificate><X509Certificate>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</X509Certificate><X509Certificate>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</X509Certificate></X509Data></KeyInfo><Object Id="ts-countersig"><X509Data><X509Certificate>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</X509Certificate><X509Certificate>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</X509Certificate></X509Data><CounterSignature ts-format="cms-timestamp-message" xmlns="http://schemas.microsoft.com/xmldsig/timestamp/2003">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</CounterSignature></Object></Signature></doc>
