<?xml version="1.0"?>
<doc>
    <assembly>
        <name>Microsoft.Extensions.Validation</name>
    </assembly>
    <members>
        <member name="T:Microsoft.Extensions.Validation.IValidatableInfo">
            <summary>
            Represents an interface for validating a value.
            </summary>
        </member>
        <member name="M:Microsoft.Extensions.Validation.IValidatableInfo.ValidateAsync(System.Object,Microsoft.Extensions.Validation.ValidateContext,System.Threading.CancellationToken)">
            <summary>
            Validates the specified <paramref name="value"/>.
            </summary>
            <param name="value">The value to validate.</param>
            <param name="context">The validation context.</param>
            <param name="cancellationToken">A cancellation token to support cancellation of the validation.</param>
            <returns>A <see cref="T:System.Threading.Tasks.Task"/> representing the asynchronous operation.</returns>
        </member>
        <member name="T:Microsoft.Extensions.Validation.IValidatableInfoResolver">
            <summary>
            Provides an interface for resolving the validation information associated
            with a given <seealso cref="T:System.Type"/> or <seealso cref="T:System.Reflection.ParameterInfo"/>.
            </summary>
        </member>
        <member name="M:Microsoft.Extensions.Validation.IValidatableInfoResolver.TryGetValidatableTypeInfo(System.Type,Microsoft.Extensions.Validation.IValidatableInfo@)">
            <summary>
            Gets validation information for the specified type.
            </summary>
            <param name="type">The type to get validation information for.</param>
            <param name="validatableInfo">
            The output parameter that will contain the validatable information if found.
            </param>
            <returns><see langword="true" /> if the validatable type information was found; otherwise, false.</returns>
        </member>
        <member name="M:Microsoft.Extensions.Validation.IValidatableInfoResolver.TryGetValidatableParameterInfo(System.Reflection.ParameterInfo,Microsoft.Extensions.Validation.IValidatableInfo@)">
            <summary>
            Gets validation information for the specified parameter.
            </summary>
            <param name="parameterInfo">The parameter to get validation information for.</param>
            <param name="validatableInfo">The output parameter that will contain the validatable information if found.</param>
            <returns><see langword="true" /> if the validatable parameter information was found; otherwise, false.</returns>
        </member>
        <member name="T:Microsoft.Extensions.Validation.SkipValidationAttribute">
            <summary>
            Indicates that a property, parameter, or a type should not be validated.
            When applied to a property, validation is skipped for that property.
            When applied to a parameter, validation is skipped for that parameter.
            When applied to a type, validation is skipped for all properties and parameters of that type.
            This includes skipping validation of nested properties for complex types.
            </summary>
        </member>
        <member name="M:Microsoft.Extensions.Validation.TypeExtensions.IsEnumerable(System.Type)">
            <summary>
            Determines whether the specified type is an enumerable type.
            </summary>
            <param name="type">The type to check.</param>
            <returns><see langword="true"/> if the type is enumerable; otherwise, <see langword="false"/>.</returns>
        </member>
        <member name="M:Microsoft.Extensions.Validation.TypeExtensions.IsNullable(System.Type)">
            <summary>
            Determines whether the specified type is a nullable type.
            </summary>
            <param name="type">The type to check.</param>
            <returns><see langword="true"/> if the type is nullable; otherwise, <see langword="false"/>.</returns>
        </member>
        <member name="M:Microsoft.Extensions.Validation.TypeExtensions.TryGetRequiredAttribute(System.ComponentModel.DataAnnotations.ValidationAttribute[],System.ComponentModel.DataAnnotations.RequiredAttribute@)">
            <summary>
            Tries to get the <see cref="T:System.ComponentModel.DataAnnotations.RequiredAttribute"/> from the specified array of validation attributes.
            </summary>
            <param name="attributes">The array of <see cref="T:System.ComponentModel.DataAnnotations.ValidationAttribute"/> to search.</param>
            <param name="requiredAttribute">The found <see cref="T:System.ComponentModel.DataAnnotations.RequiredAttribute"/> if available, otherwise null.</param>
            <returns><see langword="true"/> if a <see cref="T:System.ComponentModel.DataAnnotations.RequiredAttribute"/> is found; otherwise, <see langword="false"/>.</returns>
        </member>
        <member name="M:Microsoft.Extensions.Validation.TypeExtensions.GetAllImplementedTypes(System.Type)">
            <summary>
            Gets all types that the specified type implements or inherits from.
            </summary>
            <param name="type">The type to analyze.</param>
            <returns>A collection containing all implemented interfaces and all base types of the given type.</returns>
        </member>
        <member name="M:Microsoft.Extensions.Validation.TypeExtensions.ImplementsInterface(System.Type,System.Type)">
            <summary>
            Determines whether the specified type implements the given interface.
            </summary>
            <param name="type">The type to check.</param>
            <param name="interfaceType">The interface type to check for.</param>
            <returns>True if the type implements the specified interface; otherwise, false.</returns>
        </member>
        <member name="T:Microsoft.Extensions.Validation.ValidatableParameterInfo">
            <summary>
            Contains validation information for a parameter.
            </summary>
        </member>
        <member name="M:Microsoft.Extensions.Validation.ValidatableParameterInfo.#ctor(System.Type,System.String,System.String)">
            <summary>
            Creates a new instance of <see cref="T:Microsoft.Extensions.Validation.ValidatableParameterInfo"/>.
            </summary>
            <param name="parameterType">The <see cref="T:System.Type"/> associated with the parameter.</param>
            <param name="name">The parameter name.</param>
            <param name="displayName">The display name for the parameter.</param>
        </member>
        <member name="P:Microsoft.Extensions.Validation.ValidatableParameterInfo.ParameterType">
            <summary>
            Gets the parameter type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.Validation.ValidatableParameterInfo.Name">
            <summary>
            Gets the parameter name.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.Validation.ValidatableParameterInfo.DisplayName">
            <summary>
            Gets the display name for the parameter.
            </summary>
        </member>
        <member name="M:Microsoft.Extensions.Validation.ValidatableParameterInfo.GetValidationAttributes">
            <summary>
            Gets the validation attributes for this parameter.
            </summary>
            <returns>An array of validation attributes to apply to this parameter.</returns>
        </member>
        <member name="M:Microsoft.Extensions.Validation.ValidatableParameterInfo.ValidateAsync(System.Object,Microsoft.Extensions.Validation.ValidateContext,System.Threading.CancellationToken)">
            <inheritdoc />
            <remarks>
            If the parameter is a collection, each item in the collection will be validated.
            If the parameter is not a collection but has a validatable type, the single value will be validated.
            </remarks>
        </member>
        <member name="T:Microsoft.Extensions.Validation.ValidatablePropertyInfo">
            <summary>
            Contains validation information for a member of a type.
            </summary>
        </member>
        <member name="M:Microsoft.Extensions.Validation.ValidatablePropertyInfo.#ctor(System.Type,System.Type,System.String,System.String)">
            <summary>
            Creates a new instance of <see cref="T:Microsoft.Extensions.Validation.ValidatablePropertyInfo"/>.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.Validation.ValidatablePropertyInfo.DeclaringType">
            <summary>
            Gets the member type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.Validation.ValidatablePropertyInfo.PropertyType">
            <summary>
            Gets the member type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.Validation.ValidatablePropertyInfo.Name">
            <summary>
            Gets the member name.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.Validation.ValidatablePropertyInfo.DisplayName">
            <summary>
            Gets the display name for the member as designated by the <see cref="T:System.ComponentModel.DataAnnotations.DisplayAttribute"/>.
            </summary>
        </member>
        <member name="M:Microsoft.Extensions.Validation.ValidatablePropertyInfo.GetValidationAttributes">
            <summary>
            Gets the validation attributes for this member.
            </summary>
            <returns>An array of validation attributes to apply to this member.</returns>
        </member>
        <member name="M:Microsoft.Extensions.Validation.ValidatablePropertyInfo.ValidateAsync(System.Object,Microsoft.Extensions.Validation.ValidateContext,System.Threading.CancellationToken)">
            <inheritdoc />
        </member>
        <member name="T:Microsoft.Extensions.Validation.ValidatableTypeAttribute">
            <summary>
            Indicates that a type is validatable to support discovery by the
            validations generator.
            </summary>
        </member>
        <member name="T:Microsoft.Extensions.Validation.ValidatableTypeInfo">
            <summary>
            Contains validation information for a type.
            </summary>
        </member>
        <member name="M:Microsoft.Extensions.Validation.ValidatableTypeInfo.#ctor(System.Type,System.Collections.Generic.IReadOnlyList{Microsoft.Extensions.Validation.ValidatablePropertyInfo})">
            <summary>
            Creates a new instance of <see cref="T:Microsoft.Extensions.Validation.ValidatableTypeInfo"/>.
            </summary>
            <param name="type">The type being validated.</param>
            <param name="members">The members that can be validated.</param>
        </member>
        <member name="M:Microsoft.Extensions.Validation.ValidatableTypeInfo.GetValidationAttributes">
            <summary>
            Gets the validation attributes for this member.
            </summary>
            <returns>An array of validation attributes to apply to this member.</returns>
        </member>
        <member name="P:Microsoft.Extensions.Validation.ValidatableTypeInfo.Type">
            <summary>
            The type being validated.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.Validation.ValidatableTypeInfo.Members">
            <summary>
            The members that can be validated.
            </summary>
        </member>
        <member name="M:Microsoft.Extensions.Validation.ValidatableTypeInfo.ValidateAsync(System.Object,Microsoft.Extensions.Validation.ValidateContext,System.Threading.CancellationToken)">
            <inheritdoc />
        </member>
        <member name="T:Microsoft.Extensions.Validation.ValidateContext">
            <summary>
            Represents the context for validating a validatable object.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.Validation.ValidateContext.ValidationContext">
            <summary>
            Gets or sets the validation context used for validating objects that implement <see cref="T:System.ComponentModel.DataAnnotations.IValidatableObject"/> or have <see cref="T:System.ComponentModel.DataAnnotations.ValidationAttribute"/>.
            This context provides access to service provider and other validation metadata.
            </summary>
            <remarks>
            This property should be set by the consumer of the <see cref="T:Microsoft.Extensions.Validation.IValidatableInfo"/>
            interface to provide the necessary context for validation. The object should be initialized
            with the current object being validated, the display name, and the service provider to support
            the complete set of validation scenarios.
            </remarks>
            <example>
            <code>
            var validationContext = new ValidationContext(objectToValidate, serviceProvider, items);
            var validationOptions = serviceProvider.GetService&lt;IOptions&lt;ValidationOptions&gt;&gt;()?.Value;
            var validateContext = new ValidateContext
            {
                ValidationContext = validationContext,
                ValidationOptions = validationOptions
            };
            </code>
            </example>
        </member>
        <member name="P:Microsoft.Extensions.Validation.ValidateContext.CurrentValidationPath">
            <summary>
            Gets or sets the prefix used to identify the current object being validated in a complex object graph.
            This is used to build property paths in validation error messages (e.g., "Customer.Address.Street").
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.Validation.ValidateContext.ValidationOptions">
            <summary>
            Gets or sets the validation options that control validation behavior,
            including validation depth limits and resolver registration.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.Validation.ValidateContext.ValidationErrors">
            <summary>
            Gets or sets the dictionary of validation errors collected during validation.
            Keys are property names or paths, and values are arrays of error messages.
            In the default implementation, this dictionary is initialized when the first error is added.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.Validation.ValidateContext.CurrentDepth">
            <summary>
            Gets or sets the current depth in the validation hierarchy.
            This is used to prevent stack overflows from circular references.
            </summary>
        </member>
        <member name="E:Microsoft.Extensions.Validation.ValidateContext.OnValidationError">
            <summary>
            Optional event raised when a validation error is reported.
            </summary>
        </member>
        <member name="T:Microsoft.Extensions.Validation.ValidationErrorContext">
            <summary>
            Represents the context of a validation error.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.Validation.ValidationErrorContext.Name">
            <summary>
            Gets the name of the property or parameter that caused the validation error.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.Validation.ValidationErrorContext.Path">
            <summary>
            Gets the full path from the root object to the property or parameter that caused the validation error.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.Validation.ValidationErrorContext.Errors">
            <summary>
            Gets the list of error messages associated with the validation error.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.Validation.ValidationErrorContext.Container">
            <summary>
            Gets a reference to the container object of the validated property.
            </summary>
        </member>
        <member name="T:Microsoft.Extensions.Validation.ValidationOptions">
            <summary>
            Provides configuration options for the validation system.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.Validation.ValidationOptions.Resolvers">
            <summary>
            Gets the list of resolvers that provide validation metadata for types and parameters.
            Resolvers are processed in order, with the first resolver providing a non-null result being used.
            </summary>
            <remarks>
            Source-generated resolvers are typically inserted at the beginning of this list
            to ensure they are checked before any runtime-based resolvers.
            </remarks>
        </member>
        <member name="P:Microsoft.Extensions.Validation.ValidationOptions.MaxDepth">
            <summary>
            Gets or sets the maximum depth for validation of nested objects.
            This prevents stack overflows from circular references or extremely deep object graphs.
            Default value is 32.
            </summary>
        </member>
        <member name="M:Microsoft.Extensions.Validation.ValidationOptions.TryGetValidatableTypeInfo(System.Type,Microsoft.Extensions.Validation.IValidatableInfo@)">
            <summary>
            Attempts to get validation information for the specified type.
            </summary>
            <param name="type">The type to get validation information for.</param>
            <param name="validatableTypeInfo">When this method returns, contains the validation information for the specified type,
            if the type was found; otherwise, null.</param>
            <returns>true if validation information was found for the specified type; otherwise, false.</returns>
        </member>
        <member name="M:Microsoft.Extensions.Validation.ValidationOptions.TryGetValidatableParameterInfo(System.Reflection.ParameterInfo,Microsoft.Extensions.Validation.IValidatableInfo@)">
            <summary>
            Attempts to get validation information for the specified parameter.
            </summary>
            <param name="parameterInfo">The parameter to get validation information for.</param>
            <param name="validatableInfo">When this method returns, contains the validation information for the specified parameter,
            if validation information was found; otherwise, null.</param>
            <returns>true if validation information was found for the specified parameter; otherwise, false.</returns>
        </member>
        <member name="T:Microsoft.Extensions.DependencyInjection.ValidationServiceCollectionExtensions">
            <summary>
            Extension methods for adding validation services.
            </summary>
        </member>
        <member name="M:Microsoft.Extensions.DependencyInjection.ValidationServiceCollectionExtensions.AddValidation(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action{Microsoft.Extensions.Validation.ValidationOptions})">
            <summary>
            Adds the validation services to the specified <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection" />.
            </summary>
            <param name="services">The <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection" /> to add the services to.</param>
            <param name="configureOptions">An optional action to configure the <see cref="T:Microsoft.Extensions.Validation.ValidationOptions"/>.</param>
            <returns>The <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection" /> for chaining.</returns>
        </member>
    </members>
</doc>
