From 8d33ba65e41f107ecd3a081b50d9aa4718d9dac6 Mon Sep 17 00:00:00 2001
From: "dotnet-maestro[bot]"
<42748379+dotnet-maestro[bot]@users.noreply.github.com>
Date: Wed, 28 Jun 2023 06:11:36 +0000
Subject: [PATCH] [main] Update dependencies from dotnet/aspnetcore (#4129)
[main] Update dependencies from dotnet/aspnetcore
- Coherency Updates:
- Microsoft.Bcl.TimeProvider: from 8.0.0-preview.6.23314.15 to 8.0.0-preview.7.23325.2 (parent: Microsoft.AspNetCore.App.Runtime.win-x64)
- Microsoft.Extensions.Caching.Abstractions: from 8.0.0-preview.6.23314.15 to 8.0.0-preview.7.23325.2 (parent: Microsoft.AspNetCore.App.Runtime.win-x64)
- Microsoft.Extensions.Caching.Memory: from 8.0.0-preview.6.23314.15 to 8.0.0-preview.7.23325.2 (parent: Microsoft.AspNetCore.App.Runtime.win-x64)
- Microsoft.Extensions.Configuration.Abstractions: from 8.0.0-preview.6.23314.15 to 8.0.0-preview.7.23325.2 (parent: Microsoft.AspNetCore.App.Runtime.win-x64)
- Microsoft.Extensions.Configuration.Binder: from 8.0.0-preview.6.23314.15 to 8.0.0-preview.7.23325.2 (parent: Microsoft.AspNetCore.App.Runtime.win-x64)
- Microsoft.Extensions.Configuration.CommandLine: from 8.0.0-preview.6.23314.15 to 8.0.0-preview.7.23325.2 (parent: Microsoft.AspNetCore.App.Runtime.win-x64)
- Microsoft.Extensions.Configuration.Json: from 8.0.0-preview.6.23314.15 to 8.0.0-preview.7.23325.2 (parent: Microsoft.AspNetCore.App.Runtime.win-x64)
- Microsoft.Extensions.Configuration: from 8.0.0-preview.6.23314.15 to 8.0.0-preview.7.23325.2 (parent: Microsoft.AspNetCore.App.Runtime.win-x64)
- Microsoft.Extensions.DependencyInjection.Abstractions: from 8.0.0-preview.6.23314.15 to 8.0.0-preview.7.23325.2 (parent: Microsoft.AspNetCore.App.Runtime.win-x64)
- Microsoft.Extensions.DependencyInjection: from 8.0.0-preview.6.23314.15 to 8.0.0-preview.7.23325.2 (parent: Microsoft.AspNetCore.App.Runtime.win-x64)
- Microsoft.Extensions.Hosting.Abstractions: from 8.0.0-preview.6.23314.15 to 8.0.0-preview.7.23325.2 (parent: Microsoft.AspNetCore.App.Runtime.win-x64)
- Microsoft.Extensions.Hosting: from 8.0.0-preview.6.23314.15 to 8.0.0-preview.7.23325.2 (parent: Microsoft.AspNetCore.App.Runtime.win-x64)
- Microsoft.Extensions.Http: from 8.0.0-preview.6.23314.15 to 8.0.0-preview.7.23325.2 (parent: Microsoft.AspNetCore.App.Runtime.win-x64)
- Microsoft.Extensions.Logging.Abstractions: from 8.0.0-preview.6.23314.15 to 8.0.0-preview.7.23325.2 (parent: Microsoft.AspNetCore.App.Runtime.win-x64)
- Microsoft.Extensions.Logging.Configuration: from 8.0.0-preview.6.23314.15 to 8.0.0-preview.7.23325.2 (parent: Microsoft.AspNetCore.App.Runtime.win-x64)
- Microsoft.Extensions.Logging.Console: from 8.0.0-preview.6.23314.15 to 8.0.0-preview.7.23325.2 (parent: Microsoft.AspNetCore.App.Runtime.win-x64)
- Microsoft.Extensions.Logging: from 8.0.0-preview.6.23314.15 to 8.0.0-preview.7.23325.2 (parent: Microsoft.AspNetCore.App.Runtime.win-x64)
- Microsoft.Extensions.Options.ConfigurationExtensions: from 8.0.0-preview.6.23314.15 to 8.0.0-preview.7.23325.2 (parent: Microsoft.AspNetCore.App.Runtime.win-x64)
- Microsoft.Extensions.Options.DataAnnotations: from 8.0.0-preview.6.23314.15 to 8.0.0-preview.7.23325.2 (parent: Microsoft.AspNetCore.App.Runtime.win-x64)
- Microsoft.Extensions.Options: from 8.0.0-preview.6.23314.15 to 8.0.0-preview.7.23325.2 (parent: Microsoft.AspNetCore.App.Runtime.win-x64)
- Microsoft.Extensions.Primitives: from 8.0.0-preview.6.23314.15 to 8.0.0-preview.7.23325.2 (parent: Microsoft.AspNetCore.App.Runtime.win-x64)
- System.Collections.Immutable: from 8.0.0-preview.6.23314.15 to 8.0.0-preview.7.23325.2 (parent: Microsoft.AspNetCore.App.Runtime.win-x64)
- System.Configuration.ConfigurationManager: from 8.0.0-preview.6.23314.15 to 8.0.0-preview.7.23325.2 (parent: Microsoft.AspNetCore.App.Runtime.win-x64)
- System.Diagnostics.DiagnosticSource: from 8.0.0-preview.6.23314.15 to 8.0.0-preview.7.23325.2 (parent: Microsoft.AspNetCore.App.Runtime.win-x64)
- System.Diagnostics.PerformanceCounter: from 8.0.0-preview.6.23314.15 to 8.0.0-preview.7.23325.2 (parent: Microsoft.AspNetCore.App.Runtime.win-x64)
- System.IO.Hashing: from 8.0.0-preview.6.23314.15 to 8.0.0-preview.7.23325.2 (parent: Microsoft.AspNetCore.App.Runtime.win-x64)
- System.Net.Http.Json: from 8.0.0-preview.6.23314.15 to 8.0.0-preview.7.23325.2 (parent: Microsoft.AspNetCore.App.Runtime.win-x64)
- System.Security.Cryptography.Pkcs: from 8.0.0-preview.6.23314.15 to 8.0.0-preview.7.23325.2 (parent: Microsoft.AspNetCore.App.Runtime.win-x64)
- System.Security.Cryptography.Xml: from 8.0.0-preview.6.23314.15 to 8.0.0-preview.7.23325.2 (parent: Microsoft.AspNetCore.App.Runtime.win-x64)
- System.Text.Encodings.Web: from 8.0.0-preview.6.23314.15 to 8.0.0-preview.7.23325.2 (parent: Microsoft.AspNetCore.App.Runtime.win-x64)
- System.Text.Json: from 8.0.0-preview.6.23314.15 to 8.0.0-preview.7.23325.2 (parent: Microsoft.AspNetCore.App.Runtime.win-x64)
- System.Runtime.Caching: from 8.0.0-preview.6.23314.15 to 8.0.0-preview.7.23325.2 (parent: Microsoft.AspNetCore.App.Runtime.win-x64)
- Build fixes
* Update local copy of ExperimentalAttribute per https://github.com/dotnet/runtime/pull/85444
* Deprecate this repo's option validator code gen in favor of the runtime'src
- This removes traces of the option code generator in this repo, now
that the code has moved to dotnet/runtime. Unfortunately, the generator
in dotnet/runtime has currently dropped the use of the 'file' visibility
accessor in generated code, which leads to some conflicting type
definitions in this code base due to the use of IntervalsVisibleTo.
This surfaces as build warnings which are safe to ignore, since the
C# compiler ends up binding to the right thing. Fixing these warnings
will require a new drop of the runtime's generator.
* Suppress CS0436
- Bump SDK
- fixup! Build fixes
---
Directory.Build.targets | 20 +-
eng/MSBuild/Generators.props | 4 -
eng/Version.Details.xml | 164 +--
eng/Versions.props | 82 +-
global.json | 4 +-
.../Common/DiagDescriptors.cs | 98 --
.../Common/Emitter.cs | 368 -------
.../Common/Generator.cs | 100 --
.../Common/Model/ValidatedMember.cs | 19 -
.../Common/Model/ValidatedModel.cs | 12 -
.../Common/Model/ValidationAttributeInfo.cs | 12 -
.../Common/Model/ValidatorType.cs | 15 -
.../Common/Parser.cs | 696 -------------
.../Common/Resources.Designer.cs | 297 ------
.../Common/Resources.resx | 198 ----
.../Common/SymbolHolder.cs | 20 -
.../Common/SymbolLoader.cs | 69 --
.../Directory.Build.props | 33 -
...oft.Gen.OptionsValidation.Roslyn3.8.csproj | 28 -
...oft.Gen.OptionsValidation.Roslyn4.0.csproj | 29 -
.../ExperimentalAttribute.cs | 39 +-
...rosoft.AspNetCore.ConnectionTimeout.csproj | 1 -
.../HeaderParsingOptionsValidator.cs | 1 -
.../Microsoft.AspNetCore.HeaderParsing.csproj | 2 -
...RequestLatencyTelemetryOptionsValidator.cs | 1 -
.../Internal/LoggingOptionsValidator.cs | 1 -
.../Logging/LoggingOptions.cs | 4 +-
...oft.AspNetCore.Telemetry.Middleware.csproj | 2 -
.../RequestHeadersEnricherExtensions.cs | 1 +
.../RequestHeadersLogEnricherOptions.cs | 2 +-
...questHeadersLogEnricherOptionsValidator.cs | 1 -
.../Microsoft.AspNetCore.Telemetry.csproj | 1 -
.../Tracing/HttpTracingExtensions.cs | 4 +-
.../Tracing/HttpTracingOptions.cs | 2 +-
.../Internal/HttpTracingOptionsValidator.cs | 1 -
.../ApplicationMetadataValidator.cs | 1 -
...ensions.AmbientMetadata.Application.csproj | 5 -
.../IAsyncLocalContext.cs | 2 +-
...oft.Extensions.Compliance.Redaction.csproj | 1 -
.../FakeRedactorOptionsAutoValidator.cs | 1 -
...osoft.Extensions.Compliance.Testing.csproj | 2 -
...althChecksExtensions.TelemetryPublisher.cs | 4 +-
.../TelemetryHealthCheckPublisherOptions.cs | 2 +-
...cs.HealthChecks.ResourceUtilization.csproj | 1 -
.../ResourceUtilizationHealthCheckOptions.cs | 2 +-
...eUtilizationHealthCheckOptionsValidator.cs | 1 -
.../TcpEndpointHealthCheckOptionsValidator.cs | 1 -
...osoft.Extensions.Diagnostics.Probes.csproj | 2 -
...ourceUtilizationTrackerOptionsValidator.cs | 1 -
...urceUtilizationProviderOptionsValidator.cs | 1 -
.../Linux/LinuxUtilizationExtensions.cs | 1 +
...ions.Diagnostics.ResourceMonitoring.csproj | 2 -
.../ResourceMonitoringOptions.cs | 2 +-
.../WindowsCountersOptionsValidator.cs | 1 -
.../Windows/WindowsCountersOptions.cs | 4 +-
.../Windows/WindowsUtilizationExtensions.cs | 6 +-
.../HostingFakesExtensions.cs | 2 +-
.../AutoClientAttribute.cs | 2 +-
.../AutoClientException.cs | 2 +-
.../AutoClientHttpError.cs | 2 +-
.../AutoClientOptions.cs | 2 +-
.../BodyAttribute.cs | 2 +-
.../BodyContentType.cs | 2 +-
.../HeaderAttribute.cs | 2 +-
.../Methods/DeleteAttribute.cs | 2 +-
.../Methods/GetAttribute.cs | 2 +-
.../Methods/HeadAttribute.cs | 2 +-
.../Methods/OptionsAttribute.cs | 2 +-
.../Methods/PatchAttribute.cs | 2 +-
.../Methods/PostAttribute.cs | 2 +-
.../Methods/PutAttribute.cs | 2 +-
...icrosoft.Extensions.Http.AutoClient.csproj | 5 -
.../QueryAttribute.cs | 2 +-
.../RequestNameAttribute.cs | 2 +-
.../StaticHeaderAttribute.cs | 2 +-
.../FaultInjection/ContextExtensions.cs | 4 +-
.../HttpClientFaultInjectionExtensions.cs | 4 +-
.../Hedging/HedgingEndpointOptions.cs | 4 +-
.../HttpStandardHedgingResilienceOptions.cs | 4 +-
...andardHedgingResilienceOptionsValidator.cs | 1 -
...StandardHedgingHandlerBuilderExtensions.cs | 4 +-
...icrosoft.Extensions.Http.Resilience.csproj | 2 -
...ndardResilienceBuilderBuilderExtensions.cs | 4 +-
.../HttpStandardResilienceOptions.cs | 4 +-
.../HttpStandardResilienceOptionsValidator.cs | 1 -
.../Routing/EndpointGroup.cs | 2 +-
.../OrderedGroupsRoutingOptionsValidator.cs | 1 -
.../WeightedGroupsRoutingOptionsValidator.cs | 1 -
.../Routing/OrderedGroupsRoutingOptions.cs | 2 +-
.../RoutingStrategyBuilderExtensions.cs | 4 +-
.../Routing/WeightedGroupsRoutingOptions.cs | 2 +-
.../Internal/LoggingOptionsValidator.cs | 1 -
.../Logging/LoggingOptions.cs | 2 +-
.../Metering/HttpClientMeteringExtensions.cs | 2 +-
.../Metering/HttpMeteringHandler.cs | 2 +-
.../Metering/HttpRequestResultType.cs | 2 +-
...Microsoft.Extensions.Http.Telemetry.csproj | 2 -
.../Tracing/HttpClientTracingExtensions.cs | 4 +-
.../Tracing/HttpClientTracingOptions.cs | 2 +-
.../Tracing/IHttpClientTraceEnricher.netfx.cs | 2 +-
.../Tracing/IHttpPathRedactor.cs | 2 +-
.../HttpClientTracingOptionsValidator.cs | 1 -
.../DependencyInjectionPoolOptions.cs | 2 +-
.../ObjectPoolServiceCollectionExtensions.cs | 2 +-
...osoft.Extensions.Options.Validation.csproj | 38 -
...crosoft.Extensions.Options.Validation.json | 55 --
.../OptionsValidatorAttribute.cs | 16 -
.../ValidateEnumeratedItemsAttribute.cs | 45 -
.../ValidateObjectMembersAttribute.cs | 43 -
...rosoft.Extensions.Options.Validation.props | 2 -
...soft.Extensions.Options.Validation.targets | 3 -
.../FaultInjectionExtensions.cs | 2 +-
.../FaultInjectionOptionsBuilder.cs | 2 +-
.../FaultInjection/IChaosPolicyFactory.cs | 2 +-
.../Options/ChaosPolicyOptionsGroup.cs | 4 +-
.../Options/CustomResultPolicyOptions.cs | 4 +-
.../FaultPolicyWeightAssignmentsOptions.cs | 2 +-
.../Microsoft.Extensions.Resilience.csproj | 2 -
.../Polly/Internals/PipelineId.cs | 6 +-
.../BulkheadPolicyOptionsValidator.cs | 1 -
.../CircuitBreakerPolicyOptionsValidator.cs | 1 -
.../CircuitBreakerPolicyOptionsValidatorT.cs | 1 -
.../HedgingPolicyOptionsValidator.cs | 1 -
.../HedgingPolicyOptionsValidatorT.cs | 1 -
.../Generated/RetryPolicyOptionsValidator.cs | 1 -
.../Generated/RetryPolicyOptionsValidatorT.cs | 1 -
.../TimeoutPolicyOptionsValidator.cs | 1 -
.../Polly/ResilienceDimensions.cs | 24 +-
.../Internal/OptionsBuilderExtensions.cs | 2 +-
.../ResiliencePipelineBuilderExtensions.cs | 2 +-
...iliencePipelineFactoryOptionsValidatorT.cs | 1 -
.../Http/TelemetryConstants.cs | 4 +-
.../Logging/LogMethodAttribute.cs | 2 +-
.../Metering/MeterT.cs | 4 +-
.../Metering/MeteringExtensions.cs | 2 +-
.../Metering/CollectedMeasurement.cs | 2 +-
.../Metering/MeasurementExtensions.cs | 2 +-
.../Metering/MetricCollector.cs | 4 +-
.../Logging/LoggerProvider.cs | 2 +-
.../Logging/LoggingOptions.cs | 2 +-
.../Logging/LoggingOptionsValidator.cs | 1 -
.../EventCountersCollectorOptions.cs | 2 +-
.../EventCountersCollectorOptionsValidator.cs | 1 -
.../Metering/MeteringOptions.cs | 2 +-
.../Metering/OTelMeteringExtensions.cs | 8 +-
.../Microsoft.Extensions.Telemetry.csproj | 3 +-
.../Telemetry.Internal/IHttpRouteFormatter.cs | 4 +-
.../Telemetry/TelemetryExtensions.cs | 4 +-
.../Internal/SamplingOptionsAutoValidator.cs | 1 -
.../ParentBasedSamplerOptions.cs | 2 +-
.../Tracing.Sampling/SamplingOptions.cs | 2 +-
.../Tracing/TracingEnricherExtensions.cs | 4 +-
.../FakeTimeProvider.cs | 16 +-
.../Hosting.StartupInitialization.csproj | 2 -
.../Internal/StartupInitializationBuilder.cs | 1 -
.../StartupInitializationOptionsValidator.cs | 1 -
.../StartupInitializationExtensions.cs | 1 +
.../HttpClient.SocketHandling.csproj | 2 -
.../SocketsHttpHandlerOptionsValidator.cs | 1 -
.../UsingExperimentalApiAnalyzerTest.cs | 11 +-
.../ApiLifecycle/ApiLifecycleAnalyzerTest.cs | 18 +-
.../Generated/Common/CustomAttrTests.cs | 39 -
.../Generated/Common/EnumerationTests.cs | 93 --
.../Generated/Common/FieldTests.cs | 62 --
.../Generated/Common/FunnyStringsTests.cs | 37 -
.../Generated/Common/GenericsTests.cs | 49 -
.../Common/MultiModelValidatorTests.cs | 49 -
.../Generated/Common/NestedTests.cs | 67 --
.../Generated/Common/NoNamespaceTests.cs | 60 --
.../Common/OptionsValidationTests.cs | 442 ---------
.../Generated/Common/RandomMembersTests.cs | 37 -
.../Generated/Common/RecordTypesTests.cs | 67 --
.../Generated/Common/RepeatedTypesTests.cs | 61 --
.../Generated/Common/SelfValidationTests.cs | 37 -
.../Generated/Common/TestResource.Designer.cs | 72 --
.../Generated/Common/TestResource.resx | 123 ---
.../Generated/Common/Utils.cs | 31 -
.../Generated/Common/ValueTypesTests.cs | 53 -
.../Generated/Directory.Build.props | 33 -
...alidation.Roslyn3.8.Generated.Tests.csproj | 13 -
...alidation.Roslyn4.0.Generated.Tests.csproj | 14 -
.../TestClasses/CustomAttr.cs | 69 --
.../TestClasses/Enumeration.cs | 94 --
.../TestClasses/Fields.cs | 72 --
.../TestClasses/FileScopedNamespace.cs | 22 -
.../TestClasses/FunnyStrings.cs | 23 -
.../TestClasses/Generics.cs | 36 -
.../TestClasses/Models.cs | 252 -----
.../TestClasses/MultiModelValidator.cs | 34 -
.../TestClasses/Nested.cs | 106 --
.../TestClasses/NoNamespace.cs | 46 -
.../TestClasses/RandomMembers.cs | 35 -
.../TestClasses/RecordTypes.cs | 68 --
.../TestClasses/RepeatedTypes.cs | 47 -
.../TestClasses/SelfValidation.cs | 34 -
.../TestClasses/ValueTypes.cs | 46 -
.../Unit/Common/EmitterTests.cs | 58 --
.../Unit/Common/ParserTests.Enumeration.cs | 212 ----
.../Unit/Common/ParserTests.cs | 930 ------------------
.../Unit/Common/SymbolLoaderTests.cs | 80 --
.../Unit/Directory.Build.props | 31 -
...ionsValidation.Roslyn3.8.Unit.Tests.csproj | 5 -
...ionsValidation.Roslyn4.0.Unit.Tests.csproj | 6 -
...Extensions.Options.Validation.Tests.csproj | 22 -
.../ValidateEnumeratedItemsAttributeTests.cs | 20 -
.../ValidateObjectMembersAttributeTest.cs | 20 -
.../Helpers/OptionsValidationModels.cs | 4 +-
.../Options.ValidateOnStart.Tests.csproj | 2 -
208 files changed, 303 insertions(+), 6369 deletions(-)
delete mode 100644 src/Generators/Microsoft.Gen.OptionsValidation/Common/DiagDescriptors.cs
delete mode 100644 src/Generators/Microsoft.Gen.OptionsValidation/Common/Emitter.cs
delete mode 100644 src/Generators/Microsoft.Gen.OptionsValidation/Common/Generator.cs
delete mode 100644 src/Generators/Microsoft.Gen.OptionsValidation/Common/Model/ValidatedMember.cs
delete mode 100644 src/Generators/Microsoft.Gen.OptionsValidation/Common/Model/ValidatedModel.cs
delete mode 100644 src/Generators/Microsoft.Gen.OptionsValidation/Common/Model/ValidationAttributeInfo.cs
delete mode 100644 src/Generators/Microsoft.Gen.OptionsValidation/Common/Model/ValidatorType.cs
delete mode 100644 src/Generators/Microsoft.Gen.OptionsValidation/Common/Parser.cs
delete mode 100644 src/Generators/Microsoft.Gen.OptionsValidation/Common/Resources.Designer.cs
delete mode 100644 src/Generators/Microsoft.Gen.OptionsValidation/Common/Resources.resx
delete mode 100644 src/Generators/Microsoft.Gen.OptionsValidation/Common/SymbolHolder.cs
delete mode 100644 src/Generators/Microsoft.Gen.OptionsValidation/Common/SymbolLoader.cs
delete mode 100644 src/Generators/Microsoft.Gen.OptionsValidation/Directory.Build.props
delete mode 100644 src/Generators/Microsoft.Gen.OptionsValidation/Roslyn3.8/Microsoft.Gen.OptionsValidation.Roslyn3.8.csproj
delete mode 100644 src/Generators/Microsoft.Gen.OptionsValidation/Roslyn4.0/Microsoft.Gen.OptionsValidation.Roslyn4.0.csproj
delete mode 100644 src/Libraries/Microsoft.Extensions.Options.Validation/Microsoft.Extensions.Options.Validation.csproj
delete mode 100644 src/Libraries/Microsoft.Extensions.Options.Validation/Microsoft.Extensions.Options.Validation.json
delete mode 100644 src/Libraries/Microsoft.Extensions.Options.Validation/OptionsValidatorAttribute.cs
delete mode 100644 src/Libraries/Microsoft.Extensions.Options.Validation/ValidateEnumeratedItemsAttribute.cs
delete mode 100644 src/Libraries/Microsoft.Extensions.Options.Validation/ValidateObjectMembersAttribute.cs
delete mode 100644 src/Libraries/Microsoft.Extensions.Options.Validation/buildTransitive/Microsoft.Extensions.Options.Validation.props
delete mode 100644 src/Libraries/Microsoft.Extensions.Options.Validation/buildTransitive/Microsoft.Extensions.Options.Validation.targets
delete mode 100644 test/Generators/Microsoft.Gen.OptionsValidation/Generated/Common/CustomAttrTests.cs
delete mode 100644 test/Generators/Microsoft.Gen.OptionsValidation/Generated/Common/EnumerationTests.cs
delete mode 100644 test/Generators/Microsoft.Gen.OptionsValidation/Generated/Common/FieldTests.cs
delete mode 100644 test/Generators/Microsoft.Gen.OptionsValidation/Generated/Common/FunnyStringsTests.cs
delete mode 100644 test/Generators/Microsoft.Gen.OptionsValidation/Generated/Common/GenericsTests.cs
delete mode 100644 test/Generators/Microsoft.Gen.OptionsValidation/Generated/Common/MultiModelValidatorTests.cs
delete mode 100644 test/Generators/Microsoft.Gen.OptionsValidation/Generated/Common/NestedTests.cs
delete mode 100644 test/Generators/Microsoft.Gen.OptionsValidation/Generated/Common/NoNamespaceTests.cs
delete mode 100644 test/Generators/Microsoft.Gen.OptionsValidation/Generated/Common/OptionsValidationTests.cs
delete mode 100644 test/Generators/Microsoft.Gen.OptionsValidation/Generated/Common/RandomMembersTests.cs
delete mode 100644 test/Generators/Microsoft.Gen.OptionsValidation/Generated/Common/RecordTypesTests.cs
delete mode 100644 test/Generators/Microsoft.Gen.OptionsValidation/Generated/Common/RepeatedTypesTests.cs
delete mode 100644 test/Generators/Microsoft.Gen.OptionsValidation/Generated/Common/SelfValidationTests.cs
delete mode 100644 test/Generators/Microsoft.Gen.OptionsValidation/Generated/Common/TestResource.Designer.cs
delete mode 100644 test/Generators/Microsoft.Gen.OptionsValidation/Generated/Common/TestResource.resx
delete mode 100644 test/Generators/Microsoft.Gen.OptionsValidation/Generated/Common/Utils.cs
delete mode 100644 test/Generators/Microsoft.Gen.OptionsValidation/Generated/Common/ValueTypesTests.cs
delete mode 100644 test/Generators/Microsoft.Gen.OptionsValidation/Generated/Directory.Build.props
delete mode 100644 test/Generators/Microsoft.Gen.OptionsValidation/Generated/Roslyn3.8/Microsoft.Gen.OptionsValidation.Roslyn3.8.Generated.Tests.csproj
delete mode 100644 test/Generators/Microsoft.Gen.OptionsValidation/Generated/Roslyn4.0/Microsoft.Gen.OptionsValidation.Roslyn4.0.Generated.Tests.csproj
delete mode 100644 test/Generators/Microsoft.Gen.OptionsValidation/TestClasses/CustomAttr.cs
delete mode 100644 test/Generators/Microsoft.Gen.OptionsValidation/TestClasses/Enumeration.cs
delete mode 100644 test/Generators/Microsoft.Gen.OptionsValidation/TestClasses/Fields.cs
delete mode 100644 test/Generators/Microsoft.Gen.OptionsValidation/TestClasses/FileScopedNamespace.cs
delete mode 100644 test/Generators/Microsoft.Gen.OptionsValidation/TestClasses/FunnyStrings.cs
delete mode 100644 test/Generators/Microsoft.Gen.OptionsValidation/TestClasses/Generics.cs
delete mode 100644 test/Generators/Microsoft.Gen.OptionsValidation/TestClasses/Models.cs
delete mode 100644 test/Generators/Microsoft.Gen.OptionsValidation/TestClasses/MultiModelValidator.cs
delete mode 100644 test/Generators/Microsoft.Gen.OptionsValidation/TestClasses/Nested.cs
delete mode 100644 test/Generators/Microsoft.Gen.OptionsValidation/TestClasses/NoNamespace.cs
delete mode 100644 test/Generators/Microsoft.Gen.OptionsValidation/TestClasses/RandomMembers.cs
delete mode 100644 test/Generators/Microsoft.Gen.OptionsValidation/TestClasses/RecordTypes.cs
delete mode 100644 test/Generators/Microsoft.Gen.OptionsValidation/TestClasses/RepeatedTypes.cs
delete mode 100644 test/Generators/Microsoft.Gen.OptionsValidation/TestClasses/SelfValidation.cs
delete mode 100644 test/Generators/Microsoft.Gen.OptionsValidation/TestClasses/ValueTypes.cs
delete mode 100644 test/Generators/Microsoft.Gen.OptionsValidation/Unit/Common/EmitterTests.cs
delete mode 100644 test/Generators/Microsoft.Gen.OptionsValidation/Unit/Common/ParserTests.Enumeration.cs
delete mode 100644 test/Generators/Microsoft.Gen.OptionsValidation/Unit/Common/ParserTests.cs
delete mode 100644 test/Generators/Microsoft.Gen.OptionsValidation/Unit/Common/SymbolLoaderTests.cs
delete mode 100644 test/Generators/Microsoft.Gen.OptionsValidation/Unit/Directory.Build.props
delete mode 100644 test/Generators/Microsoft.Gen.OptionsValidation/Unit/Roslyn3.8/Microsoft.Gen.OptionsValidation.Roslyn3.8.Unit.Tests.csproj
delete mode 100644 test/Generators/Microsoft.Gen.OptionsValidation/Unit/Roslyn4.0/Microsoft.Gen.OptionsValidation.Roslyn4.0.Unit.Tests.csproj
delete mode 100644 test/Libraries/Microsoft.Extensions.Options.Validation.Tests/Microsoft.Extensions.Options.Validation.Tests.csproj
delete mode 100644 test/Libraries/Microsoft.Extensions.Options.Validation.Tests/ValidateEnumeratedItemsAttributeTests.cs
delete mode 100644 test/Libraries/Microsoft.Extensions.Options.Validation.Tests/ValidateObjectMembersAttributeTest.cs
diff --git a/Directory.Build.targets b/Directory.Build.targets
index c96d110b2dd..ff17457a836 100644
--- a/Directory.Build.targets
+++ b/Directory.Build.targets
@@ -16,7 +16,17 @@
false
-
+
+ $(NoWarn);CS0436
+
+
$(NoWarn);IL2026;IL2087;IL2067;IL2075;IL2091;IL2072;IL2090;CA1825;IL2070;IL2098;IL2057
@@ -35,14 +45,14 @@
$(NoWarn);CA1062
-
+
$(NoWarn);ASP0019
-
+
$(NoWarn);RS1024
@@ -66,7 +76,9 @@
-
+
+ <_Parameter1>TBD
+
diff --git a/eng/MSBuild/Generators.props b/eng/MSBuild/Generators.props
index 580c36c5592..52f47521cfe 100644
--- a/eng/MSBuild/Generators.props
+++ b/eng/MSBuild/Generators.props
@@ -7,10 +7,6 @@
-
-
-
-
diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index f7e546395fc..cd7146dc124 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -1,168 +1,168 @@
-
+
https://github.com/dotnet/runtime
- 171a525880315369e48c6adf6c181f98357352a5
+ eaa9717d90115cea43b4cdd7a2a49e6d3c3d780e
-
+
https://github.com/dotnet/runtime
- 171a525880315369e48c6adf6c181f98357352a5
+ eaa9717d90115cea43b4cdd7a2a49e6d3c3d780e
-
+
https://github.com/dotnet/runtime
- 171a525880315369e48c6adf6c181f98357352a5
+ eaa9717d90115cea43b4cdd7a2a49e6d3c3d780e
-
+
https://github.com/dotnet/runtime
- 171a525880315369e48c6adf6c181f98357352a5
+ eaa9717d90115cea43b4cdd7a2a49e6d3c3d780e
-
+
https://github.com/dotnet/runtime
- 171a525880315369e48c6adf6c181f98357352a5
+ eaa9717d90115cea43b4cdd7a2a49e6d3c3d780e
-
+
https://github.com/dotnet/runtime
- 171a525880315369e48c6adf6c181f98357352a5
+ eaa9717d90115cea43b4cdd7a2a49e6d3c3d780e
-
+
https://github.com/dotnet/runtime
- 171a525880315369e48c6adf6c181f98357352a5
+ eaa9717d90115cea43b4cdd7a2a49e6d3c3d780e
-
+
https://github.com/dotnet/runtime
- 171a525880315369e48c6adf6c181f98357352a5
+ eaa9717d90115cea43b4cdd7a2a49e6d3c3d780e
-
+
https://github.com/dotnet/runtime
- 171a525880315369e48c6adf6c181f98357352a5
+ eaa9717d90115cea43b4cdd7a2a49e6d3c3d780e
-
+
https://github.com/dotnet/runtime
- 171a525880315369e48c6adf6c181f98357352a5
+ eaa9717d90115cea43b4cdd7a2a49e6d3c3d780e
-
+
https://github.com/dotnet/runtime
- 171a525880315369e48c6adf6c181f98357352a5
+ eaa9717d90115cea43b4cdd7a2a49e6d3c3d780e
-
+
https://github.com/dotnet/runtime
- 171a525880315369e48c6adf6c181f98357352a5
+ eaa9717d90115cea43b4cdd7a2a49e6d3c3d780e
-
+
https://github.com/dotnet/runtime
- 171a525880315369e48c6adf6c181f98357352a5
+ eaa9717d90115cea43b4cdd7a2a49e6d3c3d780e
-
+
https://github.com/dotnet/runtime
- 171a525880315369e48c6adf6c181f98357352a5
+ eaa9717d90115cea43b4cdd7a2a49e6d3c3d780e
-
+
https://github.com/dotnet/runtime
- 171a525880315369e48c6adf6c181f98357352a5
+ eaa9717d90115cea43b4cdd7a2a49e6d3c3d780e
-
+
https://github.com/dotnet/runtime
- 171a525880315369e48c6adf6c181f98357352a5
+ eaa9717d90115cea43b4cdd7a2a49e6d3c3d780e
-
+
https://github.com/dotnet/runtime
- 171a525880315369e48c6adf6c181f98357352a5
+ eaa9717d90115cea43b4cdd7a2a49e6d3c3d780e
-
+
https://github.com/dotnet/runtime
- 171a525880315369e48c6adf6c181f98357352a5
+ eaa9717d90115cea43b4cdd7a2a49e6d3c3d780e
-
+
https://github.com/dotnet/runtime
- 171a525880315369e48c6adf6c181f98357352a5
+ eaa9717d90115cea43b4cdd7a2a49e6d3c3d780e
-
+
https://github.com/dotnet/runtime
- 171a525880315369e48c6adf6c181f98357352a5
+ eaa9717d90115cea43b4cdd7a2a49e6d3c3d780e
-
+
https://github.com/dotnet/runtime
- 171a525880315369e48c6adf6c181f98357352a5
+ eaa9717d90115cea43b4cdd7a2a49e6d3c3d780e
-
+
https://github.com/dotnet/runtime
- 171a525880315369e48c6adf6c181f98357352a5
+ eaa9717d90115cea43b4cdd7a2a49e6d3c3d780e
-
+
https://github.com/dotnet/runtime
- 171a525880315369e48c6adf6c181f98357352a5
+ eaa9717d90115cea43b4cdd7a2a49e6d3c3d780e
-
+
https://github.com/dotnet/runtime
- 171a525880315369e48c6adf6c181f98357352a5
+ eaa9717d90115cea43b4cdd7a2a49e6d3c3d780e
-
+
https://github.com/dotnet/runtime
- 171a525880315369e48c6adf6c181f98357352a5
+ eaa9717d90115cea43b4cdd7a2a49e6d3c3d780e
-
+
https://github.com/dotnet/runtime
- 171a525880315369e48c6adf6c181f98357352a5
+ eaa9717d90115cea43b4cdd7a2a49e6d3c3d780e
-
+
https://github.com/dotnet/runtime
- 171a525880315369e48c6adf6c181f98357352a5
+ eaa9717d90115cea43b4cdd7a2a49e6d3c3d780e
-
+
https://github.com/dotnet/runtime
- 171a525880315369e48c6adf6c181f98357352a5
+ eaa9717d90115cea43b4cdd7a2a49e6d3c3d780e
-
+
https://github.com/dotnet/runtime
- 171a525880315369e48c6adf6c181f98357352a5
+ eaa9717d90115cea43b4cdd7a2a49e6d3c3d780e
-
+
https://github.com/dotnet/runtime
- 171a525880315369e48c6adf6c181f98357352a5
+ eaa9717d90115cea43b4cdd7a2a49e6d3c3d780e
-
+
https://github.com/dotnet/runtime
- 171a525880315369e48c6adf6c181f98357352a5
+ eaa9717d90115cea43b4cdd7a2a49e6d3c3d780e
-
+
https://github.com/dotnet/runtime
- 171a525880315369e48c6adf6c181f98357352a5
+ eaa9717d90115cea43b4cdd7a2a49e6d3c3d780e
-
+
https://github.com/dotnet/aspnetcore
- d1f00b02ef24762bca23653fd963629749743334
+ 9c664bc65a52bc959138ec76c0250874fb38174d
-
+
https://github.com/dotnet/aspnetcore
- d1f00b02ef24762bca23653fd963629749743334
+ 9c664bc65a52bc959138ec76c0250874fb38174d
-
+
https://github.com/dotnet/aspnetcore
- d1f00b02ef24762bca23653fd963629749743334
+ 9c664bc65a52bc959138ec76c0250874fb38174d
-
+
https://github.com/dotnet/aspnetcore
- d1f00b02ef24762bca23653fd963629749743334
+ 9c664bc65a52bc959138ec76c0250874fb38174d
-
+
https://github.com/dotnet/aspnetcore
- d1f00b02ef24762bca23653fd963629749743334
+ 9c664bc65a52bc959138ec76c0250874fb38174d
-
+
https://github.com/dotnet/aspnetcore
- d1f00b02ef24762bca23653fd963629749743334
+ 9c664bc65a52bc959138ec76c0250874fb38174d
-
+
https://github.com/dotnet/aspnetcore
- d1f00b02ef24762bca23653fd963629749743334
+ 9c664bc65a52bc959138ec76c0250874fb38174d
-
+
https://github.com/dotnet/aspnetcore
- d1f00b02ef24762bca23653fd963629749743334
+ 9c664bc65a52bc959138ec76c0250874fb38174d
-
+
https://github.com/dotnet/aspnetcore
- d1f00b02ef24762bca23653fd963629749743334
+ 9c664bc65a52bc959138ec76c0250874fb38174d
diff --git a/eng/Versions.props b/eng/Versions.props
index 63e0fcf7882..446c97afa52 100644
--- a/eng/Versions.props
+++ b/eng/Versions.props
@@ -25,48 +25,48 @@
-->
- 8.0.0-preview.6.23314.15
- 8.0.0-preview.6.23314.15
- 8.0.0-preview.6.23314.15
- 8.0.0-preview.6.23314.15
- 8.0.0-preview.6.23314.15
- 8.0.0-preview.6.23314.15
- 8.0.0-preview.6.23314.15
- 8.0.0-preview.6.23314.15
- 8.0.0-preview.6.23314.15
- 8.0.0-preview.6.23314.15
- 8.0.0-preview.6.23314.15
- 8.0.0-preview.6.23314.15
- 8.0.0-preview.6.23314.15
- 8.0.0-preview.6.23314.15
- 8.0.0-preview.6.23314.15
- 8.0.0-preview.6.23314.15
- 8.0.0-preview.6.23314.15
- 8.0.0-preview.6.23314.15
- 8.0.0-preview.6.23314.15
- 8.0.0-preview.6.23314.15
- 8.0.0-preview.6.23314.15
- 8.0.0-preview.6.23314.15
- 8.0.0-preview.6.23314.15
- 8.0.0-preview.6.23314.15
- 8.0.0-preview.6.23314.15
- 8.0.0-preview.6.23314.15
- 8.0.0-preview.6.23314.15
- 8.0.0-preview.6.23314.15
- 8.0.0-preview.6.23314.15
- 8.0.0-preview.6.23314.15
- 8.0.0-preview.6.23314.15
- 8.0.0-preview.6.23314.15
+ 8.0.0-preview.7.23325.2
+ 8.0.0-preview.7.23325.2
+ 8.0.0-preview.7.23325.2
+ 8.0.0-preview.7.23325.2
+ 8.0.0-preview.7.23325.2
+ 8.0.0-preview.7.23325.2
+ 8.0.0-preview.7.23325.2
+ 8.0.0-preview.7.23325.2
+ 8.0.0-preview.7.23325.2
+ 8.0.0-preview.7.23325.2
+ 8.0.0-preview.7.23325.2
+ 8.0.0-preview.7.23325.2
+ 8.0.0-preview.7.23325.2
+ 8.0.0-preview.7.23325.2
+ 8.0.0-preview.7.23325.2
+ 8.0.0-preview.7.23325.2
+ 8.0.0-preview.7.23325.2
+ 8.0.0-preview.7.23325.2
+ 8.0.0-preview.7.23325.2
+ 8.0.0-preview.7.23325.2
+ 8.0.0-preview.7.23325.2
+ 8.0.0-preview.7.23325.2
+ 8.0.0-preview.7.23325.2
+ 8.0.0-preview.7.23325.2
+ 8.0.0-preview.7.23325.2
+ 8.0.0-preview.7.23325.2
+ 8.0.0-preview.7.23325.2
+ 8.0.0-preview.7.23325.2
+ 8.0.0-preview.7.23325.2
+ 8.0.0-preview.7.23325.2
+ 8.0.0-preview.7.23325.2
+ 8.0.0-preview.7.23325.2
- 8.0.0-preview.6.23315.13
- 8.0.0-preview.6.23315.13
- 8.0.0-preview.6.23315.13
- 8.0.0-preview.6.23315.13
- 8.0.0-preview.6.23315.13
- 8.0.0-preview.6.23315.13
- 8.0.0-preview.6.23315.13
- 8.0.0-preview.6.23315.13
- 8.0.0-preview.6.23315.13
+ 8.0.0-preview.7.23327.18
+ 8.0.0-preview.7.23327.18
+ 8.0.0-preview.7.23327.18
+ 8.0.0-preview.7.23327.18
+ 8.0.0-preview.7.23327.18
+ 8.0.0-preview.7.23327.18
+ 8.0.0-preview.7.23327.18
+ 8.0.0-preview.7.23327.18
+ 8.0.0-preview.7.23327.18
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- text/microsoft-resx
-
-
- 2.0
-
-
- System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- Type {0} already implements the Validate method
-
-
- A type already includes an implementation of the `Validate` method
-
-
- [OptionsValidator] cannot be applied to static class {0}
-
-
- `OptionsValidatorAttribute` can't be applied to a static class
-
-
- Can't use [ValidateObjectMembers] or [ValidateEnumeratedItems] on fields or properties with open generic type {0}
-
-
- Can't use `ValidateObjectMembersAttribute` or `ValidateEnumeratedItemsAttribute` on fields or properties with open generic types
-
-
- There is a circular type reference involving type {0} preventing it from being used for static validation
-
-
- Unsupported circular references in model types
-
-
- Type {0} does not implement the required IValidateOptions<{1}> interface
-
-
- A type annotated with `OptionsValidatorAttribute` doesn't implement the necessary interface
-
-
- Can't apply validation attributes to private field or property {0}
-
-
- Can't validate private fields or properties
-
-
- Type {0} has no fields or properties to validate, referenced from member {1}
-
-
- Type {0} has no fields or properties to validate, referenced by type {1}
-
-
- A type has no fields or properties to validate
-
-
- A member type has no fields or properties to validate
-
-
- [ValidateEnumeratedItems] cannot be used on members of type {0} as it doesn't implement IEnumerable<T>
-
-
- Member type is not enumerable
-
-
- Null validator type specified in [ValidateObjectMembers] or [ValidateEnumeratedItems] attributes
-
-
- Null validator type specified for the `ValidateObjectMembersAttribute` or `ValidateEnumeratedItemsAttribute` attributes
-
-
- Type {0} has validation annotations, but member {1} doesn't specify [ValidateEnumeratedItems] which could be an oversight
-
-
- Member potentially missing enumerable validation
-
-
- Type {0} has validation annotations, but member {1} doesn't specify [ValidateObjectMembers] which could be an oversight
-
-
- Member potentially missing transitive validation
-
-
- Validator type {0} doesn't have a parameterless constructor
-
-
- Validators used for transitive or enumerable validation must have a constructor with no parameters
-
-
diff --git a/src/Generators/Microsoft.Gen.OptionsValidation/Common/SymbolHolder.cs b/src/Generators/Microsoft.Gen.OptionsValidation/Common/SymbolHolder.cs
deleted file mode 100644
index 02d8deb9cd4..00000000000
--- a/src/Generators/Microsoft.Gen.OptionsValidation/Common/SymbolHolder.cs
+++ /dev/null
@@ -1,20 +0,0 @@
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-
-using Microsoft.CodeAnalysis;
-
-namespace Microsoft.Gen.OptionsValidation;
-
-///
-/// Holds required symbols for the .
-///
-internal sealed record class SymbolHolder(
- INamedTypeSymbol OptionsValidatorSymbol,
- INamedTypeSymbol ValidationAttributeSymbol,
- INamedTypeSymbol DataTypeAttributeSymbol,
- INamedTypeSymbol ValidateOptionsSymbol,
- INamedTypeSymbol IValidatableObjectSymbol,
- INamedTypeSymbol TypeSymbol,
- INamedTypeSymbol? LegacyValidateTransitivelyAttributeSymbol,
- INamedTypeSymbol? ValidateObjectMembersAttributeSymbol,
- INamedTypeSymbol? ValidateEnumeratedItemsAttributeSymbol);
diff --git a/src/Generators/Microsoft.Gen.OptionsValidation/Common/SymbolLoader.cs b/src/Generators/Microsoft.Gen.OptionsValidation/Common/SymbolLoader.cs
deleted file mode 100644
index 8b365c7f68a..00000000000
--- a/src/Generators/Microsoft.Gen.OptionsValidation/Common/SymbolLoader.cs
+++ /dev/null
@@ -1,69 +0,0 @@
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-
-using Microsoft.CodeAnalysis;
-
-namespace Microsoft.Gen.OptionsValidation;
-
-internal static class SymbolLoader
-{
- public const string OptionsValidatorAttribute = "Microsoft.Extensions.Options.Validation.OptionsValidatorAttribute";
- internal const string ValidationAttribute = "System.ComponentModel.DataAnnotations.ValidationAttribute";
- internal const string DataTypeAttribute = "System.ComponentModel.DataAnnotations.DataTypeAttribute";
- internal const string IValidatableObjectType = "System.ComponentModel.DataAnnotations.IValidatableObject";
- internal const string IValidateOptionsType = "Microsoft.Extensions.Options.IValidateOptions`1";
- internal const string TypeOfType = "System.Type";
- internal const string LegacyValidateTransitivelyAttribute = "Microsoft.Extensions.Data.Validation.ValidateTransitivelyObjectMembersAttribute";
- internal const string ValidateObjectMembersAttribute = "Microsoft.Extensions.Options.Validation.ValidateObjectMembersAttribute";
- internal const string ValidateEnumeratedItemsAttribute = "Microsoft.Extensions.Options.Validation.ValidateEnumeratedItemsAttribute";
-
- public static bool TryLoad(Compilation compilation, out SymbolHolder? symbolHolder)
- {
- INamedTypeSymbol? GetSymbol(string metadataName, bool optional = false)
- {
- var symbol = compilation.GetTypeByMetadataName(metadataName);
- if (symbol == null && !optional)
- {
- return null;
- }
-
- return symbol;
- }
-
- // required
- var optionsValidatorSymbol = GetSymbol(OptionsValidatorAttribute);
- var validationAttributeSymbol = GetSymbol(ValidationAttribute);
- var dataTypeAttributeSymbol = GetSymbol(DataTypeAttribute);
- var ivalidatableObjectSymbol = GetSymbol(IValidatableObjectType);
- var validateOptionsSymbol = GetSymbol(IValidateOptionsType);
- var typeSymbol = GetSymbol(TypeOfType);
-
-#pragma warning disable S1067 // Expressions should not be too complex
- if (optionsValidatorSymbol == null ||
- validationAttributeSymbol == null ||
- dataTypeAttributeSymbol == null ||
- ivalidatableObjectSymbol == null ||
- validateOptionsSymbol == null ||
- typeSymbol == null)
- {
- symbolHolder = default;
- return false;
- }
-#pragma warning restore S1067 // Expressions should not be too complex
-
- symbolHolder = new(
- optionsValidatorSymbol,
- validationAttributeSymbol,
- dataTypeAttributeSymbol,
- validateOptionsSymbol,
- ivalidatableObjectSymbol,
- typeSymbol,
-
- // optional
- GetSymbol(LegacyValidateTransitivelyAttribute, optional: true),
- GetSymbol(ValidateObjectMembersAttribute, optional: true),
- GetSymbol(ValidateEnumeratedItemsAttribute, optional: true));
-
- return true;
- }
-}
diff --git a/src/Generators/Microsoft.Gen.OptionsValidation/Directory.Build.props b/src/Generators/Microsoft.Gen.OptionsValidation/Directory.Build.props
deleted file mode 100644
index 882655d5161..00000000000
--- a/src/Generators/Microsoft.Gen.OptionsValidation/Directory.Build.props
+++ /dev/null
@@ -1,33 +0,0 @@
-
-
-
-
- Microsoft.Gen.OptionsValidation
- Code generator to support Microsoft.Extensions.Options.Validation.
- Fundamentals
-
-
-
- cs
- true
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/Generators/Microsoft.Gen.OptionsValidation/Roslyn3.8/Microsoft.Gen.OptionsValidation.Roslyn3.8.csproj b/src/Generators/Microsoft.Gen.OptionsValidation/Roslyn3.8/Microsoft.Gen.OptionsValidation.Roslyn3.8.csproj
deleted file mode 100644
index e1ef356a7da..00000000000
--- a/src/Generators/Microsoft.Gen.OptionsValidation/Roslyn3.8/Microsoft.Gen.OptionsValidation.Roslyn3.8.csproj
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
- Microsoft.Gen.OptionsValidation
- 3.8
- $(MicrosoftCodeAnalysisVersion_3_8)
-
-
-
- normal
- 94
- 85
- 85
-
-
-
-
- True
- True
- Resources.resx
-
-
-
-
-
-
-
-
-
diff --git a/src/Generators/Microsoft.Gen.OptionsValidation/Roslyn4.0/Microsoft.Gen.OptionsValidation.Roslyn4.0.csproj b/src/Generators/Microsoft.Gen.OptionsValidation/Roslyn4.0/Microsoft.Gen.OptionsValidation.Roslyn4.0.csproj
deleted file mode 100644
index 69d0da6a100..00000000000
--- a/src/Generators/Microsoft.Gen.OptionsValidation/Roslyn4.0/Microsoft.Gen.OptionsValidation.Roslyn4.0.csproj
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
- Microsoft.Gen.OptionsValidation
- 4.0
- $(MicrosoftCodeAnalysisVersion_4_0)
- $(DefineConstants);ROSLYN_4_0_OR_GREATER
-
-
-
- normal
- 94
- 85
- 50
-
-
-
-
- True
- True
- Resources.resx
-
-
-
-
-
-
-
-
-
diff --git a/src/LegacySupport/ExperimentalAttribute/ExperimentalAttribute.cs b/src/LegacySupport/ExperimentalAttribute/ExperimentalAttribute.cs
index 6d7d44a95f8..af31c0f8151 100644
--- a/src/LegacySupport/ExperimentalAttribute/ExperimentalAttribute.cs
+++ b/src/LegacySupport/ExperimentalAttribute/ExperimentalAttribute.cs
@@ -1,6 +1,8 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
+#if !NET8_0_OR_GREATER
+
namespace System.Diagnostics.CodeAnalysis;
///
@@ -24,30 +26,31 @@ internal sealed class ExperimentalAttribute : Attribute
///
/// Initializes a new instance of the class.
///
- public ExperimentalAttribute()
+ /// Human readable explanation for marking experimental API.
+ public ExperimentalAttribute(string diagnosticId)
{
- // Intentionally left empty.
+ DiagnosticId = diagnosticId;
}
///
- /// Initializes a new instance of the class.
+ /// Gets the ID that the compiler will use when reporting a use of the API the attribute applies to.
///
- /// Human readable explanation for marking experimental API.
- public ExperimentalAttribute(string message)
- {
-#pragma warning disable R9A014 // Use the 'Microsoft.Extensions.Diagnostics.Throws' class instead of explicitly throwing exception for improved performance
-#pragma warning disable R9A039 // Remove superfluous null check when compiling in a nullable context
-#pragma warning disable R9A060 // Consider removing unnecessary null coalescing (??) since the left-hand value is statically known not to be null
-#pragma warning disable SA1101 // Prefix local calls with this
- Message = message ?? throw new ArgumentNullException(nameof(message));
-#pragma warning restore SA1101 // Prefix local calls with this
-#pragma warning restore R9A060 // Consider removing unnecessary null coalescing (??) since the left-hand value is statically known not to be null
-#pragma warning restore R9A039 // Remove superfluous null check when compiling in a nullable context
-#pragma warning restore R9A014 // Use the 'Microsoft.Extensions.Diagnostics.Throws' class instead of explicitly throwing exception for improved performance
- }
+ /// The unique diagnostic ID.
+ ///
+ /// The diagnostic ID is shown in build output for warnings and errors.
+ /// This property represents the unique ID that can be used to suppress the warnings or errors, if needed.
+ ///
+ public string DiagnosticId { get; }
///
- /// Gets a human readable explanation for marking API as experimental.
+ /// 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.
///
- public string? Message { get; }
+ /// The format string that represents a URL to corresponding documentation.
+ /// An example format string is https://contoso.com/obsoletion-warnings/{0}.
+#pragma warning disable S3996 // URI properties should not be strings
+ public string? UrlFormat { get; set; }
+#pragma warning restore S3996 // URI properties should not be strings
}
+
+#endif
diff --git a/src/Libraries/Microsoft.AspNetCore.ConnectionTimeout/Microsoft.AspNetCore.ConnectionTimeout.csproj b/src/Libraries/Microsoft.AspNetCore.ConnectionTimeout/Microsoft.AspNetCore.ConnectionTimeout.csproj
index e9d691fe350..56c24014a2c 100644
--- a/src/Libraries/Microsoft.AspNetCore.ConnectionTimeout/Microsoft.AspNetCore.ConnectionTimeout.csproj
+++ b/src/Libraries/Microsoft.AspNetCore.ConnectionTimeout/Microsoft.AspNetCore.ConnectionTimeout.csproj
@@ -23,7 +23,6 @@
-
diff --git a/src/Libraries/Microsoft.AspNetCore.HeaderParsing/HeaderParsingOptionsValidator.cs b/src/Libraries/Microsoft.AspNetCore.HeaderParsing/HeaderParsingOptionsValidator.cs
index 0e46ce7a346..772c1d7061d 100644
--- a/src/Libraries/Microsoft.AspNetCore.HeaderParsing/HeaderParsingOptionsValidator.cs
+++ b/src/Libraries/Microsoft.AspNetCore.HeaderParsing/HeaderParsingOptionsValidator.cs
@@ -2,7 +2,6 @@
// The .NET Foundation licenses this file to you under the MIT license.
using Microsoft.Extensions.Options;
-using Microsoft.Extensions.Options.Validation;
namespace Microsoft.AspNetCore.HeaderParsing;
diff --git a/src/Libraries/Microsoft.AspNetCore.HeaderParsing/Microsoft.AspNetCore.HeaderParsing.csproj b/src/Libraries/Microsoft.AspNetCore.HeaderParsing/Microsoft.AspNetCore.HeaderParsing.csproj
index 80a4d8bb74e..af2b631d905 100644
--- a/src/Libraries/Microsoft.AspNetCore.HeaderParsing/Microsoft.AspNetCore.HeaderParsing.csproj
+++ b/src/Libraries/Microsoft.AspNetCore.HeaderParsing/Microsoft.AspNetCore.HeaderParsing.csproj
@@ -8,7 +8,6 @@
true
- true
true
true
true
@@ -23,7 +22,6 @@
-
diff --git a/src/Libraries/Microsoft.AspNetCore.Telemetry.Middleware/Latency/Internal/RequestLatencyTelemetryOptionsValidator.cs b/src/Libraries/Microsoft.AspNetCore.Telemetry.Middleware/Latency/Internal/RequestLatencyTelemetryOptionsValidator.cs
index 02665354649..ddfe44114dd 100644
--- a/src/Libraries/Microsoft.AspNetCore.Telemetry.Middleware/Latency/Internal/RequestLatencyTelemetryOptionsValidator.cs
+++ b/src/Libraries/Microsoft.AspNetCore.Telemetry.Middleware/Latency/Internal/RequestLatencyTelemetryOptionsValidator.cs
@@ -2,7 +2,6 @@
// The .NET Foundation licenses this file to you under the MIT license.
using Microsoft.Extensions.Options;
-using Microsoft.Extensions.Options.Validation;
namespace Microsoft.AspNetCore.Telemetry.Internal;
diff --git a/src/Libraries/Microsoft.AspNetCore.Telemetry.Middleware/Logging/Internal/LoggingOptionsValidator.cs b/src/Libraries/Microsoft.AspNetCore.Telemetry.Middleware/Logging/Internal/LoggingOptionsValidator.cs
index 851a41a3c8e..2cb7f021047 100644
--- a/src/Libraries/Microsoft.AspNetCore.Telemetry.Middleware/Logging/Internal/LoggingOptionsValidator.cs
+++ b/src/Libraries/Microsoft.AspNetCore.Telemetry.Middleware/Logging/Internal/LoggingOptionsValidator.cs
@@ -2,7 +2,6 @@
// The .NET Foundation licenses this file to you under the MIT license.
using Microsoft.Extensions.Options;
-using Microsoft.Extensions.Options.Validation;
namespace Microsoft.AspNetCore.Telemetry.Http.Logging;
diff --git a/src/Libraries/Microsoft.AspNetCore.Telemetry.Middleware/Logging/LoggingOptions.cs b/src/Libraries/Microsoft.AspNetCore.Telemetry.Middleware/Logging/LoggingOptions.cs
index 9eb5339d5c9..5085a820bad 100644
--- a/src/Libraries/Microsoft.AspNetCore.Telemetry.Middleware/Logging/LoggingOptions.cs
+++ b/src/Libraries/Microsoft.AspNetCore.Telemetry.Middleware/Logging/LoggingOptions.cs
@@ -67,7 +67,7 @@ public class LoggingOptions
///
/// The default value is .
///
- [Experimental]
+ [Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
public HttpRouteParameterRedactionMode RequestPathParameterRedactionMode { get; set; } = DefaultPathParameterRedactionMode;
///
@@ -208,7 +208,7 @@ public class LoggingOptions
/// };
///
///
- [Experimental]
+ [Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
[Required]
[SuppressMessage("Usage", "CA2227:Collection properties should be read only",
Justification = "Options pattern.")]
diff --git a/src/Libraries/Microsoft.AspNetCore.Telemetry.Middleware/Microsoft.AspNetCore.Telemetry.Middleware.csproj b/src/Libraries/Microsoft.AspNetCore.Telemetry.Middleware/Microsoft.AspNetCore.Telemetry.Middleware.csproj
index 94d8909aa14..97bb0654713 100644
--- a/src/Libraries/Microsoft.AspNetCore.Telemetry.Middleware/Microsoft.AspNetCore.Telemetry.Middleware.csproj
+++ b/src/Libraries/Microsoft.AspNetCore.Telemetry.Middleware/Microsoft.AspNetCore.Telemetry.Middleware.csproj
@@ -8,7 +8,6 @@
$(NetCoreTargetFrameworks)
- true
true
true
false
@@ -29,7 +28,6 @@
-
diff --git a/src/Libraries/Microsoft.AspNetCore.Telemetry/Enrichment.RequestHeaders/RequestHeadersEnricherExtensions.cs b/src/Libraries/Microsoft.AspNetCore.Telemetry/Enrichment.RequestHeaders/RequestHeadersEnricherExtensions.cs
index 5e55a98f1c7..fb01da4fba3 100644
--- a/src/Libraries/Microsoft.AspNetCore.Telemetry/Enrichment.RequestHeaders/RequestHeadersEnricherExtensions.cs
+++ b/src/Libraries/Microsoft.AspNetCore.Telemetry/Enrichment.RequestHeaders/RequestHeadersEnricherExtensions.cs
@@ -5,6 +5,7 @@
using System.Diagnostics.CodeAnalysis;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
+using Microsoft.Extensions.Options;
using Microsoft.Extensions.Options.Validation;
using Microsoft.Extensions.Telemetry.Enrichment;
using Microsoft.Shared.Diagnostics;
diff --git a/src/Libraries/Microsoft.AspNetCore.Telemetry/Enrichment.RequestHeaders/RequestHeadersLogEnricherOptions.cs b/src/Libraries/Microsoft.AspNetCore.Telemetry/Enrichment.RequestHeaders/RequestHeadersLogEnricherOptions.cs
index 1f46f1d898a..eaf16a28132 100644
--- a/src/Libraries/Microsoft.AspNetCore.Telemetry/Enrichment.RequestHeaders/RequestHeadersLogEnricherOptions.cs
+++ b/src/Libraries/Microsoft.AspNetCore.Telemetry/Enrichment.RequestHeaders/RequestHeadersLogEnricherOptions.cs
@@ -20,7 +20,7 @@ public class RequestHeadersLogEnricherOptions
/// Default value is an empty dictionary.
///
[Required]
- [Experimental]
+ [Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
#pragma warning disable CA2227 // Collection properties should be read only
public IDictionary HeadersDataClasses { get; set; } = new Dictionary();
#pragma warning restore CA2227 // Collection properties should be read only
diff --git a/src/Libraries/Microsoft.AspNetCore.Telemetry/Enrichment.RequestHeaders/RequestHeadersLogEnricherOptionsValidator.cs b/src/Libraries/Microsoft.AspNetCore.Telemetry/Enrichment.RequestHeaders/RequestHeadersLogEnricherOptionsValidator.cs
index 43213594e43..86e322270ac 100644
--- a/src/Libraries/Microsoft.AspNetCore.Telemetry/Enrichment.RequestHeaders/RequestHeadersLogEnricherOptionsValidator.cs
+++ b/src/Libraries/Microsoft.AspNetCore.Telemetry/Enrichment.RequestHeaders/RequestHeadersLogEnricherOptionsValidator.cs
@@ -2,7 +2,6 @@
// The .NET Foundation licenses this file to you under the MIT license.
using Microsoft.Extensions.Options;
-using Microsoft.Extensions.Options.Validation;
namespace Microsoft.AspNetCore.Telemetry;
diff --git a/src/Libraries/Microsoft.AspNetCore.Telemetry/Microsoft.AspNetCore.Telemetry.csproj b/src/Libraries/Microsoft.AspNetCore.Telemetry/Microsoft.AspNetCore.Telemetry.csproj
index 94f50e5b3a5..ab52ba161bf 100644
--- a/src/Libraries/Microsoft.AspNetCore.Telemetry/Microsoft.AspNetCore.Telemetry.csproj
+++ b/src/Libraries/Microsoft.AspNetCore.Telemetry/Microsoft.AspNetCore.Telemetry.csproj
@@ -8,7 +8,6 @@
true
- true
false
false
false
diff --git a/src/Libraries/Microsoft.AspNetCore.Telemetry/Tracing/HttpTracingExtensions.cs b/src/Libraries/Microsoft.AspNetCore.Telemetry/Tracing/HttpTracingExtensions.cs
index 0a2eaef5181..24f72a1ef9b 100644
--- a/src/Libraries/Microsoft.AspNetCore.Telemetry/Tracing/HttpTracingExtensions.cs
+++ b/src/Libraries/Microsoft.AspNetCore.Telemetry/Tracing/HttpTracingExtensions.cs
@@ -116,7 +116,7 @@ public static TracerProviderBuilder AddHttpTraceEnricher(this TracerProviderBuil
/// The to add this enricher.
/// for chaining.
/// The argument is .
- [Experimental]
+ [Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
public static IServiceCollection AddHttpTraceEnricher(this IServiceCollection services)
where T : class, IHttpTraceEnricher
{
@@ -132,7 +132,7 @@ public static IServiceCollection AddHttpTraceEnricher(this IServiceCollection
/// Enricher to be added.
/// for chaining.
/// The argument or is .
- [Experimental]
+ [Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
public static IServiceCollection AddHttpTraceEnricher(this IServiceCollection services, IHttpTraceEnricher enricher)
{
_ = Throw.IfNull(services);
diff --git a/src/Libraries/Microsoft.AspNetCore.Telemetry/Tracing/HttpTracingOptions.cs b/src/Libraries/Microsoft.AspNetCore.Telemetry/Tracing/HttpTracingOptions.cs
index baf648ebaf6..1b4f1d8a5a6 100644
--- a/src/Libraries/Microsoft.AspNetCore.Telemetry/Tracing/HttpTracingOptions.cs
+++ b/src/Libraries/Microsoft.AspNetCore.Telemetry/Tracing/HttpTracingOptions.cs
@@ -51,7 +51,7 @@ public class HttpTracingOptions
///
/// This property is applicable when the option is enabled.
///
- [Experimental]
+ [Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
public HttpRouteParameterRedactionMode RequestPathParameterRedactionMode { get; set; } = DefaultPathParameterRedactionMode;
///
diff --git a/src/Libraries/Microsoft.AspNetCore.Telemetry/Tracing/Internal/HttpTracingOptionsValidator.cs b/src/Libraries/Microsoft.AspNetCore.Telemetry/Tracing/Internal/HttpTracingOptionsValidator.cs
index 5a7146850a4..69bb8139805 100644
--- a/src/Libraries/Microsoft.AspNetCore.Telemetry/Tracing/Internal/HttpTracingOptionsValidator.cs
+++ b/src/Libraries/Microsoft.AspNetCore.Telemetry/Tracing/Internal/HttpTracingOptionsValidator.cs
@@ -2,7 +2,6 @@
// The .NET Foundation licenses this file to you under the MIT license.
using Microsoft.Extensions.Options;
-using Microsoft.Extensions.Options.Validation;
namespace Microsoft.AspNetCore.Telemetry.Internal;
diff --git a/src/Libraries/Microsoft.Extensions.AmbientMetadata.Application/ApplicationMetadataValidator.cs b/src/Libraries/Microsoft.Extensions.AmbientMetadata.Application/ApplicationMetadataValidator.cs
index cf8e27ded88..8a129d03b8a 100644
--- a/src/Libraries/Microsoft.Extensions.AmbientMetadata.Application/ApplicationMetadataValidator.cs
+++ b/src/Libraries/Microsoft.Extensions.AmbientMetadata.Application/ApplicationMetadataValidator.cs
@@ -2,7 +2,6 @@
// The .NET Foundation licenses this file to you under the MIT license.
using Microsoft.Extensions.Options;
-using Microsoft.Extensions.Options.Validation;
namespace Microsoft.Extensions.AmbientMetadata;
diff --git a/src/Libraries/Microsoft.Extensions.AmbientMetadata.Application/Microsoft.Extensions.AmbientMetadata.Application.csproj b/src/Libraries/Microsoft.Extensions.AmbientMetadata.Application/Microsoft.Extensions.AmbientMetadata.Application.csproj
index 0aaa9620fba..7d860c650ba 100644
--- a/src/Libraries/Microsoft.Extensions.AmbientMetadata.Application/Microsoft.Extensions.AmbientMetadata.Application.csproj
+++ b/src/Libraries/Microsoft.Extensions.AmbientMetadata.Application/Microsoft.Extensions.AmbientMetadata.Application.csproj
@@ -5,10 +5,6 @@
Fundamentals
-
- true
-
-
normal
100
@@ -16,7 +12,6 @@
-
diff --git a/src/Libraries/Microsoft.Extensions.AsyncState/IAsyncLocalContext.cs b/src/Libraries/Microsoft.Extensions.AsyncState/IAsyncLocalContext.cs
index a180eb275fb..be5e9025591 100644
--- a/src/Libraries/Microsoft.Extensions.AsyncState/IAsyncLocalContext.cs
+++ b/src/Libraries/Microsoft.Extensions.AsyncState/IAsyncLocalContext.cs
@@ -11,7 +11,7 @@ namespace Microsoft.Extensions.AsyncState;
///
/// The type of the asynchronous state.
/// This type is intended for internal use. Use instead.
-[Experimental]
+[Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
[EditorBrowsable(EditorBrowsableState.Never)]
#pragma warning disable S4023 // Interfaces should not be empty
public interface IAsyncLocalContext : IAsyncContext
diff --git a/src/Libraries/Microsoft.Extensions.Compliance.Redaction/Microsoft.Extensions.Compliance.Redaction.csproj b/src/Libraries/Microsoft.Extensions.Compliance.Redaction/Microsoft.Extensions.Compliance.Redaction.csproj
index d88e014f05a..15442d1a835 100644
--- a/src/Libraries/Microsoft.Extensions.Compliance.Redaction/Microsoft.Extensions.Compliance.Redaction.csproj
+++ b/src/Libraries/Microsoft.Extensions.Compliance.Redaction/Microsoft.Extensions.Compliance.Redaction.csproj
@@ -6,7 +6,6 @@
- true
true
diff --git a/src/Libraries/Microsoft.Extensions.Compliance.Testing/FakeRedactorOptionsAutoValidator.cs b/src/Libraries/Microsoft.Extensions.Compliance.Testing/FakeRedactorOptionsAutoValidator.cs
index 848234268c9..91ea505e36c 100644
--- a/src/Libraries/Microsoft.Extensions.Compliance.Testing/FakeRedactorOptionsAutoValidator.cs
+++ b/src/Libraries/Microsoft.Extensions.Compliance.Testing/FakeRedactorOptionsAutoValidator.cs
@@ -2,7 +2,6 @@
// The .NET Foundation licenses this file to you under the MIT license.
using Microsoft.Extensions.Options;
-using Microsoft.Extensions.Options.Validation;
namespace Microsoft.Extensions.Compliance.Testing;
diff --git a/src/Libraries/Microsoft.Extensions.Compliance.Testing/Microsoft.Extensions.Compliance.Testing.csproj b/src/Libraries/Microsoft.Extensions.Compliance.Testing/Microsoft.Extensions.Compliance.Testing.csproj
index a09c5578f9b..10f6491f9df 100644
--- a/src/Libraries/Microsoft.Extensions.Compliance.Testing/Microsoft.Extensions.Compliance.Testing.csproj
+++ b/src/Libraries/Microsoft.Extensions.Compliance.Testing/Microsoft.Extensions.Compliance.Testing.csproj
@@ -7,7 +7,6 @@
- true
true
true
true
@@ -23,7 +22,6 @@
-
diff --git a/src/Libraries/Microsoft.Extensions.Diagnostics.HealthChecks.Common/CommonHealthChecksExtensions.TelemetryPublisher.cs b/src/Libraries/Microsoft.Extensions.Diagnostics.HealthChecks.Common/CommonHealthChecksExtensions.TelemetryPublisher.cs
index ac7cbf8edee..9034b7b9884 100644
--- a/src/Libraries/Microsoft.Extensions.Diagnostics.HealthChecks.Common/CommonHealthChecksExtensions.TelemetryPublisher.cs
+++ b/src/Libraries/Microsoft.Extensions.Diagnostics.HealthChecks.Common/CommonHealthChecksExtensions.TelemetryPublisher.cs
@@ -30,7 +30,7 @@ public static IServiceCollection AddTelemetryHealthCheckPublisher(this IServiceC
/// Configuration for .
/// The value of .
/// or are .
- [Experimental]
+ [Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
public static IServiceCollection AddTelemetryHealthCheckPublisher(this IServiceCollection services, IConfigurationSection section)
=> Throw.IfNull(services)
.Configure(Throw.IfNull(section))
@@ -44,7 +44,7 @@ public static IServiceCollection AddTelemetryHealthCheckPublisher(this IServiceC
/// Configuration for .
/// The value of .
/// or are .
- [Experimental]
+ [Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
public static IServiceCollection AddTelemetryHealthCheckPublisher(this IServiceCollection services, Action configure)
=> Throw.IfNull(services)
.Configure(Throw.IfNull(configure))
diff --git a/src/Libraries/Microsoft.Extensions.Diagnostics.HealthChecks.Common/TelemetryHealthCheckPublisherOptions.cs b/src/Libraries/Microsoft.Extensions.Diagnostics.HealthChecks.Common/TelemetryHealthCheckPublisherOptions.cs
index bf5d07c5dce..d2b1155551a 100644
--- a/src/Libraries/Microsoft.Extensions.Diagnostics.HealthChecks.Common/TelemetryHealthCheckPublisherOptions.cs
+++ b/src/Libraries/Microsoft.Extensions.Diagnostics.HealthChecks.Common/TelemetryHealthCheckPublisherOptions.cs
@@ -8,7 +8,7 @@ namespace Microsoft.Extensions.Diagnostics.HealthChecks;
///
/// Options for the telemetry health check publisher.
///
-[Experimental]
+[Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
public class TelemetryHealthCheckPublisherOptions
{
///
diff --git a/src/Libraries/Microsoft.Extensions.Diagnostics.HealthChecks.ResourceUtilization/Microsoft.Extensions.Diagnostics.HealthChecks.ResourceUtilization.csproj b/src/Libraries/Microsoft.Extensions.Diagnostics.HealthChecks.ResourceUtilization/Microsoft.Extensions.Diagnostics.HealthChecks.ResourceUtilization.csproj
index cacc4326872..8497c054823 100644
--- a/src/Libraries/Microsoft.Extensions.Diagnostics.HealthChecks.ResourceUtilization/Microsoft.Extensions.Diagnostics.HealthChecks.ResourceUtilization.csproj
+++ b/src/Libraries/Microsoft.Extensions.Diagnostics.HealthChecks.ResourceUtilization/Microsoft.Extensions.Diagnostics.HealthChecks.ResourceUtilization.csproj
@@ -6,7 +6,6 @@
- true
true
true
diff --git a/src/Libraries/Microsoft.Extensions.Diagnostics.HealthChecks.ResourceUtilization/ResourceUtilizationHealthCheckOptions.cs b/src/Libraries/Microsoft.Extensions.Diagnostics.HealthChecks.ResourceUtilization/ResourceUtilizationHealthCheckOptions.cs
index 29afe898c19..115c94da936 100644
--- a/src/Libraries/Microsoft.Extensions.Diagnostics.HealthChecks.ResourceUtilization/ResourceUtilizationHealthCheckOptions.cs
+++ b/src/Libraries/Microsoft.Extensions.Diagnostics.HealthChecks.ResourceUtilization/ResourceUtilizationHealthCheckOptions.cs
@@ -3,7 +3,7 @@
using System;
using Microsoft.Extensions.Diagnostics.ResourceMonitoring;
-using Microsoft.Extensions.Options.Validation;
+using Microsoft.Extensions.Options;
using Microsoft.Shared.Data.Validation;
namespace Microsoft.Extensions.Diagnostics.HealthChecks;
diff --git a/src/Libraries/Microsoft.Extensions.Diagnostics.HealthChecks.ResourceUtilization/ResourceUtilizationHealthCheckOptionsValidator.cs b/src/Libraries/Microsoft.Extensions.Diagnostics.HealthChecks.ResourceUtilization/ResourceUtilizationHealthCheckOptionsValidator.cs
index 5ed6da4d506..2ed4d499a14 100644
--- a/src/Libraries/Microsoft.Extensions.Diagnostics.HealthChecks.ResourceUtilization/ResourceUtilizationHealthCheckOptionsValidator.cs
+++ b/src/Libraries/Microsoft.Extensions.Diagnostics.HealthChecks.ResourceUtilization/ResourceUtilizationHealthCheckOptionsValidator.cs
@@ -2,7 +2,6 @@
// The .NET Foundation licenses this file to you under the MIT license.
using Microsoft.Extensions.Options;
-using Microsoft.Extensions.Options.Validation;
namespace Microsoft.Extensions.Diagnostics.HealthChecks;
diff --git a/src/Libraries/Microsoft.Extensions.Diagnostics.Probes/Kubernetes/TcpEndpointHealthCheckOptionsValidator.cs b/src/Libraries/Microsoft.Extensions.Diagnostics.Probes/Kubernetes/TcpEndpointHealthCheckOptionsValidator.cs
index b606417706d..0a11191883e 100644
--- a/src/Libraries/Microsoft.Extensions.Diagnostics.Probes/Kubernetes/TcpEndpointHealthCheckOptionsValidator.cs
+++ b/src/Libraries/Microsoft.Extensions.Diagnostics.Probes/Kubernetes/TcpEndpointHealthCheckOptionsValidator.cs
@@ -2,7 +2,6 @@
// The .NET Foundation licenses this file to you under the MIT license.
using Microsoft.Extensions.Options;
-using Microsoft.Extensions.Options.Validation;
namespace Microsoft.Extensions.Diagnostics.Probes;
diff --git a/src/Libraries/Microsoft.Extensions.Diagnostics.Probes/Microsoft.Extensions.Diagnostics.Probes.csproj b/src/Libraries/Microsoft.Extensions.Diagnostics.Probes/Microsoft.Extensions.Diagnostics.Probes.csproj
index deaa8dc277a..ec64ad46cc5 100644
--- a/src/Libraries/Microsoft.Extensions.Diagnostics.Probes/Microsoft.Extensions.Diagnostics.Probes.csproj
+++ b/src/Libraries/Microsoft.Extensions.Diagnostics.Probes/Microsoft.Extensions.Diagnostics.Probes.csproj
@@ -7,7 +7,6 @@
true
- true
true
true
@@ -21,7 +20,6 @@
-
diff --git a/src/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring/Internal/ResourceUtilizationTrackerOptionsValidator.cs b/src/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring/Internal/ResourceUtilizationTrackerOptionsValidator.cs
index e7c38f1bbeb..6295ecdaecd 100644
--- a/src/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring/Internal/ResourceUtilizationTrackerOptionsValidator.cs
+++ b/src/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring/Internal/ResourceUtilizationTrackerOptionsValidator.cs
@@ -2,7 +2,6 @@
// The .NET Foundation licenses this file to you under the MIT license.
using Microsoft.Extensions.Options;
-using Microsoft.Extensions.Options.Validation;
namespace Microsoft.Extensions.Diagnostics.ResourceMonitoring;
diff --git a/src/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring/Linux/Internal/LinuxResourceUtilizationProviderOptionsValidator.cs b/src/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring/Linux/Internal/LinuxResourceUtilizationProviderOptionsValidator.cs
index b8e0ebc445c..7631d2d4d10 100644
--- a/src/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring/Linux/Internal/LinuxResourceUtilizationProviderOptionsValidator.cs
+++ b/src/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring/Linux/Internal/LinuxResourceUtilizationProviderOptionsValidator.cs
@@ -2,7 +2,6 @@
// The .NET Foundation licenses this file to you under the MIT license.
using Microsoft.Extensions.Options;
-using Microsoft.Extensions.Options.Validation;
namespace Microsoft.Extensions.Diagnostics.ResourceMonitoring.Internal;
diff --git a/src/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring/Linux/LinuxUtilizationExtensions.cs b/src/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring/Linux/LinuxUtilizationExtensions.cs
index 7c4163199ca..5183b37810e 100644
--- a/src/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring/Linux/LinuxUtilizationExtensions.cs
+++ b/src/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring/Linux/LinuxUtilizationExtensions.cs
@@ -6,6 +6,7 @@
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection.Extensions;
using Microsoft.Extensions.Diagnostics.ResourceMonitoring.Internal;
+using Microsoft.Extensions.Options;
using Microsoft.Extensions.Options.Validation;
using Microsoft.Extensions.Telemetry.Metering;
using Microsoft.Shared.Diagnostics;
diff --git a/src/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring/Microsoft.Extensions.Diagnostics.ResourceMonitoring.csproj b/src/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring/Microsoft.Extensions.Diagnostics.ResourceMonitoring.csproj
index 532e55ea400..c09459bdb77 100644
--- a/src/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring/Microsoft.Extensions.Diagnostics.ResourceMonitoring.csproj
+++ b/src/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring/Microsoft.Extensions.Diagnostics.ResourceMonitoring.csproj
@@ -7,7 +7,6 @@
true
- true
true
true
true
@@ -27,7 +26,6 @@
-
diff --git a/src/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring/ResourceMonitoringOptions.cs b/src/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring/ResourceMonitoringOptions.cs
index d6b55d14820..97f2b805ff1 100644
--- a/src/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring/ResourceMonitoringOptions.cs
+++ b/src/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring/ResourceMonitoringOptions.cs
@@ -50,7 +50,7 @@ public class ResourceMonitoringOptions
/// The value needs to be less than or equal to the .
/// Most importantly, this period is used to calculate instances pushed to publishers.
///
- [Experimental]
+ [Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
[TimeSpan(MinimumSamplingWindow, MaximumSamplingWindow)]
public TimeSpan CalculationPeriod { get; set; } = DefaultCollectionWindow;
}
diff --git a/src/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring/Windows/Internal/WindowsCountersOptionsValidator.cs b/src/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring/Windows/Internal/WindowsCountersOptionsValidator.cs
index 501d31049df..2058dd53ecb 100644
--- a/src/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring/Windows/Internal/WindowsCountersOptionsValidator.cs
+++ b/src/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring/Windows/Internal/WindowsCountersOptionsValidator.cs
@@ -2,7 +2,6 @@
// The .NET Foundation licenses this file to you under the MIT license.
using Microsoft.Extensions.Options;
-using Microsoft.Extensions.Options.Validation;
namespace Microsoft.Extensions.Diagnostics.ResourceMonitoring;
diff --git a/src/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring/Windows/WindowsCountersOptions.cs b/src/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring/Windows/WindowsCountersOptions.cs
index 5d90106ce54..1678918817c 100644
--- a/src/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring/Windows/WindowsCountersOptions.cs
+++ b/src/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring/Windows/WindowsCountersOptions.cs
@@ -12,7 +12,7 @@ namespace Microsoft.Extensions.Diagnostics.ResourceMonitoring;
///
/// Options for WindowsCounters.
///
-[Experimental]
+[Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
public class WindowsCountersOptions
{
internal const int MinimumCachingInterval = 100;
@@ -33,7 +33,7 @@ public class WindowsCountersOptions
///
/// The default value is 5 seconds.
///
- [Experimental]
+ [Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
[TimeSpan(MinimumCachingInterval, MaximumCachingInterval)]
public TimeSpan CachingInterval { get; set; } = DefaultCachingInterval;
}
diff --git a/src/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring/Windows/WindowsUtilizationExtensions.cs b/src/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring/Windows/WindowsUtilizationExtensions.cs
index 211f6976e5e..1718e85d9e9 100644
--- a/src/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring/Windows/WindowsUtilizationExtensions.cs
+++ b/src/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring/Windows/WindowsUtilizationExtensions.cs
@@ -65,7 +65,7 @@ public static IResourceMonitorBuilder AddWindowsPerfCounterPublisher(this IResou
/// The value of .
/// is .
///
- [Experimental]
+ [Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
public static IResourceMonitorBuilder AddWindowsCounters(this IResourceMonitorBuilder builder)
{
_ = Throw.IfNull(builder);
@@ -93,7 +93,7 @@ public static IResourceMonitorBuilder AddWindowsCounters(this IResourceMonitorBu
/// The value of .
/// is .
///
- [Experimental]
+ [Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
public static IResourceMonitorBuilder AddWindowsCounters(this IResourceMonitorBuilder builder, IConfigurationSection section)
{
_ = Throw.IfNull(builder);
@@ -123,7 +123,7 @@ public static IResourceMonitorBuilder AddWindowsCounters(this IResourceMonitorBu
/// The value of .
/// is .
///
- [Experimental]
+ [Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
public static IResourceMonitorBuilder AddWindowsCounters(this IResourceMonitorBuilder builder, Action configure)
{
_ = Throw.IfNull(builder);
diff --git a/src/Libraries/Microsoft.Extensions.Hosting.Testing/HostingFakesExtensions.cs b/src/Libraries/Microsoft.Extensions.Hosting.Testing/HostingFakesExtensions.cs
index 57234351d7c..9d61e191b86 100644
--- a/src/Libraries/Microsoft.Extensions.Hosting.Testing/HostingFakesExtensions.cs
+++ b/src/Libraries/Microsoft.Extensions.Hosting.Testing/HostingFakesExtensions.cs
@@ -19,7 +19,7 @@ namespace Microsoft.Extensions.Hosting.Testing;
///
/// Extension methods supporting host unit testing scenarios.
///
-[Experimental]
+[Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
public static class HostingFakesExtensions
{
///
diff --git a/src/Libraries/Microsoft.Extensions.Http.AutoClient/AutoClientAttribute.cs b/src/Libraries/Microsoft.Extensions.Http.AutoClient/AutoClientAttribute.cs
index 0c3323cde5f..43f66cda85e 100644
--- a/src/Libraries/Microsoft.Extensions.Http.AutoClient/AutoClientAttribute.cs
+++ b/src/Libraries/Microsoft.Extensions.Http.AutoClient/AutoClientAttribute.cs
@@ -27,7 +27,7 @@ namespace Microsoft.Extensions.Http.AutoClient;
/// }
///
///
-[Experimental]
+[Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
[AttributeUsage(AttributeTargets.Interface)]
[Conditional("CODE_GENERATION_ATTRIBUTES")]
public sealed class AutoClientAttribute : Attribute
diff --git a/src/Libraries/Microsoft.Extensions.Http.AutoClient/AutoClientException.cs b/src/Libraries/Microsoft.Extensions.Http.AutoClient/AutoClientException.cs
index e244ea0691d..56bdd54dae6 100644
--- a/src/Libraries/Microsoft.Extensions.Http.AutoClient/AutoClientException.cs
+++ b/src/Libraries/Microsoft.Extensions.Http.AutoClient/AutoClientException.cs
@@ -27,7 +27,7 @@ namespace Microsoft.Extensions.Http.AutoClient;
///
///
[SuppressMessage("Design", "CA1032:Implement standard exception constructors", Justification = "Not applicable to this exception")]
-[Experimental]
+[Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
public class AutoClientException : Exception
{
///
diff --git a/src/Libraries/Microsoft.Extensions.Http.AutoClient/AutoClientHttpError.cs b/src/Libraries/Microsoft.Extensions.Http.AutoClient/AutoClientHttpError.cs
index 05b9b713973..a194a4c2d1c 100644
--- a/src/Libraries/Microsoft.Extensions.Http.AutoClient/AutoClientHttpError.cs
+++ b/src/Libraries/Microsoft.Extensions.Http.AutoClient/AutoClientHttpError.cs
@@ -19,7 +19,7 @@ namespace Microsoft.Extensions.Http.AutoClient;
/// When a REST API client fails, it will throw a .
/// This exception contains a instance that holds details like content, headers and status code.
///
-[Experimental]
+[Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
public class AutoClientHttpError
{
///
diff --git a/src/Libraries/Microsoft.Extensions.Http.AutoClient/AutoClientOptions.cs b/src/Libraries/Microsoft.Extensions.Http.AutoClient/AutoClientOptions.cs
index 63a961dcde7..11df36f248c 100644
--- a/src/Libraries/Microsoft.Extensions.Http.AutoClient/AutoClientOptions.cs
+++ b/src/Libraries/Microsoft.Extensions.Http.AutoClient/AutoClientOptions.cs
@@ -21,7 +21,7 @@ namespace Microsoft.Extensions.Http.AutoClient;
/// });
///
///
-[Experimental]
+[Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
public class AutoClientOptions
{
///
diff --git a/src/Libraries/Microsoft.Extensions.Http.AutoClient/BodyAttribute.cs b/src/Libraries/Microsoft.Extensions.Http.AutoClient/BodyAttribute.cs
index d6b3d8bf8d4..697c8806ee8 100644
--- a/src/Libraries/Microsoft.Extensions.Http.AutoClient/BodyAttribute.cs
+++ b/src/Libraries/Microsoft.Extensions.Http.AutoClient/BodyAttribute.cs
@@ -24,7 +24,7 @@ namespace Microsoft.Extensions.Http.AutoClient;
/// }
///
///
-[Experimental]
+[Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
[AttributeUsage(AttributeTargets.Parameter)]
[Conditional("CODE_GENERATION_ATTRIBUTES")]
public sealed class BodyAttribute : Attribute
diff --git a/src/Libraries/Microsoft.Extensions.Http.AutoClient/BodyContentType.cs b/src/Libraries/Microsoft.Extensions.Http.AutoClient/BodyContentType.cs
index 93baae2b791..4a4617cdc0b 100644
--- a/src/Libraries/Microsoft.Extensions.Http.AutoClient/BodyContentType.cs
+++ b/src/Libraries/Microsoft.Extensions.Http.AutoClient/BodyContentType.cs
@@ -8,7 +8,7 @@ namespace Microsoft.Extensions.Http.AutoClient;
///
/// Defines the types of encoding possible for request bodies.
///
-[Experimental]
+[Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
public enum BodyContentType
{
///
diff --git a/src/Libraries/Microsoft.Extensions.Http.AutoClient/HeaderAttribute.cs b/src/Libraries/Microsoft.Extensions.Http.AutoClient/HeaderAttribute.cs
index 48a3d45a679..e1af6b6240f 100644
--- a/src/Libraries/Microsoft.Extensions.Http.AutoClient/HeaderAttribute.cs
+++ b/src/Libraries/Microsoft.Extensions.Http.AutoClient/HeaderAttribute.cs
@@ -23,7 +23,7 @@ namespace Microsoft.Extensions.Http.AutoClient;
/// }
///
///
-[Experimental]
+[Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
[AttributeUsage(AttributeTargets.Parameter)]
[Conditional("CODE_GENERATION_ATTRIBUTES")]
public sealed class HeaderAttribute : Attribute
diff --git a/src/Libraries/Microsoft.Extensions.Http.AutoClient/Methods/DeleteAttribute.cs b/src/Libraries/Microsoft.Extensions.Http.AutoClient/Methods/DeleteAttribute.cs
index 8b2a2fd473f..ab67d7e61f8 100644
--- a/src/Libraries/Microsoft.Extensions.Http.AutoClient/Methods/DeleteAttribute.cs
+++ b/src/Libraries/Microsoft.Extensions.Http.AutoClient/Methods/DeleteAttribute.cs
@@ -29,7 +29,7 @@ namespace Microsoft.Extensions.Http.AutoClient;
/// }
///
///
-[Experimental]
+[Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
[AttributeUsage(AttributeTargets.Method)]
public sealed class DeleteAttribute : Attribute
{
diff --git a/src/Libraries/Microsoft.Extensions.Http.AutoClient/Methods/GetAttribute.cs b/src/Libraries/Microsoft.Extensions.Http.AutoClient/Methods/GetAttribute.cs
index 577a82321e2..29859dac58a 100644
--- a/src/Libraries/Microsoft.Extensions.Http.AutoClient/Methods/GetAttribute.cs
+++ b/src/Libraries/Microsoft.Extensions.Http.AutoClient/Methods/GetAttribute.cs
@@ -29,7 +29,7 @@ namespace Microsoft.Extensions.Http.AutoClient;
/// }
///
///
-[Experimental]
+[Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
[AttributeUsage(AttributeTargets.Method)]
public sealed class GetAttribute : Attribute
{
diff --git a/src/Libraries/Microsoft.Extensions.Http.AutoClient/Methods/HeadAttribute.cs b/src/Libraries/Microsoft.Extensions.Http.AutoClient/Methods/HeadAttribute.cs
index e9121a281b4..7ede1879fc4 100644
--- a/src/Libraries/Microsoft.Extensions.Http.AutoClient/Methods/HeadAttribute.cs
+++ b/src/Libraries/Microsoft.Extensions.Http.AutoClient/Methods/HeadAttribute.cs
@@ -29,7 +29,7 @@ namespace Microsoft.Extensions.Http.AutoClient;
/// }
///
///
-[Experimental]
+[Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
[AttributeUsage(AttributeTargets.Method)]
public sealed class HeadAttribute : Attribute
{
diff --git a/src/Libraries/Microsoft.Extensions.Http.AutoClient/Methods/OptionsAttribute.cs b/src/Libraries/Microsoft.Extensions.Http.AutoClient/Methods/OptionsAttribute.cs
index de23fa8d0f9..11659f78b06 100644
--- a/src/Libraries/Microsoft.Extensions.Http.AutoClient/Methods/OptionsAttribute.cs
+++ b/src/Libraries/Microsoft.Extensions.Http.AutoClient/Methods/OptionsAttribute.cs
@@ -29,7 +29,7 @@ namespace Microsoft.Extensions.Http.AutoClient;
/// }
///
///
-[Experimental]
+[Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
[AttributeUsage(AttributeTargets.Method)]
public sealed class OptionsAttribute : Attribute
{
diff --git a/src/Libraries/Microsoft.Extensions.Http.AutoClient/Methods/PatchAttribute.cs b/src/Libraries/Microsoft.Extensions.Http.AutoClient/Methods/PatchAttribute.cs
index 04e5803ab8d..489259c9c28 100644
--- a/src/Libraries/Microsoft.Extensions.Http.AutoClient/Methods/PatchAttribute.cs
+++ b/src/Libraries/Microsoft.Extensions.Http.AutoClient/Methods/PatchAttribute.cs
@@ -29,7 +29,7 @@ namespace Microsoft.Extensions.Http.AutoClient;
/// }
///
///
-[Experimental]
+[Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
[AttributeUsage(AttributeTargets.Method)]
public sealed class PatchAttribute : Attribute
{
diff --git a/src/Libraries/Microsoft.Extensions.Http.AutoClient/Methods/PostAttribute.cs b/src/Libraries/Microsoft.Extensions.Http.AutoClient/Methods/PostAttribute.cs
index a42a3f6bb16..52385dc5873 100644
--- a/src/Libraries/Microsoft.Extensions.Http.AutoClient/Methods/PostAttribute.cs
+++ b/src/Libraries/Microsoft.Extensions.Http.AutoClient/Methods/PostAttribute.cs
@@ -29,7 +29,7 @@ namespace Microsoft.Extensions.Http.AutoClient;
/// }
///
///
-[Experimental]
+[Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
[AttributeUsage(AttributeTargets.Method)]
public sealed class PostAttribute : Attribute
{
diff --git a/src/Libraries/Microsoft.Extensions.Http.AutoClient/Methods/PutAttribute.cs b/src/Libraries/Microsoft.Extensions.Http.AutoClient/Methods/PutAttribute.cs
index c7de67fa335..9342d15fca2 100644
--- a/src/Libraries/Microsoft.Extensions.Http.AutoClient/Methods/PutAttribute.cs
+++ b/src/Libraries/Microsoft.Extensions.Http.AutoClient/Methods/PutAttribute.cs
@@ -29,7 +29,7 @@ namespace Microsoft.Extensions.Http.AutoClient;
/// }
///
///
-[Experimental]
+[Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
[AttributeUsage(AttributeTargets.Method)]
public sealed class PutAttribute : Attribute
{
diff --git a/src/Libraries/Microsoft.Extensions.Http.AutoClient/Microsoft.Extensions.Http.AutoClient.csproj b/src/Libraries/Microsoft.Extensions.Http.AutoClient/Microsoft.Extensions.Http.AutoClient.csproj
index 5c5b7eca3bc..4d4185e35b1 100644
--- a/src/Libraries/Microsoft.Extensions.Http.AutoClient/Microsoft.Extensions.Http.AutoClient.csproj
+++ b/src/Libraries/Microsoft.Extensions.Http.AutoClient/Microsoft.Extensions.Http.AutoClient.csproj
@@ -6,7 +6,6 @@
- true
true
@@ -25,10 +24,6 @@
-
-
-
-
diff --git a/src/Libraries/Microsoft.Extensions.Http.AutoClient/QueryAttribute.cs b/src/Libraries/Microsoft.Extensions.Http.AutoClient/QueryAttribute.cs
index 0b9b9da47d1..306ad18839d 100644
--- a/src/Libraries/Microsoft.Extensions.Http.AutoClient/QueryAttribute.cs
+++ b/src/Libraries/Microsoft.Extensions.Http.AutoClient/QueryAttribute.cs
@@ -23,7 +23,7 @@ namespace Microsoft.Extensions.Http.AutoClient;
/// }
///
///
-[Experimental]
+[Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
[AttributeUsage(AttributeTargets.Parameter)]
[Conditional("CODE_GENERATION_ATTRIBUTES")]
public sealed class QueryAttribute : Attribute
diff --git a/src/Libraries/Microsoft.Extensions.Http.AutoClient/RequestNameAttribute.cs b/src/Libraries/Microsoft.Extensions.Http.AutoClient/RequestNameAttribute.cs
index e3fbc2a2e8b..48cefbdc1e9 100644
--- a/src/Libraries/Microsoft.Extensions.Http.AutoClient/RequestNameAttribute.cs
+++ b/src/Libraries/Microsoft.Extensions.Http.AutoClient/RequestNameAttribute.cs
@@ -26,7 +26,7 @@ namespace Microsoft.Extensions.Http.AutoClient;
/// }
///
///
-[Experimental]
+[Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
[AttributeUsage(AttributeTargets.Method)]
[Conditional("CODE_GENERATION_ATTRIBUTES")]
public sealed class RequestNameAttribute : Attribute
diff --git a/src/Libraries/Microsoft.Extensions.Http.AutoClient/StaticHeaderAttribute.cs b/src/Libraries/Microsoft.Extensions.Http.AutoClient/StaticHeaderAttribute.cs
index 774d9716267..5c44944c918 100644
--- a/src/Libraries/Microsoft.Extensions.Http.AutoClient/StaticHeaderAttribute.cs
+++ b/src/Libraries/Microsoft.Extensions.Http.AutoClient/StaticHeaderAttribute.cs
@@ -27,7 +27,7 @@ namespace Microsoft.Extensions.Http.AutoClient;
/// }
///
///
-[Experimental]
+[Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
[AttributeUsage(AttributeTargets.Interface | AttributeTargets.Method, AllowMultiple = true)]
[Conditional("CODE_GENERATION_ATTRIBUTES")]
public sealed class StaticHeaderAttribute : Attribute
diff --git a/src/Libraries/Microsoft.Extensions.Http.Resilience/FaultInjection/ContextExtensions.cs b/src/Libraries/Microsoft.Extensions.Http.Resilience/FaultInjection/ContextExtensions.cs
index 7ff798724cc..72f6fc491b8 100644
--- a/src/Libraries/Microsoft.Extensions.Http.Resilience/FaultInjection/ContextExtensions.cs
+++ b/src/Libraries/Microsoft.Extensions.Http.Resilience/FaultInjection/ContextExtensions.cs
@@ -1,4 +1,4 @@
-// Licensed to the .NET Foundation under one or more agreements.
+// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
using System.Diagnostics.CodeAnalysis;
@@ -11,7 +11,7 @@ namespace Microsoft.Extensions.Http.Resilience.FaultInjection;
///
/// Provides extension methods for .
///
-[Experimental]
+[Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
public static class ContextExtensions
{
private const string CallingRequestMessage = "CallingRequestMessage";
diff --git a/src/Libraries/Microsoft.Extensions.Http.Resilience/FaultInjection/HttpClientFaultInjectionExtensions.cs b/src/Libraries/Microsoft.Extensions.Http.Resilience/FaultInjection/HttpClientFaultInjectionExtensions.cs
index a4d5e91c5c8..289b9aed156 100644
--- a/src/Libraries/Microsoft.Extensions.Http.Resilience/FaultInjection/HttpClientFaultInjectionExtensions.cs
+++ b/src/Libraries/Microsoft.Extensions.Http.Resilience/FaultInjection/HttpClientFaultInjectionExtensions.cs
@@ -147,7 +147,7 @@ public static IHttpClientBuilder AddFaultInjectionPolicyHandler(this IHttpClient
///
/// The so that additional calls can be chained.
///
- [Experimental]
+ [Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
public static IHttpClientBuilder AddWeightedFaultInjectionPolicyHandlers(this IHttpClientBuilder httpClientBuilder,
Action weightAssignmentsConfig)
{
@@ -176,7 +176,7 @@ public static IHttpClientBuilder AddWeightedFaultInjectionPolicyHandlers(this IH
///
/// The so that additional calls can be chained.
///
- [Experimental]
+ [Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
[DynamicDependency(
DynamicallyAccessedMemberTypes.PublicProperties | DynamicallyAccessedMemberTypes.PublicParameterlessConstructor,
typeof(FaultPolicyWeightAssignmentsOptions))]
diff --git a/src/Libraries/Microsoft.Extensions.Http.Resilience/Hedging/HedgingEndpointOptions.cs b/src/Libraries/Microsoft.Extensions.Http.Resilience/Hedging/HedgingEndpointOptions.cs
index d3b73a59afa..0e95be87f24 100644
--- a/src/Libraries/Microsoft.Extensions.Http.Resilience/Hedging/HedgingEndpointOptions.cs
+++ b/src/Libraries/Microsoft.Extensions.Http.Resilience/Hedging/HedgingEndpointOptions.cs
@@ -1,10 +1,10 @@
-// Licensed to the .NET Foundation under one or more agreements.
+// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
using System;
using System.ComponentModel.DataAnnotations;
using Microsoft.Extensions.Http.Resilience.Internal.Validators;
-using Microsoft.Extensions.Options.Validation;
+using Microsoft.Extensions.Options;
using Polly.Timeout;
namespace Microsoft.Extensions.Http.Resilience;
diff --git a/src/Libraries/Microsoft.Extensions.Http.Resilience/Hedging/HttpStandardHedgingResilienceOptions.cs b/src/Libraries/Microsoft.Extensions.Http.Resilience/Hedging/HttpStandardHedgingResilienceOptions.cs
index 7f4f560b2d4..e30ce2862ff 100644
--- a/src/Libraries/Microsoft.Extensions.Http.Resilience/Hedging/HttpStandardHedgingResilienceOptions.cs
+++ b/src/Libraries/Microsoft.Extensions.Http.Resilience/Hedging/HttpStandardHedgingResilienceOptions.cs
@@ -1,11 +1,11 @@
-// Licensed to the .NET Foundation under one or more agreements.
+// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
using System;
using System.ComponentModel.DataAnnotations;
using Microsoft.Extensions.Compliance.Classification;
using Microsoft.Extensions.Http.Resilience.Internal.Validators;
-using Microsoft.Extensions.Options.Validation;
+using Microsoft.Extensions.Options;
namespace Microsoft.Extensions.Http.Resilience;
diff --git a/src/Libraries/Microsoft.Extensions.Http.Resilience/Hedging/Internals/Validators/HttpStandardHedgingResilienceOptionsValidator.cs b/src/Libraries/Microsoft.Extensions.Http.Resilience/Hedging/Internals/Validators/HttpStandardHedgingResilienceOptionsValidator.cs
index d9c81573d81..7cc7faa75fd 100644
--- a/src/Libraries/Microsoft.Extensions.Http.Resilience/Hedging/Internals/Validators/HttpStandardHedgingResilienceOptionsValidator.cs
+++ b/src/Libraries/Microsoft.Extensions.Http.Resilience/Hedging/Internals/Validators/HttpStandardHedgingResilienceOptionsValidator.cs
@@ -2,7 +2,6 @@
// The .NET Foundation licenses this file to you under the MIT license.
using Microsoft.Extensions.Options;
-using Microsoft.Extensions.Options.Validation;
namespace Microsoft.Extensions.Http.Resilience.Internal.Validators;
diff --git a/src/Libraries/Microsoft.Extensions.Http.Resilience/Hedging/StandardHedgingHandlerBuilderExtensions.cs b/src/Libraries/Microsoft.Extensions.Http.Resilience/Hedging/StandardHedgingHandlerBuilderExtensions.cs
index acfe72386ae..a51f69f3a82 100644
--- a/src/Libraries/Microsoft.Extensions.Http.Resilience/Hedging/StandardHedgingHandlerBuilderExtensions.cs
+++ b/src/Libraries/Microsoft.Extensions.Http.Resilience/Hedging/StandardHedgingHandlerBuilderExtensions.cs
@@ -1,4 +1,4 @@
-// Licensed to the .NET Foundation under one or more agreements.
+// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
using System;
@@ -65,7 +65,7 @@ public static IStandardHedgingHandlerBuilder Configure(this IStandardHedgingHand
/// The strategy builder.
/// The configure method.
/// The same builder instance.
- [Experimental]
+ [Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
public static IStandardHedgingHandlerBuilder Configure(this IStandardHedgingHandlerBuilder builder, Action configure)
{
_ = Throw.IfNull(builder);
diff --git a/src/Libraries/Microsoft.Extensions.Http.Resilience/Microsoft.Extensions.Http.Resilience.csproj b/src/Libraries/Microsoft.Extensions.Http.Resilience/Microsoft.Extensions.Http.Resilience.csproj
index b63bf4ab1c4..733b5ae0bb8 100644
--- a/src/Libraries/Microsoft.Extensions.Http.Resilience/Microsoft.Extensions.Http.Resilience.csproj
+++ b/src/Libraries/Microsoft.Extensions.Http.Resilience/Microsoft.Extensions.Http.Resilience.csproj
@@ -10,7 +10,6 @@
true
true
true
- true
true
true
false
@@ -28,7 +27,6 @@
-
diff --git a/src/Libraries/Microsoft.Extensions.Http.Resilience/Resilience/HttpStandardResilienceBuilderBuilderExtensions.cs b/src/Libraries/Microsoft.Extensions.Http.Resilience/Resilience/HttpStandardResilienceBuilderBuilderExtensions.cs
index ce8acf3c861..b3cee1fc974 100644
--- a/src/Libraries/Microsoft.Extensions.Http.Resilience/Resilience/HttpStandardResilienceBuilderBuilderExtensions.cs
+++ b/src/Libraries/Microsoft.Extensions.Http.Resilience/Resilience/HttpStandardResilienceBuilderBuilderExtensions.cs
@@ -1,4 +1,4 @@
-// Licensed to the .NET Foundation under one or more agreements.
+// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
using System;
@@ -65,7 +65,7 @@ public static IHttpStandardResilienceStrategyBuilder Configure(this IHttpStandar
/// The configure method.
/// The same builder instance.
#pragma warning disable S3872 // Parameter names should not duplicate the names of their methods
- [Experimental]
+ [Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
public static IHttpStandardResilienceStrategyBuilder Configure(this IHttpStandardResilienceStrategyBuilder builder, Action configure)
#pragma warning restore S3872 // Parameter names should not duplicate the names of their methods
{
diff --git a/src/Libraries/Microsoft.Extensions.Http.Resilience/Resilience/HttpStandardResilienceOptions.cs b/src/Libraries/Microsoft.Extensions.Http.Resilience/Resilience/HttpStandardResilienceOptions.cs
index b3c58506e13..cd3fa7a94cf 100644
--- a/src/Libraries/Microsoft.Extensions.Http.Resilience/Resilience/HttpStandardResilienceOptions.cs
+++ b/src/Libraries/Microsoft.Extensions.Http.Resilience/Resilience/HttpStandardResilienceOptions.cs
@@ -1,10 +1,10 @@
-// Licensed to the .NET Foundation under one or more agreements.
+// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
using System;
using System.ComponentModel.DataAnnotations;
using Microsoft.Extensions.Http.Resilience.Internal;
-using Microsoft.Extensions.Options.Validation;
+using Microsoft.Extensions.Options;
using Polly.Timeout;
namespace Microsoft.Extensions.Http.Resilience;
diff --git a/src/Libraries/Microsoft.Extensions.Http.Resilience/Resilience/Internal/Validators/HttpStandardResilienceOptionsValidator.cs b/src/Libraries/Microsoft.Extensions.Http.Resilience/Resilience/Internal/Validators/HttpStandardResilienceOptionsValidator.cs
index d07c5564bf4..06018537821 100644
--- a/src/Libraries/Microsoft.Extensions.Http.Resilience/Resilience/Internal/Validators/HttpStandardResilienceOptionsValidator.cs
+++ b/src/Libraries/Microsoft.Extensions.Http.Resilience/Resilience/Internal/Validators/HttpStandardResilienceOptionsValidator.cs
@@ -2,7 +2,6 @@
// The .NET Foundation licenses this file to you under the MIT license.
using Microsoft.Extensions.Options;
-using Microsoft.Extensions.Options.Validation;
namespace Microsoft.Extensions.Http.Resilience.Internal.Validators;
diff --git a/src/Libraries/Microsoft.Extensions.Http.Resilience/Routing/EndpointGroup.cs b/src/Libraries/Microsoft.Extensions.Http.Resilience/Routing/EndpointGroup.cs
index 12a43a3959d..2c95550db07 100644
--- a/src/Libraries/Microsoft.Extensions.Http.Resilience/Routing/EndpointGroup.cs
+++ b/src/Libraries/Microsoft.Extensions.Http.Resilience/Routing/EndpointGroup.cs
@@ -2,7 +2,7 @@
// The .NET Foundation licenses this file to you under the MIT license.
using System.Collections.Generic;
-using Microsoft.Extensions.Options.Validation;
+using Microsoft.Extensions.Options;
namespace Microsoft.Extensions.Http.Resilience;
diff --git a/src/Libraries/Microsoft.Extensions.Http.Resilience/Routing/Internal/OrderedGroups/OrderedGroupsRoutingOptionsValidator.cs b/src/Libraries/Microsoft.Extensions.Http.Resilience/Routing/Internal/OrderedGroups/OrderedGroupsRoutingOptionsValidator.cs
index f69a0cd7226..3ba6ed3df24 100644
--- a/src/Libraries/Microsoft.Extensions.Http.Resilience/Routing/Internal/OrderedGroups/OrderedGroupsRoutingOptionsValidator.cs
+++ b/src/Libraries/Microsoft.Extensions.Http.Resilience/Routing/Internal/OrderedGroups/OrderedGroupsRoutingOptionsValidator.cs
@@ -2,7 +2,6 @@
// The .NET Foundation licenses this file to you under the MIT license.
using Microsoft.Extensions.Options;
-using Microsoft.Extensions.Options.Validation;
namespace Microsoft.Extensions.Http.Resilience.Internal.Routing;
diff --git a/src/Libraries/Microsoft.Extensions.Http.Resilience/Routing/Internal/WeightedGroups/WeightedGroupsRoutingOptionsValidator.cs b/src/Libraries/Microsoft.Extensions.Http.Resilience/Routing/Internal/WeightedGroups/WeightedGroupsRoutingOptionsValidator.cs
index 34659cd2bcb..35686af2ba3 100644
--- a/src/Libraries/Microsoft.Extensions.Http.Resilience/Routing/Internal/WeightedGroups/WeightedGroupsRoutingOptionsValidator.cs
+++ b/src/Libraries/Microsoft.Extensions.Http.Resilience/Routing/Internal/WeightedGroups/WeightedGroupsRoutingOptionsValidator.cs
@@ -2,7 +2,6 @@
// The .NET Foundation licenses this file to you under the MIT license.
using Microsoft.Extensions.Options;
-using Microsoft.Extensions.Options.Validation;
namespace Microsoft.Extensions.Http.Resilience.Internal.Routing;
diff --git a/src/Libraries/Microsoft.Extensions.Http.Resilience/Routing/OrderedGroupsRoutingOptions.cs b/src/Libraries/Microsoft.Extensions.Http.Resilience/Routing/OrderedGroupsRoutingOptions.cs
index 0b99daabf7b..6d856ab6345 100644
--- a/src/Libraries/Microsoft.Extensions.Http.Resilience/Routing/OrderedGroupsRoutingOptions.cs
+++ b/src/Libraries/Microsoft.Extensions.Http.Resilience/Routing/OrderedGroupsRoutingOptions.cs
@@ -3,7 +3,7 @@
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
-using Microsoft.Extensions.Options.Validation;
+using Microsoft.Extensions.Options;
namespace Microsoft.Extensions.Http.Resilience;
diff --git a/src/Libraries/Microsoft.Extensions.Http.Resilience/Routing/RoutingStrategyBuilderExtensions.cs b/src/Libraries/Microsoft.Extensions.Http.Resilience/Routing/RoutingStrategyBuilderExtensions.cs
index fbd3530f7c1..f1ef1667a4a 100644
--- a/src/Libraries/Microsoft.Extensions.Http.Resilience/Routing/RoutingStrategyBuilderExtensions.cs
+++ b/src/Libraries/Microsoft.Extensions.Http.Resilience/Routing/RoutingStrategyBuilderExtensions.cs
@@ -67,7 +67,7 @@ public static IRoutingStrategyBuilder ConfigureOrderedGroups(this IRoutingStrate
///
/// The same routing builder instance.
///
- [Experimental]
+ [Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
public static IRoutingStrategyBuilder ConfigureOrderedGroups(this IRoutingStrategyBuilder builder, Action configure)
{
_ = Throw.IfNull(builder);
@@ -121,7 +121,7 @@ public static IRoutingStrategyBuilder ConfigureWeightedGroups(this IRoutingStrat
///
/// The same routing builder instance.
///
- [Experimental]
+ [Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
public static IRoutingStrategyBuilder ConfigureWeightedGroups(this IRoutingStrategyBuilder builder, Action configure)
{
_ = Throw.IfNull(builder);
diff --git a/src/Libraries/Microsoft.Extensions.Http.Resilience/Routing/WeightedGroupsRoutingOptions.cs b/src/Libraries/Microsoft.Extensions.Http.Resilience/Routing/WeightedGroupsRoutingOptions.cs
index 7ce868e494d..5d3bdfa8bdd 100644
--- a/src/Libraries/Microsoft.Extensions.Http.Resilience/Routing/WeightedGroupsRoutingOptions.cs
+++ b/src/Libraries/Microsoft.Extensions.Http.Resilience/Routing/WeightedGroupsRoutingOptions.cs
@@ -3,7 +3,7 @@
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
-using Microsoft.Extensions.Options.Validation;
+using Microsoft.Extensions.Options;
namespace Microsoft.Extensions.Http.Resilience;
diff --git a/src/Libraries/Microsoft.Extensions.Http.Telemetry/Logging/Internal/LoggingOptionsValidator.cs b/src/Libraries/Microsoft.Extensions.Http.Telemetry/Logging/Internal/LoggingOptionsValidator.cs
index 582d87fd874..64103a74b4d 100644
--- a/src/Libraries/Microsoft.Extensions.Http.Telemetry/Logging/Internal/LoggingOptionsValidator.cs
+++ b/src/Libraries/Microsoft.Extensions.Http.Telemetry/Logging/Internal/LoggingOptionsValidator.cs
@@ -2,7 +2,6 @@
// The .NET Foundation licenses this file to you under the MIT license.
using Microsoft.Extensions.Options;
-using Microsoft.Extensions.Options.Validation;
namespace Microsoft.Extensions.Http.Telemetry.Logging.Internal;
diff --git a/src/Libraries/Microsoft.Extensions.Http.Telemetry/Logging/LoggingOptions.cs b/src/Libraries/Microsoft.Extensions.Http.Telemetry/Logging/LoggingOptions.cs
index 0d44db5149a..aa05eb08e3f 100644
--- a/src/Libraries/Microsoft.Extensions.Http.Telemetry/Logging/LoggingOptions.cs
+++ b/src/Libraries/Microsoft.Extensions.Http.Telemetry/Logging/LoggingOptions.cs
@@ -134,7 +134,7 @@ public class LoggingOptions
///
/// The default value is .
///
- [Experimental]
+ [Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
public HttpRouteParameterRedactionMode RequestPathParameterRedactionMode { get; set; } = DefaultPathParameterRedactionMode;
///
diff --git a/src/Libraries/Microsoft.Extensions.Http.Telemetry/Metering/HttpClientMeteringExtensions.cs b/src/Libraries/Microsoft.Extensions.Http.Telemetry/Metering/HttpClientMeteringExtensions.cs
index 7927428efaf..5a96349c2ba 100644
--- a/src/Libraries/Microsoft.Extensions.Http.Telemetry/Metering/HttpClientMeteringExtensions.cs
+++ b/src/Libraries/Microsoft.Extensions.Http.Telemetry/Metering/HttpClientMeteringExtensions.cs
@@ -34,7 +34,7 @@ public static class HttpClientMeteringExtensions
///
/// instance for chaining.
///
- [Experimental]
+ [Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
public static IServiceCollection AddHttpClientMeteringForAllHttpClients(this IServiceCollection services)
{
_ = Throw.IfNull(services);
diff --git a/src/Libraries/Microsoft.Extensions.Http.Telemetry/Metering/HttpMeteringHandler.cs b/src/Libraries/Microsoft.Extensions.Http.Telemetry/Metering/HttpMeteringHandler.cs
index ba946b7198b..309ed468fc2 100644
--- a/src/Libraries/Microsoft.Extensions.Http.Telemetry/Metering/HttpMeteringHandler.cs
+++ b/src/Libraries/Microsoft.Extensions.Http.Telemetry/Metering/HttpMeteringHandler.cs
@@ -49,7 +49,7 @@ public class HttpMeteringHandler : DelegatingHandler
///
/// The meter.
/// Enumerable of outgoing request metric enrichers.
- [Experimental]
+ [Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
public HttpMeteringHandler(
Meter meter,
IEnumerable enrichers)
diff --git a/src/Libraries/Microsoft.Extensions.Http.Telemetry/Metering/HttpRequestResultType.cs b/src/Libraries/Microsoft.Extensions.Http.Telemetry/Metering/HttpRequestResultType.cs
index d6c33a18376..a24204404d5 100644
--- a/src/Libraries/Microsoft.Extensions.Http.Telemetry/Metering/HttpRequestResultType.cs
+++ b/src/Libraries/Microsoft.Extensions.Http.Telemetry/Metering/HttpRequestResultType.cs
@@ -9,7 +9,7 @@ namespace Microsoft.Extensions.Http.Telemetry.Metering;
///
/// Statuses for classifying http request result.
///
-[Experimental]
+[Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
[EnumStrings]
public enum HttpRequestResultType
{
diff --git a/src/Libraries/Microsoft.Extensions.Http.Telemetry/Microsoft.Extensions.Http.Telemetry.csproj b/src/Libraries/Microsoft.Extensions.Http.Telemetry/Microsoft.Extensions.Http.Telemetry.csproj
index 2e1f3b162ae..5da0cb9d370 100644
--- a/src/Libraries/Microsoft.Extensions.Http.Telemetry/Microsoft.Extensions.Http.Telemetry.csproj
+++ b/src/Libraries/Microsoft.Extensions.Http.Telemetry/Microsoft.Extensions.Http.Telemetry.csproj
@@ -8,7 +8,6 @@
true
true
- true
true
true
false
@@ -32,7 +31,6 @@
-
diff --git a/src/Libraries/Microsoft.Extensions.Http.Telemetry/Tracing/HttpClientTracingExtensions.cs b/src/Libraries/Microsoft.Extensions.Http.Telemetry/Tracing/HttpClientTracingExtensions.cs
index 5901f2668f3..85fff0062b3 100644
--- a/src/Libraries/Microsoft.Extensions.Http.Telemetry/Tracing/HttpClientTracingExtensions.cs
+++ b/src/Libraries/Microsoft.Extensions.Http.Telemetry/Tracing/HttpClientTracingExtensions.cs
@@ -82,7 +82,7 @@ public static TracerProviderBuilder AddHttpClientTracing(this TracerProviderBuil
/// The to add this enricher to.
/// for chaining.
/// The argument is .
- [Experimental]
+ [Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
public static IServiceCollection AddHttpClientTraceEnricher(this IServiceCollection services)
where T : class, IHttpClientTraceEnricher
{
@@ -98,7 +98,7 @@ public static IServiceCollection AddHttpClientTraceEnricher(this IServiceColl
/// Enricher to be added.
/// for chaining.
/// The argument or is .
- [Experimental]
+ [Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
public static IServiceCollection AddHttpClientTraceEnricher(this IServiceCollection services, IHttpClientTraceEnricher enricher)
{
_ = Throw.IfNull(services);
diff --git a/src/Libraries/Microsoft.Extensions.Http.Telemetry/Tracing/HttpClientTracingOptions.cs b/src/Libraries/Microsoft.Extensions.Http.Telemetry/Tracing/HttpClientTracingOptions.cs
index ac0e56ff31c..a1b678643a9 100644
--- a/src/Libraries/Microsoft.Extensions.Http.Telemetry/Tracing/HttpClientTracingOptions.cs
+++ b/src/Libraries/Microsoft.Extensions.Http.Telemetry/Tracing/HttpClientTracingOptions.cs
@@ -23,7 +23,7 @@ public class HttpClientTracingOptions
///
/// The default value is .
///
- [Experimental]
+ [Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
public HttpRouteParameterRedactionMode RequestPathParameterRedactionMode { get; set; } = DefaultPathParameterRedactionMode;
///
diff --git a/src/Libraries/Microsoft.Extensions.Http.Telemetry/Tracing/IHttpClientTraceEnricher.netfx.cs b/src/Libraries/Microsoft.Extensions.Http.Telemetry/Tracing/IHttpClientTraceEnricher.netfx.cs
index e557eb5ac59..307325ab00f 100644
--- a/src/Libraries/Microsoft.Extensions.Http.Telemetry/Tracing/IHttpClientTraceEnricher.netfx.cs
+++ b/src/Libraries/Microsoft.Extensions.Http.Telemetry/Tracing/IHttpClientTraceEnricher.netfx.cs
@@ -23,7 +23,7 @@ public interface IHttpClientTraceEnricher
///
/// If your enricher fetches some information from or to enrich HTTP traces, then make sure to check it for .
///
- [Experimental]
+ [Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
void Enrich(Activity activity, HttpWebRequest? webRequest, HttpWebResponse? webResponse);
}
diff --git a/src/Libraries/Microsoft.Extensions.Http.Telemetry/Tracing/IHttpPathRedactor.cs b/src/Libraries/Microsoft.Extensions.Http.Telemetry/Tracing/IHttpPathRedactor.cs
index f15a5465e66..1ec02d6758f 100644
--- a/src/Libraries/Microsoft.Extensions.Http.Telemetry/Tracing/IHttpPathRedactor.cs
+++ b/src/Libraries/Microsoft.Extensions.Http.Telemetry/Tracing/IHttpPathRedactor.cs
@@ -10,7 +10,7 @@ namespace Microsoft.Extensions.Http.Telemetry.Tracing;
///
/// Interface for implementing a redaction mechanism for outgoing HTTP request paths.
///
-[Experimental]
+[Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
public interface IHttpPathRedactor
{
///
diff --git a/src/Libraries/Microsoft.Extensions.Http.Telemetry/Tracing/Internal/HttpClientTracingOptionsValidator.cs b/src/Libraries/Microsoft.Extensions.Http.Telemetry/Tracing/Internal/HttpClientTracingOptionsValidator.cs
index bdae1d856eb..efb9c70c443 100644
--- a/src/Libraries/Microsoft.Extensions.Http.Telemetry/Tracing/Internal/HttpClientTracingOptionsValidator.cs
+++ b/src/Libraries/Microsoft.Extensions.Http.Telemetry/Tracing/Internal/HttpClientTracingOptionsValidator.cs
@@ -2,7 +2,6 @@
// The .NET Foundation licenses this file to you under the MIT license.
using Microsoft.Extensions.Options;
-using Microsoft.Extensions.Options.Validation;
namespace Microsoft.Extensions.Http.Telemetry.Tracing.Internal;
diff --git a/src/Libraries/Microsoft.Extensions.ObjectPool.DependencyInjection/DependencyInjectionPoolOptions.cs b/src/Libraries/Microsoft.Extensions.ObjectPool.DependencyInjection/DependencyInjectionPoolOptions.cs
index cbb398634ee..f5002f122ca 100644
--- a/src/Libraries/Microsoft.Extensions.ObjectPool.DependencyInjection/DependencyInjectionPoolOptions.cs
+++ b/src/Libraries/Microsoft.Extensions.ObjectPool.DependencyInjection/DependencyInjectionPoolOptions.cs
@@ -8,7 +8,7 @@ namespace Microsoft.Extensions.ObjectPool;
///
/// Contains configuration for pools.
///
-[Experimental]
+[Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
public sealed class DependencyInjectionPoolOptions
{
internal const int DefaultCapacity = 1024;
diff --git a/src/Libraries/Microsoft.Extensions.ObjectPool.DependencyInjection/ObjectPoolServiceCollectionExtensions.cs b/src/Libraries/Microsoft.Extensions.ObjectPool.DependencyInjection/ObjectPoolServiceCollectionExtensions.cs
index 2622a9d9958..29ea71e2995 100644
--- a/src/Libraries/Microsoft.Extensions.ObjectPool.DependencyInjection/ObjectPoolServiceCollectionExtensions.cs
+++ b/src/Libraries/Microsoft.Extensions.ObjectPool.DependencyInjection/ObjectPoolServiceCollectionExtensions.cs
@@ -15,7 +15,7 @@ namespace Microsoft.Extensions.ObjectPool;
///
/// Extension methods for adding to DI container.
///
-[Experimental]
+[Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
public static class ObjectPoolServiceCollectionExtensions
{
///
diff --git a/src/Libraries/Microsoft.Extensions.Options.Validation/Microsoft.Extensions.Options.Validation.csproj b/src/Libraries/Microsoft.Extensions.Options.Validation/Microsoft.Extensions.Options.Validation.csproj
deleted file mode 100644
index be466cb0dc0..00000000000
--- a/src/Libraries/Microsoft.Extensions.Options.Validation/Microsoft.Extensions.Options.Validation.csproj
+++ /dev/null
@@ -1,38 +0,0 @@
-
-
- Microsoft.Extensions.Options.Validation
- Support for extended option validation.
- Fundamentals
-
-
-
- true
- true
- true
- true
-
-
-
- normal
- 100
- 95
- 92
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/Libraries/Microsoft.Extensions.Options.Validation/Microsoft.Extensions.Options.Validation.json b/src/Libraries/Microsoft.Extensions.Options.Validation/Microsoft.Extensions.Options.Validation.json
deleted file mode 100644
index 89c2e051c7d..00000000000
--- a/src/Libraries/Microsoft.Extensions.Options.Validation/Microsoft.Extensions.Options.Validation.json
+++ /dev/null
@@ -1,55 +0,0 @@
-{
- "Name": "Microsoft.Extensions.Options.Validation, Version=8.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35",
- "Types": [
- {
- "Type": "sealed class Microsoft.Extensions.Options.Validation.OptionsValidatorAttribute : System.Attribute",
- "Stage": "Stable",
- "Methods": [
- {
- "Member": "Microsoft.Extensions.Options.Validation.OptionsValidatorAttribute.OptionsValidatorAttribute();",
- "Stage": "Stable"
- }
- ]
- },
- {
- "Type": "sealed class Microsoft.Extensions.Options.Validation.ValidateEnumeratedItemsAttribute : System.Attribute",
- "Stage": "Experimental",
- "Methods": [
- {
- "Member": "Microsoft.Extensions.Options.Validation.ValidateEnumeratedItemsAttribute.ValidateEnumeratedItemsAttribute();",
- "Stage": "Experimental"
- },
- {
- "Member": "Microsoft.Extensions.Options.Validation.ValidateEnumeratedItemsAttribute.ValidateEnumeratedItemsAttribute(System.Type validator);",
- "Stage": "Experimental"
- }
- ],
- "Properties": [
- {
- "Member": "System.Type? Microsoft.Extensions.Options.Validation.ValidateEnumeratedItemsAttribute.Validator { get; }",
- "Stage": "Experimental"
- }
- ]
- },
- {
- "Type": "sealed class Microsoft.Extensions.Options.Validation.ValidateObjectMembersAttribute : System.Attribute",
- "Stage": "Stable",
- "Methods": [
- {
- "Member": "Microsoft.Extensions.Options.Validation.ValidateObjectMembersAttribute.ValidateObjectMembersAttribute();",
- "Stage": "Stable"
- },
- {
- "Member": "Microsoft.Extensions.Options.Validation.ValidateObjectMembersAttribute.ValidateObjectMembersAttribute(System.Type validator);",
- "Stage": "Stable"
- }
- ],
- "Properties": [
- {
- "Member": "System.Type? Microsoft.Extensions.Options.Validation.ValidateObjectMembersAttribute.Validator { get; }",
- "Stage": "Stable"
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/src/Libraries/Microsoft.Extensions.Options.Validation/OptionsValidatorAttribute.cs b/src/Libraries/Microsoft.Extensions.Options.Validation/OptionsValidatorAttribute.cs
deleted file mode 100644
index c5a8fa15ba4..00000000000
--- a/src/Libraries/Microsoft.Extensions.Options.Validation/OptionsValidatorAttribute.cs
+++ /dev/null
@@ -1,16 +0,0 @@
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-
-using System;
-using System.Diagnostics;
-
-namespace Microsoft.Extensions.Options.Validation;
-
-///
-/// Triggers the automatic generation of the implementation of at compile time.
-///
-[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct)]
-[Conditional("CODE_GENERATION_ATTRIBUTES")]
-public sealed class OptionsValidatorAttribute : Attribute
-{
-}
diff --git a/src/Libraries/Microsoft.Extensions.Options.Validation/ValidateEnumeratedItemsAttribute.cs b/src/Libraries/Microsoft.Extensions.Options.Validation/ValidateEnumeratedItemsAttribute.cs
deleted file mode 100644
index 11ccd1c22fd..00000000000
--- a/src/Libraries/Microsoft.Extensions.Options.Validation/ValidateEnumeratedItemsAttribute.cs
+++ /dev/null
@@ -1,45 +0,0 @@
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-
-using System;
-using System.Diagnostics.CodeAnalysis;
-using Microsoft.Extensions.Options;
-
-namespace Microsoft.Extensions.Options.Validation;
-
-///
-/// Marks a field or property to be enumerated, and each enumerated object to be validated.
-///
-[AttributeUsage(AttributeTargets.Property | AttributeTargets.Field)]
-[Experimental]
-public sealed class ValidateEnumeratedItemsAttribute : Attribute
-{
- ///
- /// Initializes a new instance of the class.
- ///
- ///
- /// Using this constructor for a field/property tells the code generator to
- /// generate validation for the individual members of the enumerable's type.
- ///
- public ValidateEnumeratedItemsAttribute()
- {
- }
-
- ///
- /// Initializes a new instance of the class.
- ///
- /// A type that implements for the enumerable's type.
- ///
- /// Using this constructor for a field/property tells the code generator to use the given type to validate
- /// the object held by the enumerable.
- ///
- public ValidateEnumeratedItemsAttribute(Type validator)
- {
- Validator = validator;
- }
-
- ///
- /// Gets the type to use to validate the enumerable's objects.
- ///
- public Type? Validator { get; }
-}
diff --git a/src/Libraries/Microsoft.Extensions.Options.Validation/ValidateObjectMembersAttribute.cs b/src/Libraries/Microsoft.Extensions.Options.Validation/ValidateObjectMembersAttribute.cs
deleted file mode 100644
index 6bdd46261f7..00000000000
--- a/src/Libraries/Microsoft.Extensions.Options.Validation/ValidateObjectMembersAttribute.cs
+++ /dev/null
@@ -1,43 +0,0 @@
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-
-using System;
-using Microsoft.Extensions.Options;
-
-namespace Microsoft.Extensions.Options.Validation;
-
-///
-/// Marks a field or property to be validated transitively.
-///
-[AttributeUsage(AttributeTargets.Property | AttributeTargets.Field)]
-public sealed class ValidateObjectMembersAttribute : Attribute
-{
- ///
- /// Initializes a new instance of the class.
- ///
- ///
- /// Using this constructor for a field/property tells the code generator to
- /// generate validation for the individual members of the field/property's type.
- ///
- public ValidateObjectMembersAttribute()
- {
- }
-
- ///
- /// Initializes a new instance of the class.
- ///
- /// A type that implements for the field/property's type.
- ///
- /// Using this constructor for a field/property tells the code generator to use the given type to validate
- /// the object held by the field/property.
- ///
- public ValidateObjectMembersAttribute(Type validator)
- {
- Validator = validator;
- }
-
- ///
- /// Gets the type to use to validate a field or property.
- ///
- public Type? Validator { get; }
-}
diff --git a/src/Libraries/Microsoft.Extensions.Options.Validation/buildTransitive/Microsoft.Extensions.Options.Validation.props b/src/Libraries/Microsoft.Extensions.Options.Validation/buildTransitive/Microsoft.Extensions.Options.Validation.props
deleted file mode 100644
index 7bc91e44385..00000000000
--- a/src/Libraries/Microsoft.Extensions.Options.Validation/buildTransitive/Microsoft.Extensions.Options.Validation.props
+++ /dev/null
@@ -1,2 +0,0 @@
-
-
diff --git a/src/Libraries/Microsoft.Extensions.Options.Validation/buildTransitive/Microsoft.Extensions.Options.Validation.targets b/src/Libraries/Microsoft.Extensions.Options.Validation/buildTransitive/Microsoft.Extensions.Options.Validation.targets
deleted file mode 100644
index ceadfacb28c..00000000000
--- a/src/Libraries/Microsoft.Extensions.Options.Validation/buildTransitive/Microsoft.Extensions.Options.Validation.targets
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/src/Libraries/Microsoft.Extensions.Resilience/FaultInjection/FaultInjectionExtensions.cs b/src/Libraries/Microsoft.Extensions.Resilience/FaultInjection/FaultInjectionExtensions.cs
index 315decc55e3..f57611abe36 100644
--- a/src/Libraries/Microsoft.Extensions.Resilience/FaultInjection/FaultInjectionExtensions.cs
+++ b/src/Libraries/Microsoft.Extensions.Resilience/FaultInjection/FaultInjectionExtensions.cs
@@ -125,7 +125,7 @@ public static Context WithFaultInjection(this Context context, string groupName)
///
/// Any of the parameters are .
///
- [Experimental]
+ [Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
public static Context WithFaultInjection(this Context context, FaultPolicyWeightAssignmentsOptions weightAssignments)
{
_ = Throw.IfNull(context);
diff --git a/src/Libraries/Microsoft.Extensions.Resilience/FaultInjection/FaultInjectionOptionsBuilder.cs b/src/Libraries/Microsoft.Extensions.Resilience/FaultInjection/FaultInjectionOptionsBuilder.cs
index eb126f6615f..93d68bd3c86 100644
--- a/src/Libraries/Microsoft.Extensions.Resilience/FaultInjection/FaultInjectionOptionsBuilder.cs
+++ b/src/Libraries/Microsoft.Extensions.Resilience/FaultInjection/FaultInjectionOptionsBuilder.cs
@@ -126,7 +126,7 @@ public FaultInjectionOptionsBuilder AddException(string key, Exception exception
///
/// is an empty string or .
///
- [Experimental]
+ [Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
public FaultInjectionOptionsBuilder AddCustomResult(string key, object customResult)
{
_ = Throw.IfNull(customResult);
diff --git a/src/Libraries/Microsoft.Extensions.Resilience/FaultInjection/IChaosPolicyFactory.cs b/src/Libraries/Microsoft.Extensions.Resilience/FaultInjection/IChaosPolicyFactory.cs
index f89120b5073..32906ec0217 100644
--- a/src/Libraries/Microsoft.Extensions.Resilience/FaultInjection/IChaosPolicyFactory.cs
+++ b/src/Libraries/Microsoft.Extensions.Resilience/FaultInjection/IChaosPolicyFactory.cs
@@ -40,6 +40,6 @@ public interface IChaosPolicyFactory
///
/// The type of value policies created by this method will inject.
/// A custom result policy, an instance of .
- [Experimental]
+ [Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
public AsyncInjectOutcomePolicy CreateCustomResultPolicy();
}
diff --git a/src/Libraries/Microsoft.Extensions.Resilience/FaultInjection/Options/ChaosPolicyOptionsGroup.cs b/src/Libraries/Microsoft.Extensions.Resilience/FaultInjection/Options/ChaosPolicyOptionsGroup.cs
index 13473760cc1..ee261e4c747 100644
--- a/src/Libraries/Microsoft.Extensions.Resilience/FaultInjection/Options/ChaosPolicyOptionsGroup.cs
+++ b/src/Libraries/Microsoft.Extensions.Resilience/FaultInjection/Options/ChaosPolicyOptionsGroup.cs
@@ -2,7 +2,7 @@
// The .NET Foundation licenses this file to you under the MIT license.
using System.Diagnostics.CodeAnalysis;
-using Microsoft.Extensions.Options.Validation;
+using Microsoft.Extensions.Options;
namespace Microsoft.Extensions.Resilience.FaultInjection;
@@ -42,6 +42,6 @@ public class ChaosPolicyOptionsGroup
/// Gets or sets the custom result policy options of the chaos policy options group.
///
[ValidateObjectMembers]
- [Experimental]
+ [Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
public CustomResultPolicyOptions? CustomResultPolicyOptions { get; set; }
}
diff --git a/src/Libraries/Microsoft.Extensions.Resilience/FaultInjection/Options/CustomResultPolicyOptions.cs b/src/Libraries/Microsoft.Extensions.Resilience/FaultInjection/Options/CustomResultPolicyOptions.cs
index 92cea07fe31..8fd856fbe58 100644
--- a/src/Libraries/Microsoft.Extensions.Resilience/FaultInjection/Options/CustomResultPolicyOptions.cs
+++ b/src/Libraries/Microsoft.Extensions.Resilience/FaultInjection/Options/CustomResultPolicyOptions.cs
@@ -9,7 +9,7 @@ namespace Microsoft.Extensions.Resilience.FaultInjection;
///
/// Custom Result chaos policy options definition.
///
-[Experimental]
+[Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
public class CustomResultPolicyOptions : ChaosPolicyOptionsBase
{
///
@@ -20,7 +20,7 @@ public class CustomResultPolicyOptions : ChaosPolicyOptionsBase
/// from .
/// Default is set to .
///
- [Experimental]
+ [Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
[Required]
public string CustomResultKey { get; set; } = string.Empty;
}
diff --git a/src/Libraries/Microsoft.Extensions.Resilience/FaultInjection/Options/FaultPolicyWeightAssignmentsOptions.cs b/src/Libraries/Microsoft.Extensions.Resilience/FaultInjection/Options/FaultPolicyWeightAssignmentsOptions.cs
index 05254afa450..53daba3e416 100644
--- a/src/Libraries/Microsoft.Extensions.Resilience/FaultInjection/Options/FaultPolicyWeightAssignmentsOptions.cs
+++ b/src/Libraries/Microsoft.Extensions.Resilience/FaultInjection/Options/FaultPolicyWeightAssignmentsOptions.cs
@@ -9,7 +9,7 @@ namespace Microsoft.Extensions.Resilience.FaultInjection;
///
/// Class to contain fault-injection policy weight assignments.
///
-[Experimental]
+[Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
public class FaultPolicyWeightAssignmentsOptions
{
///
diff --git a/src/Libraries/Microsoft.Extensions.Resilience/Microsoft.Extensions.Resilience.csproj b/src/Libraries/Microsoft.Extensions.Resilience/Microsoft.Extensions.Resilience.csproj
index 24fddc1e8f9..4205a709204 100644
--- a/src/Libraries/Microsoft.Extensions.Resilience/Microsoft.Extensions.Resilience.csproj
+++ b/src/Libraries/Microsoft.Extensions.Resilience/Microsoft.Extensions.Resilience.csproj
@@ -8,7 +8,6 @@
true
true
- true
true
true
true
@@ -27,7 +26,6 @@
-
diff --git a/src/Libraries/Microsoft.Extensions.Resilience/Polly/Internals/PipelineId.cs b/src/Libraries/Microsoft.Extensions.Resilience/Polly/Internals/PipelineId.cs
index 94afb13edd6..4c995c9bcc6 100644
--- a/src/Libraries/Microsoft.Extensions.Resilience/Polly/Internals/PipelineId.cs
+++ b/src/Libraries/Microsoft.Extensions.Resilience/Polly/Internals/PipelineId.cs
@@ -9,7 +9,7 @@ namespace Microsoft.Extensions.Resilience.Internal;
///
/// Composite key for the pipeline.
///
-[Experimental]
+[Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
internal sealed record PipelineId(string PipelineName, string PipelineKey, string? ResultType, string PolicyPipelineKey)
{
///
@@ -19,7 +19,7 @@ internal sealed record PipelineId(string PipelineName, string PipelineKey, strin
/// The pipeline name.
/// The pipeline key.
/// The pipeline id instance.
- [Experimental]
+ [Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
public static PipelineId Create(string pipelineName, string pipelineKey)
{
var policyPipelineKey = string.IsNullOrEmpty(pipelineKey) ? $"{typeof(T).Name}-{pipelineName}" : $"{typeof(T).Name}-{pipelineName}-{pipelineKey}";
@@ -33,7 +33,7 @@ public static PipelineId Create(string pipelineName, string pipelineKey)
/// The pipeline name.
/// The pipeline key.
/// The pipeline id instance.
- [Experimental]
+ [Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
public static PipelineId Create(string pipelineName, string pipelineKey)
{
var policyPipelineKey = string.IsNullOrEmpty(pipelineKey) ? pipelineName : $"{pipelineName}-{pipelineKey}";
diff --git a/src/Libraries/Microsoft.Extensions.Resilience/Polly/Internals/Validators/Generated/BulkheadPolicyOptionsValidator.cs b/src/Libraries/Microsoft.Extensions.Resilience/Polly/Internals/Validators/Generated/BulkheadPolicyOptionsValidator.cs
index 933add3b643..936851360e0 100644
--- a/src/Libraries/Microsoft.Extensions.Resilience/Polly/Internals/Validators/Generated/BulkheadPolicyOptionsValidator.cs
+++ b/src/Libraries/Microsoft.Extensions.Resilience/Polly/Internals/Validators/Generated/BulkheadPolicyOptionsValidator.cs
@@ -2,7 +2,6 @@
// The .NET Foundation licenses this file to you under the MIT license.
using Microsoft.Extensions.Options;
-using Microsoft.Extensions.Options.Validation;
using Microsoft.Extensions.Resilience.Options;
namespace Microsoft.Extensions.Resilience.Internal;
diff --git a/src/Libraries/Microsoft.Extensions.Resilience/Polly/Internals/Validators/Generated/CircuitBreakerPolicyOptionsValidator.cs b/src/Libraries/Microsoft.Extensions.Resilience/Polly/Internals/Validators/Generated/CircuitBreakerPolicyOptionsValidator.cs
index b9e44fb2c27..697662e702d 100644
--- a/src/Libraries/Microsoft.Extensions.Resilience/Polly/Internals/Validators/Generated/CircuitBreakerPolicyOptionsValidator.cs
+++ b/src/Libraries/Microsoft.Extensions.Resilience/Polly/Internals/Validators/Generated/CircuitBreakerPolicyOptionsValidator.cs
@@ -2,7 +2,6 @@
// The .NET Foundation licenses this file to you under the MIT license.
using Microsoft.Extensions.Options;
-using Microsoft.Extensions.Options.Validation;
using Microsoft.Extensions.Resilience.Options;
namespace Microsoft.Extensions.Resilience.Internal;
diff --git a/src/Libraries/Microsoft.Extensions.Resilience/Polly/Internals/Validators/Generated/CircuitBreakerPolicyOptionsValidatorT.cs b/src/Libraries/Microsoft.Extensions.Resilience/Polly/Internals/Validators/Generated/CircuitBreakerPolicyOptionsValidatorT.cs
index 1721378ee28..f206d6f5b60 100644
--- a/src/Libraries/Microsoft.Extensions.Resilience/Polly/Internals/Validators/Generated/CircuitBreakerPolicyOptionsValidatorT.cs
+++ b/src/Libraries/Microsoft.Extensions.Resilience/Polly/Internals/Validators/Generated/CircuitBreakerPolicyOptionsValidatorT.cs
@@ -2,7 +2,6 @@
// The .NET Foundation licenses this file to you under the MIT license.
using Microsoft.Extensions.Options;
-using Microsoft.Extensions.Options.Validation;
using Microsoft.Extensions.Resilience.Options;
namespace Microsoft.Extensions.Resilience.Internal;
diff --git a/src/Libraries/Microsoft.Extensions.Resilience/Polly/Internals/Validators/Generated/HedgingPolicyOptionsValidator.cs b/src/Libraries/Microsoft.Extensions.Resilience/Polly/Internals/Validators/Generated/HedgingPolicyOptionsValidator.cs
index 96912a27e8c..c337243b3e8 100644
--- a/src/Libraries/Microsoft.Extensions.Resilience/Polly/Internals/Validators/Generated/HedgingPolicyOptionsValidator.cs
+++ b/src/Libraries/Microsoft.Extensions.Resilience/Polly/Internals/Validators/Generated/HedgingPolicyOptionsValidator.cs
@@ -2,7 +2,6 @@
// The .NET Foundation licenses this file to you under the MIT license.
using Microsoft.Extensions.Options;
-using Microsoft.Extensions.Options.Validation;
using Microsoft.Extensions.Resilience.Options;
namespace Microsoft.Extensions.Resilience.Internal;
diff --git a/src/Libraries/Microsoft.Extensions.Resilience/Polly/Internals/Validators/Generated/HedgingPolicyOptionsValidatorT.cs b/src/Libraries/Microsoft.Extensions.Resilience/Polly/Internals/Validators/Generated/HedgingPolicyOptionsValidatorT.cs
index 7a01df2ddfb..d96ec809a5d 100644
--- a/src/Libraries/Microsoft.Extensions.Resilience/Polly/Internals/Validators/Generated/HedgingPolicyOptionsValidatorT.cs
+++ b/src/Libraries/Microsoft.Extensions.Resilience/Polly/Internals/Validators/Generated/HedgingPolicyOptionsValidatorT.cs
@@ -2,7 +2,6 @@
// The .NET Foundation licenses this file to you under the MIT license.
using Microsoft.Extensions.Options;
-using Microsoft.Extensions.Options.Validation;
using Microsoft.Extensions.Resilience.Options;
namespace Microsoft.Extensions.Resilience.Internal;
diff --git a/src/Libraries/Microsoft.Extensions.Resilience/Polly/Internals/Validators/Generated/RetryPolicyOptionsValidator.cs b/src/Libraries/Microsoft.Extensions.Resilience/Polly/Internals/Validators/Generated/RetryPolicyOptionsValidator.cs
index 79de3d93c12..0e5267a1be0 100644
--- a/src/Libraries/Microsoft.Extensions.Resilience/Polly/Internals/Validators/Generated/RetryPolicyOptionsValidator.cs
+++ b/src/Libraries/Microsoft.Extensions.Resilience/Polly/Internals/Validators/Generated/RetryPolicyOptionsValidator.cs
@@ -2,7 +2,6 @@
// The .NET Foundation licenses this file to you under the MIT license.
using Microsoft.Extensions.Options;
-using Microsoft.Extensions.Options.Validation;
using Microsoft.Extensions.Resilience.Options;
namespace Microsoft.Extensions.Resilience.Internal;
diff --git a/src/Libraries/Microsoft.Extensions.Resilience/Polly/Internals/Validators/Generated/RetryPolicyOptionsValidatorT.cs b/src/Libraries/Microsoft.Extensions.Resilience/Polly/Internals/Validators/Generated/RetryPolicyOptionsValidatorT.cs
index 4f17bf0bbb0..80c1abb7fc0 100644
--- a/src/Libraries/Microsoft.Extensions.Resilience/Polly/Internals/Validators/Generated/RetryPolicyOptionsValidatorT.cs
+++ b/src/Libraries/Microsoft.Extensions.Resilience/Polly/Internals/Validators/Generated/RetryPolicyOptionsValidatorT.cs
@@ -2,7 +2,6 @@
// The .NET Foundation licenses this file to you under the MIT license.
using Microsoft.Extensions.Options;
-using Microsoft.Extensions.Options.Validation;
using Microsoft.Extensions.Resilience.Options;
namespace Microsoft.Extensions.Resilience.Internal;
diff --git a/src/Libraries/Microsoft.Extensions.Resilience/Polly/Internals/Validators/Generated/TimeoutPolicyOptionsValidator.cs b/src/Libraries/Microsoft.Extensions.Resilience/Polly/Internals/Validators/Generated/TimeoutPolicyOptionsValidator.cs
index a12aee93c2c..adfd092cebf 100644
--- a/src/Libraries/Microsoft.Extensions.Resilience/Polly/Internals/Validators/Generated/TimeoutPolicyOptionsValidator.cs
+++ b/src/Libraries/Microsoft.Extensions.Resilience/Polly/Internals/Validators/Generated/TimeoutPolicyOptionsValidator.cs
@@ -2,7 +2,6 @@
// The .NET Foundation licenses this file to you under the MIT license.
using Microsoft.Extensions.Options;
-using Microsoft.Extensions.Options.Validation;
using Microsoft.Extensions.Resilience.Options;
namespace Microsoft.Extensions.Resilience.Internal;
diff --git a/src/Libraries/Microsoft.Extensions.Resilience/Polly/ResilienceDimensions.cs b/src/Libraries/Microsoft.Extensions.Resilience/Polly/ResilienceDimensions.cs
index 52705a74e0a..a4343075435 100644
--- a/src/Libraries/Microsoft.Extensions.Resilience/Polly/ResilienceDimensions.cs
+++ b/src/Libraries/Microsoft.Extensions.Resilience/Polly/ResilienceDimensions.cs
@@ -15,77 +15,77 @@ namespace Microsoft.Extensions.Resilience;
/// Constants are standardized in MS Common Schema.
///
// Avoid changing const values in this class by all means. Such a breaking change would break customer's monitoring.
-[Experimental]
+[Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
[EditorBrowsable(EditorBrowsableState.Never)]
public static class ResilienceDimensions
{
///
/// Pipeline name.
///
- [Experimental]
+ [Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
[EditorBrowsable(EditorBrowsableState.Never)]
public const string PipelineName = "pipeline_name";
///
/// Pipeline key.
///
- [Experimental]
+ [Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
[EditorBrowsable(EditorBrowsableState.Never)]
public const string PipelineKey = "pipeline_key";
///
/// Result type.
///
- [Experimental]
+ [Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
[EditorBrowsable(EditorBrowsableState.Never)]
public const string ResultType = "result_type";
///
/// Policy name.
///
- [Experimental]
+ [Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
[EditorBrowsable(EditorBrowsableState.Never)]
public const string PolicyName = "policy_name";
///
/// Event name.
///
- [Experimental]
+ [Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
[EditorBrowsable(EditorBrowsableState.Never)]
public const string EventName = "event_name";
///
/// Failure source.
///
- [Experimental]
+ [Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
[EditorBrowsable(EditorBrowsableState.Never)]
public const string FailureSource = "failure_source";
///
/// Failure reason.
///
- [Experimental]
+ [Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
[EditorBrowsable(EditorBrowsableState.Never)]
public const string FailureReason = "failure_reason";
///
/// Failure summary.
///
- [Experimental]
+ [Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
[EditorBrowsable(EditorBrowsableState.Never)]
public const string FailureSummary = "failure_summary";
///
/// Dependency name.
///
- [Experimental]
+ [Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
[EditorBrowsable(EditorBrowsableState.Never)]
public const string DependencyName = "dep_name";
///
/// Request name.
///
- [Experimental]
+ [Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
[EditorBrowsable(EditorBrowsableState.Never)]
public const string RequestName = "req_name";
@@ -93,7 +93,7 @@ public static class ResilienceDimensions
/// Gets a list of all dimension names.
///
/// A read-only of all dimension names.
- [Experimental]
+ [Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
[EditorBrowsable(EditorBrowsableState.Never)]
public static IReadOnlyList DimensionNames { get; } =
Array.AsReadOnly(new[]
diff --git a/src/Libraries/Microsoft.Extensions.Resilience/Resilience/Internal/OptionsBuilderExtensions.cs b/src/Libraries/Microsoft.Extensions.Resilience/Resilience/Internal/OptionsBuilderExtensions.cs
index 0bff0195411..2a7fd66022a 100644
--- a/src/Libraries/Microsoft.Extensions.Resilience/Resilience/Internal/OptionsBuilderExtensions.cs
+++ b/src/Libraries/Microsoft.Extensions.Resilience/Resilience/Internal/OptionsBuilderExtensions.cs
@@ -13,7 +13,7 @@ namespace Microsoft.Extensions.Resilience.Internal;
///
/// Extensions for .
///
-[Experimental]
+[Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
internal static class OptionsBuilderExtensions
{
///
diff --git a/src/Libraries/Microsoft.Extensions.Resilience/Resilience/Internal/ResiliencePipelineBuilderExtensions.cs b/src/Libraries/Microsoft.Extensions.Resilience/Resilience/Internal/ResiliencePipelineBuilderExtensions.cs
index bc3e5c58506..9a6106c6e0b 100644
--- a/src/Libraries/Microsoft.Extensions.Resilience/Resilience/Internal/ResiliencePipelineBuilderExtensions.cs
+++ b/src/Libraries/Microsoft.Extensions.Resilience/Resilience/Internal/ResiliencePipelineBuilderExtensions.cs
@@ -15,7 +15,7 @@ namespace Microsoft.Extensions.Resilience.Internal;
/// Pub-internal extension methods for the .
///
/// Do not use this class directly, it's reserved for internal use and can change at any time.
-[Experimental]
+[Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
internal static class ResiliencePipelineBuilderExtensions
{
///
diff --git a/src/Libraries/Microsoft.Extensions.Resilience/Resilience/Internal/ResiliencePipelineFactoryOptionsValidatorT.cs b/src/Libraries/Microsoft.Extensions.Resilience/Resilience/Internal/ResiliencePipelineFactoryOptionsValidatorT.cs
index 12b23fc8587..11d677c1883 100644
--- a/src/Libraries/Microsoft.Extensions.Resilience/Resilience/Internal/ResiliencePipelineFactoryOptionsValidatorT.cs
+++ b/src/Libraries/Microsoft.Extensions.Resilience/Resilience/Internal/ResiliencePipelineFactoryOptionsValidatorT.cs
@@ -2,7 +2,6 @@
// The .NET Foundation licenses this file to you under the MIT license.
using Microsoft.Extensions.Options;
-using Microsoft.Extensions.Options.Validation;
namespace Microsoft.Extensions.Resilience.Internal;
diff --git a/src/Libraries/Microsoft.Extensions.Telemetry.Abstractions/Http/TelemetryConstants.cs b/src/Libraries/Microsoft.Extensions.Telemetry.Abstractions/Http/TelemetryConstants.cs
index 7ccb595318c..e942a25099d 100644
--- a/src/Libraries/Microsoft.Extensions.Telemetry.Abstractions/Http/TelemetryConstants.cs
+++ b/src/Libraries/Microsoft.Extensions.Telemetry.Abstractions/Http/TelemetryConstants.cs
@@ -28,12 +28,12 @@ public static class TelemetryConstants
///
/// Header for client application name, sent on an outgoing http call.
///
- [Experimental]
+ [Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
public const string ClientApplicationNameHeader = "X-ClientApplication";
///
/// Header for server application name, sent on a http request.
///
- [Experimental]
+ [Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
public const string ServerApplicationNameHeader = "X-ServerApplication";
}
diff --git a/src/Libraries/Microsoft.Extensions.Telemetry.Abstractions/Logging/LogMethodAttribute.cs b/src/Libraries/Microsoft.Extensions.Telemetry.Abstractions/Logging/LogMethodAttribute.cs
index 5942a141091..8e7659d3cc2 100644
--- a/src/Libraries/Microsoft.Extensions.Telemetry.Abstractions/Logging/LogMethodAttribute.cs
+++ b/src/Libraries/Microsoft.Extensions.Telemetry.Abstractions/Logging/LogMethodAttribute.cs
@@ -266,7 +266,7 @@ public LogMethodAttribute(int eventId)
/// }
///
///
- [Experimental]
+ [Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
public LogMethodAttribute()
{
EventId = 0;
diff --git a/src/Libraries/Microsoft.Extensions.Telemetry.Abstractions/Metering/MeterT.cs b/src/Libraries/Microsoft.Extensions.Telemetry.Abstractions/Metering/MeterT.cs
index 6726b6cd6d2..3f2f6a034ab 100644
--- a/src/Libraries/Microsoft.Extensions.Telemetry.Abstractions/Metering/MeterT.cs
+++ b/src/Libraries/Microsoft.Extensions.Telemetry.Abstractions/Metering/MeterT.cs
@@ -12,13 +12,13 @@ namespace Microsoft.Extensions.Telemetry.Metering;
/// A meter class where the meter name is derived from the specified type name.
///
/// The type whose name is used as the meter name.
-[Experimental]
+[Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
public class Meter : Meter
{
///
/// Initializes a new instance of the class.
///
- [Experimental]
+ [Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
public Meter()
: base(typeof(TMeterName).FullName!)
{
diff --git a/src/Libraries/Microsoft.Extensions.Telemetry.Abstractions/Metering/MeteringExtensions.cs b/src/Libraries/Microsoft.Extensions.Telemetry.Abstractions/Metering/MeteringExtensions.cs
index e69dbb13093..a4f6354dabc 100644
--- a/src/Libraries/Microsoft.Extensions.Telemetry.Abstractions/Metering/MeteringExtensions.cs
+++ b/src/Libraries/Microsoft.Extensions.Telemetry.Abstractions/Metering/MeteringExtensions.cs
@@ -17,7 +17,7 @@ public static class MeteringExtensions
///
/// The dependency injection container to register metering into.
/// The value of .
- [Experimental]
+ [Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
public static IServiceCollection RegisterMetering(this IServiceCollection services)
{
services.TryAdd(ServiceDescriptor.Singleton(typeof(Meter<>), typeof(Meter<>)));
diff --git a/src/Libraries/Microsoft.Extensions.Telemetry.Testing/Metering/CollectedMeasurement.cs b/src/Libraries/Microsoft.Extensions.Telemetry.Testing/Metering/CollectedMeasurement.cs
index c3624db32c0..687a62b44d7 100644
--- a/src/Libraries/Microsoft.Extensions.Telemetry.Testing/Metering/CollectedMeasurement.cs
+++ b/src/Libraries/Microsoft.Extensions.Telemetry.Testing/Metering/CollectedMeasurement.cs
@@ -14,7 +14,7 @@ namespace Microsoft.Extensions.Telemetry.Testing.Metering;
/// Represents a single measurement performed by an instrument.
///
/// The type of metric measurement value.
-[Experimental]
+[Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
[DebuggerDisplay("{DebuggerToString(),nq}")]
public sealed class CollectedMeasurement
where T : struct
diff --git a/src/Libraries/Microsoft.Extensions.Telemetry.Testing/Metering/MeasurementExtensions.cs b/src/Libraries/Microsoft.Extensions.Telemetry.Testing/Metering/MeasurementExtensions.cs
index 9986306f002..ee8bed03241 100644
--- a/src/Libraries/Microsoft.Extensions.Telemetry.Testing/Metering/MeasurementExtensions.cs
+++ b/src/Libraries/Microsoft.Extensions.Telemetry.Testing/Metering/MeasurementExtensions.cs
@@ -11,7 +11,7 @@ namespace Microsoft.Extensions.Telemetry.Testing.Metering;
///
/// Extensions to simplify working with lists of measurements.
///
-[Experimental]
+[Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
public static class MeasurementExtensions
{
///
diff --git a/src/Libraries/Microsoft.Extensions.Telemetry.Testing/Metering/MetricCollector.cs b/src/Libraries/Microsoft.Extensions.Telemetry.Testing/Metering/MetricCollector.cs
index 4d162b9b5ab..cdf8405b73f 100644
--- a/src/Libraries/Microsoft.Extensions.Telemetry.Testing/Metering/MetricCollector.cs
+++ b/src/Libraries/Microsoft.Extensions.Telemetry.Testing/Metering/MetricCollector.cs
@@ -1,4 +1,4 @@
-// Licensed to the .NET Foundation under one or more agreements.
+// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
using System;
@@ -17,7 +17,7 @@ namespace Microsoft.Extensions.Telemetry.Testing.Metering;
/// Collects the measurements published from an or .
///
/// The type of metric data being recorded.
-[Experimental]
+[Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
[DebuggerDisplay("{_measurements.Count} measurements")]
public sealed class MetricCollector : IDisposable
where T : struct
diff --git a/src/Libraries/Microsoft.Extensions.Telemetry/Logging/LoggerProvider.cs b/src/Libraries/Microsoft.Extensions.Telemetry/Logging/LoggerProvider.cs
index b913abc9027..7a724330783 100644
--- a/src/Libraries/Microsoft.Extensions.Telemetry/Logging/LoggerProvider.cs
+++ b/src/Libraries/Microsoft.Extensions.Telemetry/Logging/LoggerProvider.cs
@@ -19,7 +19,7 @@ namespace Microsoft.Extensions.Telemetry.Logging;
/// OpenTelemetry Logger provider class.
///
[ProviderAlias("R9")]
-[Experimental]
+[Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
public sealed class LoggerProvider : BaseProvider, ILoggerProvider, ISupportExternalScope
{
private const int ProcessorShutdownGracePeriodInMs = 5000;
diff --git a/src/Libraries/Microsoft.Extensions.Telemetry/Logging/LoggingOptions.cs b/src/Libraries/Microsoft.Extensions.Telemetry/Logging/LoggingOptions.cs
index 1188d2f7e11..8cdc35b2251 100644
--- a/src/Libraries/Microsoft.Extensions.Telemetry/Logging/LoggingOptions.cs
+++ b/src/Libraries/Microsoft.Extensions.Telemetry/Logging/LoggingOptions.cs
@@ -59,7 +59,7 @@ public class LoggingOptions
///
/// When set to a value less than 2 KB or greater than 32 KB, an exception will be thrown.
///
- [Experimental]
+ [Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
[Range(MinDefinedStackTraceLength, MaxDefinedStackTraceLength, ErrorMessage = "Maximum stack trace length should be between 2kb and 32kb")]
public int MaxStackTraceLength { get; set; } = DefaultStackTraceLength;
}
diff --git a/src/Libraries/Microsoft.Extensions.Telemetry/Logging/LoggingOptionsValidator.cs b/src/Libraries/Microsoft.Extensions.Telemetry/Logging/LoggingOptionsValidator.cs
index 9d9489c9a66..3f396c504e6 100644
--- a/src/Libraries/Microsoft.Extensions.Telemetry/Logging/LoggingOptionsValidator.cs
+++ b/src/Libraries/Microsoft.Extensions.Telemetry/Logging/LoggingOptionsValidator.cs
@@ -2,7 +2,6 @@
// The .NET Foundation licenses this file to you under the MIT license.
using Microsoft.Extensions.Options;
-using Microsoft.Extensions.Options.Validation;
namespace Microsoft.Extensions.Telemetry.Logging;
diff --git a/src/Libraries/Microsoft.Extensions.Telemetry/Metering.Collectors.EventCounters/EventCountersCollectorOptions.cs b/src/Libraries/Microsoft.Extensions.Telemetry/Metering.Collectors.EventCounters/EventCountersCollectorOptions.cs
index 2bb199698a3..d9be1869744 100644
--- a/src/Libraries/Microsoft.Extensions.Telemetry/Metering.Collectors.EventCounters/EventCountersCollectorOptions.cs
+++ b/src/Libraries/Microsoft.Extensions.Telemetry/Metering.Collectors.EventCounters/EventCountersCollectorOptions.cs
@@ -69,7 +69,7 @@ public class EventCountersCollectorOptions
/// EventSource: "Microsoft-AspNetCore-Server-Kestrel", Counters:
/// - "connection-queue-length", "request-queue-length".
///
- [Experimental]
+ [Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
public bool IncludeRecommendedDefault { get; set; }
#if NET5_0_OR_GREATER
diff --git a/src/Libraries/Microsoft.Extensions.Telemetry/Metering.Collectors.EventCounters/Internal/EventCountersCollectorOptionsValidator.cs b/src/Libraries/Microsoft.Extensions.Telemetry/Metering.Collectors.EventCounters/Internal/EventCountersCollectorOptionsValidator.cs
index 8eb3e85bc89..0c70de10791 100644
--- a/src/Libraries/Microsoft.Extensions.Telemetry/Metering.Collectors.EventCounters/Internal/EventCountersCollectorOptionsValidator.cs
+++ b/src/Libraries/Microsoft.Extensions.Telemetry/Metering.Collectors.EventCounters/Internal/EventCountersCollectorOptionsValidator.cs
@@ -2,7 +2,6 @@
// The .NET Foundation licenses this file to you under the MIT license.
using Microsoft.Extensions.Options;
-using Microsoft.Extensions.Options.Validation;
namespace Microsoft.Extensions.Telemetry.Metering.Internal;
diff --git a/src/Libraries/Microsoft.Extensions.Telemetry/Metering/MeteringOptions.cs b/src/Libraries/Microsoft.Extensions.Telemetry/Metering/MeteringOptions.cs
index 76b4234fd6f..141a982c8f4 100644
--- a/src/Libraries/Microsoft.Extensions.Telemetry/Metering/MeteringOptions.cs
+++ b/src/Libraries/Microsoft.Extensions.Telemetry/Metering/MeteringOptions.cs
@@ -9,7 +9,7 @@ namespace Microsoft.Extensions.Telemetry.Metering;
///
/// Options for configuring metering.
///
-[Experimental]
+[Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
public class MeteringOptions
{
///
diff --git a/src/Libraries/Microsoft.Extensions.Telemetry/Metering/OTelMeteringExtensions.cs b/src/Libraries/Microsoft.Extensions.Telemetry/Metering/OTelMeteringExtensions.cs
index 688762886bc..3fccb6ef825 100644
--- a/src/Libraries/Microsoft.Extensions.Telemetry/Metering/OTelMeteringExtensions.cs
+++ b/src/Libraries/Microsoft.Extensions.Telemetry/Metering/OTelMeteringExtensions.cs
@@ -14,7 +14,7 @@ namespace Microsoft.Extensions.Telemetry.Metering;
///
/// Metering extensions for OpenTelemetry based metrics.
///
-[Experimental]
+[Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
public static class OTelMeteringExtensions
{
///
@@ -22,7 +22,7 @@ public static class OTelMeteringExtensions
///
/// instance.
/// Returns for chaining.
- [Experimental]
+ [Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
public static MeterProviderBuilder AddMetering(
this MeterProviderBuilder builder)
{
@@ -35,7 +35,7 @@ public static MeterProviderBuilder AddMetering(
/// instance.
/// Configuration section that contains .
/// Returns for chaining.
- [Experimental]
+ [Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
public static MeterProviderBuilder AddMetering(
this MeterProviderBuilder builder,
IConfigurationSection configurationSection)
@@ -52,7 +52,7 @@ public static MeterProviderBuilder AddMetering(
/// instance.
/// The configuration delegate.
/// Returns for chaining.
- [Experimental]
+ [Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
public static MeterProviderBuilder AddMetering(
this MeterProviderBuilder builder,
Action configure)
diff --git a/src/Libraries/Microsoft.Extensions.Telemetry/Microsoft.Extensions.Telemetry.csproj b/src/Libraries/Microsoft.Extensions.Telemetry/Microsoft.Extensions.Telemetry.csproj
index 026721a8001..31890f7372b 100644
--- a/src/Libraries/Microsoft.Extensions.Telemetry/Microsoft.Extensions.Telemetry.csproj
+++ b/src/Libraries/Microsoft.Extensions.Telemetry/Microsoft.Extensions.Telemetry.csproj
@@ -16,7 +16,6 @@
true
true
true
- true
@@ -29,12 +28,12 @@
-
+
diff --git a/src/Libraries/Microsoft.Extensions.Telemetry/Telemetry.Internal/IHttpRouteFormatter.cs b/src/Libraries/Microsoft.Extensions.Telemetry/Telemetry.Internal/IHttpRouteFormatter.cs
index f109271773f..258e30afd33 100644
--- a/src/Libraries/Microsoft.Extensions.Telemetry/Telemetry.Internal/IHttpRouteFormatter.cs
+++ b/src/Libraries/Microsoft.Extensions.Telemetry/Telemetry.Internal/IHttpRouteFormatter.cs
@@ -21,7 +21,7 @@ internal interface IHttpRouteFormatter
/// Strategy to decide how parameters are redacted.
/// Dictionary of parameters with their data classification that needs to be redacted.
/// Returns formatted path with sensitive parameter values redacted.
- [Experimental]
+ [Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
string Format(string httpRoute, string httpPath, HttpRouteParameterRedactionMode redactionMode, IReadOnlyDictionary parametersToRedact);
///
@@ -32,6 +32,6 @@ internal interface IHttpRouteFormatter
/// Strategy to decide how parameters are redacted.
/// Dictionary of parameters with their data classification that needs to be redacted.
/// Returns formatted path with sensitive parameter values redacted.
- [Experimental]
+ [Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
string Format(in ParsedRouteSegments routeSegments, string httpPath, HttpRouteParameterRedactionMode redactionMode, IReadOnlyDictionary parametersToRedact);
}
diff --git a/src/Libraries/Microsoft.Extensions.Telemetry/Telemetry/TelemetryExtensions.cs b/src/Libraries/Microsoft.Extensions.Telemetry/Telemetry/TelemetryExtensions.cs
index 1d106201a91..911759ca8d1 100644
--- a/src/Libraries/Microsoft.Extensions.Telemetry/Telemetry/TelemetryExtensions.cs
+++ b/src/Libraries/Microsoft.Extensions.Telemetry/Telemetry/TelemetryExtensions.cs
@@ -25,7 +25,7 @@ public static class TelemetryExtensions
///
/// object.
/// Metadata for the request.
- [Experimental]
+ [Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
public static void SetRequestMetadata(this HttpWebRequest request, RequestMetadata metadata)
{
_ = Throw.IfNull(request);
@@ -58,7 +58,7 @@ public static void SetRequestMetadata(this HttpRequestMessage request, RequestMe
///
/// object.
/// Request metadata.
- [Experimental]
+ [Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
public static RequestMetadata? GetRequestMetadata(this HttpWebRequest request)
{
_ = Throw.IfNull(request);
diff --git a/src/Libraries/Microsoft.Extensions.Telemetry/Tracing.Sampling/Internal/SamplingOptionsAutoValidator.cs b/src/Libraries/Microsoft.Extensions.Telemetry/Tracing.Sampling/Internal/SamplingOptionsAutoValidator.cs
index 083fd1c358f..6ad25eb2e93 100644
--- a/src/Libraries/Microsoft.Extensions.Telemetry/Tracing.Sampling/Internal/SamplingOptionsAutoValidator.cs
+++ b/src/Libraries/Microsoft.Extensions.Telemetry/Tracing.Sampling/Internal/SamplingOptionsAutoValidator.cs
@@ -2,7 +2,6 @@
// The .NET Foundation licenses this file to you under the MIT license.
using Microsoft.Extensions.Options;
-using Microsoft.Extensions.Options.Validation;
namespace Microsoft.Extensions.Telemetry.Tracing.Internal;
diff --git a/src/Libraries/Microsoft.Extensions.Telemetry/Tracing.Sampling/ParentBasedSamplerOptions.cs b/src/Libraries/Microsoft.Extensions.Telemetry/Tracing.Sampling/ParentBasedSamplerOptions.cs
index aee2e9731ea..b77dffb8eba 100644
--- a/src/Libraries/Microsoft.Extensions.Telemetry/Tracing.Sampling/ParentBasedSamplerOptions.cs
+++ b/src/Libraries/Microsoft.Extensions.Telemetry/Tracing.Sampling/ParentBasedSamplerOptions.cs
@@ -1,7 +1,7 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
-using Microsoft.Extensions.Options.Validation;
+using Microsoft.Extensions.Options;
namespace Microsoft.Extensions.Telemetry.Tracing;
diff --git a/src/Libraries/Microsoft.Extensions.Telemetry/Tracing.Sampling/SamplingOptions.cs b/src/Libraries/Microsoft.Extensions.Telemetry/Tracing.Sampling/SamplingOptions.cs
index 5c109e773bc..a91b19dcce8 100644
--- a/src/Libraries/Microsoft.Extensions.Telemetry/Tracing.Sampling/SamplingOptions.cs
+++ b/src/Libraries/Microsoft.Extensions.Telemetry/Tracing.Sampling/SamplingOptions.cs
@@ -1,7 +1,7 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
-using Microsoft.Extensions.Options.Validation;
+using Microsoft.Extensions.Options;
namespace Microsoft.Extensions.Telemetry.Tracing;
diff --git a/src/Libraries/Microsoft.Extensions.Telemetry/Tracing/TracingEnricherExtensions.cs b/src/Libraries/Microsoft.Extensions.Telemetry/Tracing/TracingEnricherExtensions.cs
index 36cc62c5b47..76854f58e0d 100644
--- a/src/Libraries/Microsoft.Extensions.Telemetry/Tracing/TracingEnricherExtensions.cs
+++ b/src/Libraries/Microsoft.Extensions.Telemetry/Tracing/TracingEnricherExtensions.cs
@@ -53,7 +53,7 @@ public static TracerProviderBuilder AddTraceEnricher(this TracerProviderBuilder
/// The to add this enricher to.
/// The so that additional calls can be chained.
/// The argument is .
- [Experimental]
+ [Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
public static IServiceCollection AddTraceEnricher(this IServiceCollection services)
where T : class, ITraceEnricher
{
@@ -71,7 +71,7 @@ public static IServiceCollection AddTraceEnricher(this IServiceCollection ser
/// Enricher to be added.
/// The so that additional calls can be chained.
/// The argument or is .
- [Experimental]
+ [Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
public static IServiceCollection AddTraceEnricher(this IServiceCollection services, ITraceEnricher enricher)
{
_ = Throw.IfNull(services);
diff --git a/src/Libraries/Microsoft.Extensions.TimeProvider.Testing/FakeTimeProvider.cs b/src/Libraries/Microsoft.Extensions.TimeProvider.Testing/FakeTimeProvider.cs
index 55c8310299b..b45f50d29f8 100644
--- a/src/Libraries/Microsoft.Extensions.TimeProvider.Testing/FakeTimeProvider.cs
+++ b/src/Libraries/Microsoft.Extensions.TimeProvider.Testing/FakeTimeProvider.cs
@@ -1,4 +1,4 @@
-// Licensed to the .NET Foundation under one or more agreements.
+// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
using System;
@@ -30,7 +30,7 @@ public class FakeTimeProvider : TimeProvider
/// This creates a provider whose time is initially set to midnight January 1st 2000.
/// The provider is set to not automatically advance time each time it is read.
///
- [Experimental]
+ [Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
public FakeTimeProvider()
{
Start = _now;
@@ -43,7 +43,7 @@ public FakeTimeProvider()
///
/// The provider is set to not automatically advance time each time it is read.
///
- [Experimental]
+ [Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
public FakeTimeProvider(DateTimeOffset startDateTime)
{
_ = Throw.IfLessThan(startDateTime.Ticks, 0);
@@ -55,7 +55,7 @@ public FakeTimeProvider(DateTimeOffset startDateTime)
///
/// Gets the starting date and time for this provider.
///
- [Experimental]
+ [Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
public DateTimeOffset Start { get; }
///
@@ -64,7 +64,7 @@ public FakeTimeProvider(DateTimeOffset startDateTime)
///
/// This defaults to .
///
- [Experimental]
+ [Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
public TimeSpan AutoAdvanceAmount
{
get => _autoAdvanceAmount;
@@ -94,7 +94,7 @@ public override DateTimeOffset GetUtcNow()
/// Sets the date and time in the UTC time zone.
///
/// The date and time in the UTC time zone.
- [Experimental]
+ [Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
public void SetUtcNow(DateTimeOffset value)
{
lock (Waiters)
@@ -120,7 +120,7 @@ public void SetUtcNow(DateTimeOffset value)
/// marches forward automatically in hardware, for the fake time provider the application is responsible for
/// doing this explicitly by calling this method.
///
- [Experimental]
+ [Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
public void Advance(TimeSpan delta)
{
_ = Throw.IfLessThan(delta.Ticks, 0);
@@ -155,7 +155,7 @@ public override long GetTimestamp()
/// Sets the local time zone.
///
/// The local time zone.
- [Experimental]
+ [Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
public void SetLocalTimeZone(TimeZoneInfo localTimeZone) => _localTimeZone = localTimeZone;
///
diff --git a/src/ToBeMoved/Hosting.StartupInitialization/Hosting.StartupInitialization.csproj b/src/ToBeMoved/Hosting.StartupInitialization/Hosting.StartupInitialization.csproj
index 58974307386..6efbe56cc68 100644
--- a/src/ToBeMoved/Hosting.StartupInitialization/Hosting.StartupInitialization.csproj
+++ b/src/ToBeMoved/Hosting.StartupInitialization/Hosting.StartupInitialization.csproj
@@ -6,7 +6,6 @@
Provides infrastructure to execute asynchronous functions on server startups
Fundamentals
Application Bootstrap
- true
true
true
true
@@ -28,7 +27,6 @@
-
diff --git a/src/ToBeMoved/Hosting.StartupInitialization/Internal/StartupInitializationBuilder.cs b/src/ToBeMoved/Hosting.StartupInitialization/Internal/StartupInitializationBuilder.cs
index 6c70493a12c..c82281e9cae 100644
--- a/src/ToBeMoved/Hosting.StartupInitialization/Internal/StartupInitializationBuilder.cs
+++ b/src/ToBeMoved/Hosting.StartupInitialization/Internal/StartupInitializationBuilder.cs
@@ -6,7 +6,6 @@
using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection.Extensions;
-using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Options.Validation;
using Microsoft.Shared.Diagnostics;
diff --git a/src/ToBeMoved/Hosting.StartupInitialization/Internal/StartupInitializationOptionsValidator.cs b/src/ToBeMoved/Hosting.StartupInitialization/Internal/StartupInitializationOptionsValidator.cs
index a15058129ea..20b926881e5 100644
--- a/src/ToBeMoved/Hosting.StartupInitialization/Internal/StartupInitializationOptionsValidator.cs
+++ b/src/ToBeMoved/Hosting.StartupInitialization/Internal/StartupInitializationOptionsValidator.cs
@@ -2,7 +2,6 @@
// The .NET Foundation licenses this file to you under the MIT license.
using Microsoft.Extensions.Options;
-using Microsoft.Extensions.Options.Validation;
namespace Microsoft.Extensions.Hosting.Testing.Internal;
diff --git a/src/ToBeMoved/Hosting.StartupInitialization/StartupInitializationExtensions.cs b/src/ToBeMoved/Hosting.StartupInitialization/StartupInitializationExtensions.cs
index 31276de6c92..00371c48685 100644
--- a/src/ToBeMoved/Hosting.StartupInitialization/StartupInitializationExtensions.cs
+++ b/src/ToBeMoved/Hosting.StartupInitialization/StartupInitializationExtensions.cs
@@ -6,6 +6,7 @@
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting.Testing.Internal;
+using Microsoft.Extensions.Options;
using Microsoft.Extensions.Options.Validation;
using Microsoft.Shared.Diagnostics;
diff --git a/src/ToBeMoved/HttpClient.SocketHandling/HttpClient.SocketHandling.csproj b/src/ToBeMoved/HttpClient.SocketHandling/HttpClient.SocketHandling.csproj
index 288becef1e3..03b7a3f67da 100644
--- a/src/ToBeMoved/HttpClient.SocketHandling/HttpClient.SocketHandling.csproj
+++ b/src/ToBeMoved/HttpClient.SocketHandling/HttpClient.SocketHandling.csproj
@@ -7,7 +7,6 @@
Fundamentals
HTTP Processing
$(NetCoreTargetFrameworks)
- true
true
@@ -23,7 +22,6 @@
-
diff --git a/src/ToBeMoved/HttpClient.SocketHandling/SocketsHttpHandlerOptionsValidator.cs b/src/ToBeMoved/HttpClient.SocketHandling/SocketsHttpHandlerOptionsValidator.cs
index c5c343d8ef2..4a05de361d1 100644
--- a/src/ToBeMoved/HttpClient.SocketHandling/SocketsHttpHandlerOptionsValidator.cs
+++ b/src/ToBeMoved/HttpClient.SocketHandling/SocketsHttpHandlerOptionsValidator.cs
@@ -2,7 +2,6 @@
// The .NET Foundation licenses this file to you under the MIT license.
using Microsoft.Extensions.Options;
-using Microsoft.Extensions.Options.Validation;
namespace Microsoft.Extensions.HttpClient.SocketHandling;
diff --git a/test/Analyzers/Microsoft.Extensions.ExtraAnalyzers/Common/UsingExperimentalApiAnalyzerTest.cs b/test/Analyzers/Microsoft.Extensions.ExtraAnalyzers/Common/UsingExperimentalApiAnalyzerTest.cs
index 972b29df052..3e2771f0a7e 100644
--- a/test/Analyzers/Microsoft.Extensions.ExtraAnalyzers/Common/UsingExperimentalApiAnalyzerTest.cs
+++ b/test/Analyzers/Microsoft.Extensions.ExtraAnalyzers/Common/UsingExperimentalApiAnalyzerTest.cs
@@ -13,19 +13,12 @@ public static class UsingExperimentalApiAnalyzerTest
[MemberData(nameof(TestData))]
public static async Task Common(string source)
{
- const string AttributeSource = @"
- namespace System.Diagnostics.CodeAnalysis
- {
- public sealed class ExperimentalAttribute : System.Attribute { }
- }";
-
var d = await RoslynTestUtils.RunAnalyzer(
new UsingExperimentalApiAnalyzer(),
null,
new[]
{
source,
- AttributeSource,
}).ConfigureAwait(false);
var expectedCount = source.CountSpans();
@@ -67,7 +60,7 @@ public void Test()
}
}
- [Experimental]
+ [Experimental(diagnosticId: ""TBD"", UrlFormat = ""TBD"")]
public class ExpClass
{
}
@@ -81,7 +74,7 @@ public class ExpClass
using System.Diagnostics.CodeAnalysis;
#pragma warning disable R9A029
- [assembly: Experimental]
+ [assembly: Experimental(diagnosticId: ""TBD"", UrlFormat = ""TBD"")]
#pragma warning restore R9A029
public class TestClass : /*0+*/ExpClass/*-0*/
diff --git a/test/Analyzers/Microsoft.Extensions.LocalAnalyzers/ApiLifecycle/ApiLifecycleAnalyzerTest.cs b/test/Analyzers/Microsoft.Extensions.LocalAnalyzers/ApiLifecycle/ApiLifecycleAnalyzerTest.cs
index 4f81b21e6fd..379a0fe65df 100644
--- a/test/Analyzers/Microsoft.Extensions.LocalAnalyzers/ApiLifecycle/ApiLifecycleAnalyzerTest.cs
+++ b/test/Analyzers/Microsoft.Extensions.LocalAnalyzers/ApiLifecycle/ApiLifecycleAnalyzerTest.cs
@@ -228,7 +228,7 @@ namespace Microsoft.Extensions.Security.Identity;
using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
- [Experimental]
+ [Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
public class AdditionalContext2
{
protected IReadOnlyDictionary Features { get; } = new Dictionary();
@@ -347,7 +347,7 @@ public sealed class BufferWriter2 : IBufferWriter
private T[] _buffer = Array.Empty();
- [Experimental]
+ [Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
public BufferWriter2() { }
public ReadOnlyMemory WrittenMemory => _buffer.AsMemory(0, WrittenCount);
@@ -474,7 +474,7 @@ public interface IClassifiedData
public DataClass DataClass { get; }
}
- [Experimental]
+ [Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
public enum DataClass
{
@@ -562,10 +562,10 @@ namespace SomePackage;
using System.Diagnostics.CodeAnalysis;
- [Experimental]
+ [Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
public static class Test
{
- [Experimental]
+ [Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
public static void Load()
{
// Intentionally left empty.
@@ -707,7 +707,7 @@ namespace Microsoft.Extensions.Diagnostics;
using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
- [Experimental]
+ [Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
public class WindowsCountersOptions2
{
[Required]
@@ -728,7 +728,7 @@ namespace Test;
using System.Diagnostics.CodeAnalysis;
- [Experimental]
+ [Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
public sealed class BufferWriter
{
internal const int MaxArrayLength = 0X7FEF_FFFF; // Copy of the internal Array.MaxArrayLength const
@@ -751,7 +751,7 @@ namespace Inheritance;
using System.Diagnostics.CodeAnalysis;
- [Experimental]
+ [Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
public class BaseType
{
public virtual int P => 1;
@@ -774,7 +774,7 @@ namespace Nested;
using System.Diagnostics.CodeAnalysis;
- [Experimental]
+ [Experimental(diagnosticId: "TBD", UrlFormat = "TBD")]
public class OuterType
{
public int ReadValue(string s) => new InnerType().P;
diff --git a/test/Generators/Microsoft.Gen.OptionsValidation/Generated/Common/CustomAttrTests.cs b/test/Generators/Microsoft.Gen.OptionsValidation/Generated/Common/CustomAttrTests.cs
deleted file mode 100644
index 9770924b5b1..00000000000
--- a/test/Generators/Microsoft.Gen.OptionsValidation/Generated/Common/CustomAttrTests.cs
+++ /dev/null
@@ -1,39 +0,0 @@
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-
-using CustomAttr;
-using Microsoft.Extensions.Options;
-using Xunit;
-
-namespace Microsoft.Gen.OptionsValidation.Test;
-
-public class CustomAttrTests
-{
- [Fact]
- public void Invalid()
- {
- var firstModel = new FirstModel
- {
- P1 = 'a',
- P2 = 'x',
- };
-
- var validator = new FirstValidator();
- var vr = validator.Validate("CustomAttr", firstModel);
-
- Utils.VerifyValidateOptionsResult(vr, 2, "P1", "P2");
- }
-
- [Fact]
- public void Valid()
- {
- var firstModel = new FirstModel
- {
- P1 = 'A',
- P2 = 'A',
- };
-
- var validator = new FirstValidator();
- Assert.Equal(ValidateOptionsResult.Success, validator.Validate("CustomAttr", firstModel));
- }
-}
diff --git a/test/Generators/Microsoft.Gen.OptionsValidation/Generated/Common/EnumerationTests.cs b/test/Generators/Microsoft.Gen.OptionsValidation/Generated/Common/EnumerationTests.cs
deleted file mode 100644
index d2f9bddca28..00000000000
--- a/test/Generators/Microsoft.Gen.OptionsValidation/Generated/Common/EnumerationTests.cs
+++ /dev/null
@@ -1,93 +0,0 @@
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-
-using Enumeration;
-using Microsoft.Extensions.Options;
-using Xunit;
-
-namespace Microsoft.Gen.OptionsValidation.Test;
-
-public class EnumerationTests
-{
- [Fact]
- public void Invalid()
- {
- var secondModelC = new SecondModel
- {
- P6 = "1234",
- };
-
- var secondModelB = new SecondModel
- {
- P6 = "12345",
- };
-
- var secondModel = new SecondModel
- {
- P6 = "1234",
- };
-
- ThirdModel? thirdModel = new ThirdModel
- {
- Value = 11
- };
-
- var firstModel = new FirstModel
- {
- P1 = new[] { secondModel },
- P2 = new[] { secondModel, secondModelB, secondModelC },
- P51 = new[] { thirdModel }
- };
-
- var validator = default(FirstValidator);
- var vr = validator.Validate("Enumeration", firstModel);
-
- Utils.VerifyValidateOptionsResult(vr, 4, "P1[0].P6", "P2[0].P6", "P2[2].P6", "P51[0].Value");
- }
-
- [Fact]
- public void NullElement()
- {
- var firstModel = new FirstModel
- {
- P1 = new[] { (SecondModel)null! },
- };
-
- var validator = default(FirstValidator);
- var vr = validator.Validate("Enumeration", firstModel);
-
- Utils.VerifyValidateOptionsResult(vr, 1, "P1[0]");
- }
-
- [Fact]
- public void Valid()
- {
- var secondModel = new SecondModel
- {
- P6 = "12345",
- };
-
- var thirdModelA = new ThirdModel
- {
- Value = 2
- };
-
- var thirdModelB = new ThirdModel
- {
- Value = 9
- };
-
- var firstModel = new FirstModel
- {
- P1 = new[] { secondModel },
- P2 = new[] { secondModel },
- P3 = new[] { (SecondModel?)null },
- P4 = new[] { thirdModelA, thirdModelB },
- P5 = new ThirdModel?[] { thirdModelA, default },
- P51 = new ThirdModel?[] { thirdModelB, default }
- };
-
- var validator = default(FirstValidator);
- Assert.Equal(ValidateOptionsResult.Success, validator.Validate("Enumeration", firstModel));
- }
-}
diff --git a/test/Generators/Microsoft.Gen.OptionsValidation/Generated/Common/FieldTests.cs b/test/Generators/Microsoft.Gen.OptionsValidation/Generated/Common/FieldTests.cs
deleted file mode 100644
index 3656d4f359e..00000000000
--- a/test/Generators/Microsoft.Gen.OptionsValidation/Generated/Common/FieldTests.cs
+++ /dev/null
@@ -1,62 +0,0 @@
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-
-using Fields;
-using Microsoft.Extensions.Options;
-using Xunit;
-
-namespace Microsoft.Gen.OptionsValidation.Test;
-
-public class FieldTests
-{
- [Fact]
- public void Invalid()
- {
- var thirdModel = new ThirdModel
- {
- P5 = "1234",
- };
-
- var secondModel = new SecondModel
- {
- P4 = "1234",
- };
-
- var firstModel = new FirstModel
- {
- P1 = "1234",
- P2 = secondModel,
- P3 = thirdModel,
- };
-
- var validator = default(FirstValidator);
- var vr = validator.Validate("Fields", firstModel);
-
- Utils.VerifyValidateOptionsResult(vr, 3, "P1", "P2.P4", "P3.P5");
- }
-
- [Fact]
- public void Valid()
- {
- var thirdModel = new ThirdModel
- {
- P5 = "12345",
- P6 = 1
- };
-
- var secondModel = new SecondModel
- {
- P4 = "12345",
- };
-
- var firstModel = new FirstModel
- {
- P1 = "12345",
- P2 = secondModel,
- P3 = thirdModel,
- };
-
- var validator = default(FirstValidator);
- Assert.Equal(ValidateOptionsResult.Success, validator.Validate("Fields", firstModel));
- }
-}
diff --git a/test/Generators/Microsoft.Gen.OptionsValidation/Generated/Common/FunnyStringsTests.cs b/test/Generators/Microsoft.Gen.OptionsValidation/Generated/Common/FunnyStringsTests.cs
deleted file mode 100644
index 29b62a5c4b4..00000000000
--- a/test/Generators/Microsoft.Gen.OptionsValidation/Generated/Common/FunnyStringsTests.cs
+++ /dev/null
@@ -1,37 +0,0 @@
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-
-using FunnyStrings;
-using Microsoft.Extensions.Options;
-using Xunit;
-
-namespace Microsoft.Gen.OptionsValidation.Test;
-
-public class FunnyStringsTests
-{
- [Fact]
- public void Invalid()
- {
- var firstModel = new FirstModel
- {
- P1 = "XXX",
- };
-
- var validator = default(FirstValidator);
- var vr = validator.Validate("FunnyStrings", firstModel);
-
- Utils.VerifyValidateOptionsResult(vr, 1, "P1");
- }
-
- [Fact]
- public void Valid()
- {
- var firstModel = new FirstModel
- {
- P1 = "\"\r\n\\",
- };
-
- var validator = default(FirstValidator);
- Assert.Equal(ValidateOptionsResult.Success, validator.Validate("FunnyStrings", firstModel));
- }
-}
diff --git a/test/Generators/Microsoft.Gen.OptionsValidation/Generated/Common/GenericsTests.cs b/test/Generators/Microsoft.Gen.OptionsValidation/Generated/Common/GenericsTests.cs
deleted file mode 100644
index 838fe529689..00000000000
--- a/test/Generators/Microsoft.Gen.OptionsValidation/Generated/Common/GenericsTests.cs
+++ /dev/null
@@ -1,49 +0,0 @@
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-
-using Generics;
-using Microsoft.Extensions.Options;
-using Xunit;
-
-namespace Microsoft.Gen.OptionsValidation.Test;
-
-public class GenericsTests
-{
- [Fact]
- public void Invalid()
- {
- var secondModel = new SecondModel
- {
- P4 = "1234",
- };
-
- var firstModel = new FirstModel
- {
- P1 = "1234",
- P3 = secondModel,
- };
-
- var validator = new FirstValidator();
- var vr = validator.Validate("Generics", firstModel);
-
- Utils.VerifyValidateOptionsResult(vr, 2, "P1", "P3.P4");
- }
-
- [Fact]
- public void Valid()
- {
- var secondModel = new SecondModel
- {
- P4 = "12345",
- };
-
- var firstModel = new FirstModel
- {
- P1 = "12345",
- P3 = secondModel,
- };
-
- var validator = new FirstValidator();
- Assert.Equal(ValidateOptionsResult.Success, validator.Validate("Generics", firstModel));
- }
-}
diff --git a/test/Generators/Microsoft.Gen.OptionsValidation/Generated/Common/MultiModelValidatorTests.cs b/test/Generators/Microsoft.Gen.OptionsValidation/Generated/Common/MultiModelValidatorTests.cs
deleted file mode 100644
index fff83ced918..00000000000
--- a/test/Generators/Microsoft.Gen.OptionsValidation/Generated/Common/MultiModelValidatorTests.cs
+++ /dev/null
@@ -1,49 +0,0 @@
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-
-using Microsoft.Extensions.Options;
-using MultiModelValidator;
-using Xunit;
-
-namespace Microsoft.Gen.OptionsValidation.Test;
-
-public class MultiModelValidatorTests
-{
- [Fact]
- public void Invalid()
- {
- var secondModel = new SecondModel
- {
- P3 = "1234",
- };
-
- var firstModel = new FirstModel
- {
- P1 = "1234",
- P2 = secondModel,
- };
-
- var validator = default(MultiValidator);
- var vr = validator.Validate("MultiModelValidator", firstModel);
-
- Utils.VerifyValidateOptionsResult(vr, 2, "P1", "P2.P3");
- }
-
- [Fact]
- public void Valid()
- {
- var secondModel = new SecondModel
- {
- P3 = "12345",
- };
-
- var firstModel = new FirstModel
- {
- P1 = "12345",
- P2 = secondModel,
- };
-
- var validator = default(MultiValidator);
- Assert.Equal(ValidateOptionsResult.Success, validator.Validate("MultiModelValidator", firstModel));
- }
-}
diff --git a/test/Generators/Microsoft.Gen.OptionsValidation/Generated/Common/NestedTests.cs b/test/Generators/Microsoft.Gen.OptionsValidation/Generated/Common/NestedTests.cs
deleted file mode 100644
index 8a4b04361a3..00000000000
--- a/test/Generators/Microsoft.Gen.OptionsValidation/Generated/Common/NestedTests.cs
+++ /dev/null
@@ -1,67 +0,0 @@
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-
-#if ROSLYN_4_0_OR_GREATER
-
-using Microsoft.Extensions.Options;
-using Nested;
-using Xunit;
-
-namespace Microsoft.Gen.OptionsValidation.Test;
-
-public class NestedTests
-{
- [Fact]
- public void Invalid()
- {
- var thirdModel = new Container1.ThirdModel
- {
- P6 = "1234",
- };
-
- var secondModel = new Container1.SecondModel
- {
- P5 = "1234",
- };
-
- var firstModel = new Container1.FirstModel
- {
- P1 = "1234",
- P2 = secondModel,
- P3 = thirdModel,
- P4 = secondModel,
- };
-
- var validator = default(Container2.Container3.FirstValidator);
- var vr = validator.Validate("Nested", firstModel);
-
- Utils.VerifyValidateOptionsResult(vr, 4, "P1", "P2.P5", "P3.P6", "P4.P5");
- }
-
- [Fact]
- public void Valid()
- {
- var thirdModel = new Container1.ThirdModel
- {
- P6 = "12345",
- };
-
- var secondModel = new Container1.SecondModel
- {
- P5 = "12345",
- };
-
- var firstModel = new Container1.FirstModel
- {
- P1 = "12345",
- P2 = secondModel,
- P3 = thirdModel,
- P4 = secondModel,
- };
-
- var validator = default(Container2.Container3.FirstValidator);
- Assert.Equal(ValidateOptionsResult.Success, validator.Validate("Nested", firstModel));
- }
-}
-
-#endif
diff --git a/test/Generators/Microsoft.Gen.OptionsValidation/Generated/Common/NoNamespaceTests.cs b/test/Generators/Microsoft.Gen.OptionsValidation/Generated/Common/NoNamespaceTests.cs
deleted file mode 100644
index 5530b639531..00000000000
--- a/test/Generators/Microsoft.Gen.OptionsValidation/Generated/Common/NoNamespaceTests.cs
+++ /dev/null
@@ -1,60 +0,0 @@
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-
-using Microsoft.Extensions.Options;
-using Xunit;
-
-namespace Microsoft.Gen.OptionsValidation.Test;
-
-public class NoNamespaceTests
-{
- [Fact]
- public void Invalid()
- {
- var thirdModel = new ThirdModelNoNamespace
- {
- P5 = "1234",
- };
-
- var secondModel = new SecondModelNoNamespace
- {
- P4 = "1234",
- };
-
- var firstModel = new FirstModelNoNamespace
- {
- P1 = "1234",
- P2 = secondModel,
- P3 = thirdModel,
- };
-
- var validator = new FirstValidatorNoNamespace();
- var vr = validator.Validate("NoNamespace", firstModel);
-
- Utils.VerifyValidateOptionsResult(vr, 3, "P1", "P2.P4", "P3.P5");
- }
-
- [Fact]
- public void Valid()
- {
- var thirdModel = new ThirdModelNoNamespace
- {
- P5 = "12345",
- };
-
- var secondModel = new SecondModelNoNamespace
- {
- P4 = "12345",
- };
-
- var firstModel = new FirstModelNoNamespace
- {
- P1 = "12345",
- P2 = secondModel,
- P3 = thirdModel,
- };
-
- var validator = new FirstValidatorNoNamespace();
- Assert.Equal(ValidateOptionsResult.Success, validator.Validate("NoNamespace", firstModel));
- }
-}
diff --git a/test/Generators/Microsoft.Gen.OptionsValidation/Generated/Common/OptionsValidationTests.cs b/test/Generators/Microsoft.Gen.OptionsValidation/Generated/Common/OptionsValidationTests.cs
deleted file mode 100644
index 49941010f1a..00000000000
--- a/test/Generators/Microsoft.Gen.OptionsValidation/Generated/Common/OptionsValidationTests.cs
+++ /dev/null
@@ -1,442 +0,0 @@
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-
-using System;
-using System.ComponentModel.DataAnnotations;
-using System.Globalization;
-using Microsoft.Extensions.Options;
-using TestClasses.OptionsValidation;
-using Xunit;
-
-namespace Microsoft.Gen.OptionsValidation.Test;
-
-public class OptionsValidationTests
-{
- [Fact]
- public void RequiredAttributeValid()
- {
- var validModel = new RequiredAttributeModel
- {
- Val = "val"
- };
-
- var modelValidator = new RequiredAttributeModelValidator();
- var result = modelValidator.Validate(nameof(validModel), validModel);
-
- Assert.Equal(ValidateOptionsResult.Success, result);
- }
-
- [Fact]
- public void RequiredAttributeInvalid()
- {
- var validModel = new RequiredAttributeModel
- {
- Val = null
- };
-
- var modelValidator = new RequiredAttributeModelValidator();
- Utils.VerifyValidateOptionsResult(modelValidator.Validate(nameof(validModel), validModel), 1);
- }
-
- [Fact]
- public void RegularExpressionAttributeValid()
- {
- var validModel = new RegularExpressionAttributeModel
- {
- Val = " "
- };
-
- var modelValidator = new RegularExpressionAttributeModelValidator();
- var result = modelValidator.Validate(nameof(validModel), validModel);
-
- Assert.Equal(ValidateOptionsResult.Success, result);
- }
-
- [Fact]
- public void RegularExpressionAttributeInvalid()
- {
- var validModel = new RegularExpressionAttributeModel
- {
- Val = "Not Space"
- };
-
- var modelValidator = new RegularExpressionAttributeModelValidator();
- Utils.VerifyValidateOptionsResult(modelValidator.Validate(nameof(validModel), validModel), 1);
- }
-
- [Fact]
- public void EmailAttributeValid()
- {
- var validModel = new EmailAttributeModel
- {
- Val = "abc@xyz.com"
- };
-
- var modelValidator = new EmailAttributeModelValidator();
- var result = modelValidator.Validate(nameof(validModel), validModel);
-
- Assert.Equal(ValidateOptionsResult.Success, result);
- }
-
- [Fact]
- public void EmailAttributeInvalid()
- {
- var validModel = new EmailAttributeModel
- {
- Val = "Not Email Address"
- };
-
- var modelValidator = new EmailAttributeModelValidator();
- Utils.VerifyValidateOptionsResult(modelValidator.Validate(nameof(validModel), validModel), 1);
- }
-
- [Fact]
- public void CustomValidationAttributeValid()
- {
- var validModel = new CustomValidationAttributeModel
- {
- Val = "Pass"
- };
-
- var modelValidator = new CustomValidationAttributeModelValidator();
- var result = modelValidator.Validate(nameof(validModel), validModel);
-
- Assert.Equal(ValidateOptionsResult.Success, result);
- }
-
- [Fact]
- public void CustomValidationAttributeInvalid()
- {
- var validModel = new CustomValidationAttributeModel
- {
- Val = "NOT PASS"
- };
-
- var modelValidator = new CustomValidationAttributeModelValidator();
- Assert.Throws(() => modelValidator.Validate(nameof(validModel), validModel));
- }
-
- [Fact]
- public void DataTypeAttributeValid()
- {
- var validModel = new DataTypeAttributeModel
- {
- Val = "ABC"
- };
-
- var modelValidator = new DataTypeAttributeModelValidator();
- var result = modelValidator.Validate(nameof(validModel), validModel);
-
- Assert.Equal(ValidateOptionsResult.Success, result);
- }
-
- [Fact]
- public void RangeAttributeModelIntValid()
- {
- var validModel = new RangeAttributeModelInt
- {
- Val = 1
- };
-
- var modelValidator = new RangeAttributeModelIntValidator();
- var result = modelValidator.Validate(nameof(validModel), validModel);
-
- Assert.Equal(ValidateOptionsResult.Success, result);
- }
-
- [Fact]
- public void RangeAttributeModelIntInvalid()
- {
- var validModel = new RangeAttributeModelInt
- {
- Val = 0
- };
-
- var modelValidator = new RangeAttributeModelIntValidator();
- Utils.VerifyValidateOptionsResult(modelValidator.Validate(nameof(validModel), validModel), 1);
- }
-
- [Fact]
- public void RangeAttributeModelDoubleValid()
- {
- var validModel = new RangeAttributeModelDouble
- {
- Val = 0.6
- };
-
- var modelValidator = new RangeAttributeModelDoubleValidator();
- var result = modelValidator.Validate(nameof(validModel), validModel);
-
- Assert.Equal(ValidateOptionsResult.Success, result);
- }
-
- [Fact]
- public void RangeAttributeModelDoubleInvalid()
- {
- var validModel = new RangeAttributeModelDouble
- {
- Val = 0.1
- };
-
- var modelValidator = new RangeAttributeModelDoubleValidator();
- Utils.VerifyValidateOptionsResult(modelValidator.Validate(nameof(validModel), validModel), 1);
- }
-
- [Fact]
- public void RangeAttributeModelDateValid()
- {
-#if NETCOREAPP3_1_OR_GREATER
- // Setting non-invariant culture to check that
- // attribute's "ParseLimitsInInvariantCulture" property
- // was set up correctly in the validator:
- CultureInfo.CurrentCulture = new CultureInfo("cs");
-#else
- // Setting invariant culture to avoid DateTime parsing discrepancies:
- CultureInfo.CurrentCulture = CultureInfo.InvariantCulture;
-#endif
- var validModel = new RangeAttributeModelDate
- {
- Val = new DateTime(day: 3, month: 1, year: 2004)
- };
-
- var modelValidator = new RangeAttributeModelDateValidator();
- var result = modelValidator.Validate(nameof(validModel), validModel);
-
- Assert.Equal(ValidateOptionsResult.Success, result);
- }
-
- [Fact]
- public void RangeAttributeModelDateInvalid()
- {
- var validModel = new RangeAttributeModelDate
- {
- Val = new DateTime(day: 1, month: 1, year: 2004)
- };
-
- var modelValidator = new RangeAttributeModelDateValidator();
- Utils.VerifyValidateOptionsResult(modelValidator.Validate(nameof(validModel), validModel), 1);
- }
-
- [Fact]
- public void MultipleAttributeModelValid()
- {
- var validModel = new MultipleAttributeModel
- {
- Val1 = "abc",
- Val2 = 2,
- Val3 = 4,
- Val4 = 6
- };
-
- var modelValidator = new MultipleAttributeModelValidator();
- var result = modelValidator.Validate(nameof(validModel), validModel);
-
- Assert.Equal(ValidateOptionsResult.Success, result);
- }
-
- [Theory]
- [InlineData("", 2, 4, 7)]
- [InlineData(null, 2, 4, 7)]
- [InlineData("abc", 0, 4, 9)]
- [InlineData("abc", 2, 8, 8)]
- [InlineData("abc", 2, 4, 10)]
- public void MultipleAttributeModelInvalid(string val1, int val2, int val3, int val4)
- {
- var validModel = new MultipleAttributeModel
- {
- Val1 = val1,
- Val2 = val2,
- Val3 = val3,
- Val4 = val4
- };
-
- var modelValidator = new MultipleAttributeModelValidator();
- Utils.VerifyValidateOptionsResult(modelValidator.Validate(nameof(validModel), validModel), 1);
- }
-
- [Fact]
- public void CustomTypeCustomValidationAttributeModelValid()
- {
- var validModel = new CustomTypeCustomValidationAttributeModel
- {
- Val = new CustomType { Val1 = "Pass", Val2 = "Pass" }
- };
-
- var modelValidator = new CustomTypeCustomValidationAttributeModelValidator();
- var result = modelValidator.Validate(nameof(validModel), validModel);
-
- Assert.Equal(ValidateOptionsResult.Success, result);
- }
-
- [Fact]
- public void CustomTypeCustomValidationAttributeModelInvalid()
- {
- var validModel = new CustomTypeCustomValidationAttributeModel
- {
- Val = new CustomType { Val1 = "Pass", Val2 = "Not Pass" }
- };
-
- var modelValidator = new CustomTypeCustomValidationAttributeModelValidator();
- Assert.Throws(() => modelValidator.Validate(nameof(validModel), validModel));
- }
-
- [Fact]
- public void DerivedModelIsValid()
- {
- var validModel = new DerivedModel
- {
- Val = 1,
- DerivedVal = "Valid",
- VirtualValWithAttr = 1,
- VirtualValWithoutAttr = null
- };
-
- ((RequiredAttributeModel)validModel).Val = "Valid hidden member from base class";
-
- var validator = new DerivedModelValidator();
- var result = validator.Validate(nameof(validModel), validModel);
- Assert.Equal(ValidateOptionsResult.Success, result);
- }
-
- [Theory]
- [InlineData(0, "", 1, null, "Valid hidden member from base class")]
- [InlineData(null, "Valid", 1, null, "Valid hidden member from base class")]
- [InlineData(1, "Valid", null, null, "Valid hidden member from base class")]
- public void DerivedModelIsInvalid(int? val, string? derivedVal, int? virtValAttr, int? virtVal, string? hiddenValBaseClass)
- {
- var invalidModel = new DerivedModel
- {
- Val = val,
- DerivedVal = derivedVal,
- VirtualValWithAttr = virtValAttr,
- VirtualValWithoutAttr = virtVal
- };
-
- ((RequiredAttributeModel)invalidModel).Val = hiddenValBaseClass;
-
- var validator = new DerivedModelValidator();
- Utils.VerifyValidateOptionsResult(validator.Validate(nameof(invalidModel), invalidModel), 1);
- }
-
- [Fact]
- public void LeafModelIsValid()
- {
- var validModel = new LeafModel
- {
- Val = 1,
- DerivedVal = "Valid",
- VirtualValWithAttr = null,
- VirtualValWithoutAttr = 1
- };
-
- ((RequiredAttributeModel)validModel).Val = "Valid hidden member from base class";
-
- var validator = new LeafModelValidator();
- var result = validator.Validate(nameof(validModel), validModel);
- Assert.Equal(ValidateOptionsResult.Success, result);
- }
-
- [Fact]
- public void ComplexModelValid()
- {
- var validModel = new ComplexModel
- {
- ComplexVal = new RequiredAttributeModel { Val = "Valid" }
- };
-
- var modelValidator = new ComplexModelValidator();
- var result = modelValidator.Validate(nameof(validModel), validModel);
- Assert.Equal(ValidateOptionsResult.Success, result);
-
- validModel = new ComplexModel
- {
- ValWithoutOptionsValidator = new TypeWithoutOptionsValidator
- {
- Val1 = "Valid",
- Val2 = new DateTime(day: 3, month: 1, year: 2004)
- }
- };
-
- // Setting invariant culture to avoid DateTime parsing discrepancies:
- CultureInfo.CurrentCulture = CultureInfo.InvariantCulture;
- result = modelValidator.Validate(nameof(validModel), validModel);
- Assert.Equal(ValidateOptionsResult.Success, result);
-
- validModel = new ComplexModel
- {
- ValWithoutOptionsValidator = new TypeWithoutOptionsValidator
- {
- Val1 = "A",
- Val2 = new DateTime(day: 2, month: 2, year: 2004),
- YetAnotherComplexVal = new RangeAttributeModelDouble { Val = 0.7 }
- }
- };
-
- result = modelValidator.Validate(nameof(validModel), validModel);
- Assert.Equal(ValidateOptionsResult.Success, result);
- }
-
- [Fact]
- public void ComplexModelInvalid()
- {
- var invalidModel = new ComplexModel
- {
- ComplexVal = new RequiredAttributeModel { Val = null }
- };
-
- var modelValidator = new ComplexModelValidator();
- Utils.VerifyValidateOptionsResult(modelValidator.Validate(nameof(invalidModel), invalidModel), 1);
-
- invalidModel = new ComplexModel
- {
- ValWithoutOptionsValidator = new TypeWithoutOptionsValidator { Val1 = "Valid", Val2 = new DateTime(2003, 3, 3) }
- };
-
- Utils.VerifyValidateOptionsResult(modelValidator.Validate(nameof(invalidModel), invalidModel), 1);
-
- invalidModel = new ComplexModel
- {
- ValWithoutOptionsValidator = new TypeWithoutOptionsValidator { Val1 = string.Empty, Val2 = new DateTime(2004, 3, 3) }
- };
-
- Utils.VerifyValidateOptionsResult(modelValidator.Validate(nameof(invalidModel), invalidModel), 1);
-
- invalidModel = new ComplexModel
- {
- ValWithoutOptionsValidator = new TypeWithoutOptionsValidator
- {
- Val1 = "A",
- Val2 = new DateTime(2004, 2, 2),
- YetAnotherComplexVal = new RangeAttributeModelDouble { Val = 0.4999 }
- }
- };
-
- Utils.VerifyValidateOptionsResult(modelValidator.Validate(nameof(invalidModel), invalidModel), 1);
- }
-
- [Fact]
- public void AttributePropertyModelTestOnErrorMessage()
- {
- var validModel = new AttributePropertyModel
- {
- Val1 = 5,
- Val2 = 1
- };
-
- var modelValidator = new AttributePropertyModelValidator();
- Utils.VerifyValidateOptionsResult(modelValidator.Validate(nameof(validModel), validModel), 1);
- }
-
- [Fact]
- public void AttributePropertyModelTestOnErrorMessageResource()
- {
- var validModel = new AttributePropertyModel
- {
- Val1 = 1,
- Val2 = 5
- };
-
- var modelValidator = new AttributePropertyModelValidator();
- Utils.VerifyValidateOptionsResult(modelValidator.Validate(nameof(validModel), validModel), 1);
- }
-}
diff --git a/test/Generators/Microsoft.Gen.OptionsValidation/Generated/Common/RandomMembersTests.cs b/test/Generators/Microsoft.Gen.OptionsValidation/Generated/Common/RandomMembersTests.cs
deleted file mode 100644
index 1c87892b279..00000000000
--- a/test/Generators/Microsoft.Gen.OptionsValidation/Generated/Common/RandomMembersTests.cs
+++ /dev/null
@@ -1,37 +0,0 @@
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-
-using Microsoft.Extensions.Options;
-using RandomMembers;
-using Xunit;
-
-namespace Microsoft.Gen.OptionsValidation.Test;
-
-public class RandomMembersTests
-{
- [Fact]
- public void Invalid()
- {
- var firstModel = new FirstModel
- {
- P1 = "1234",
- };
-
- var validator = new FirstValidator();
- var vr = validator.Validate("RandomMembers", firstModel);
-
- Utils.VerifyValidateOptionsResult(vr, 1, "P1");
- }
-
- [Fact]
- public void Valid()
- {
- var firstModel = new FirstModel
- {
- P1 = "12345",
- };
-
- var validator = new FirstValidator();
- Assert.Equal(ValidateOptionsResult.Success, validator.Validate("RandomMembers", firstModel));
- }
-}
diff --git a/test/Generators/Microsoft.Gen.OptionsValidation/Generated/Common/RecordTypesTests.cs b/test/Generators/Microsoft.Gen.OptionsValidation/Generated/Common/RecordTypesTests.cs
deleted file mode 100644
index bd0d872c8b6..00000000000
--- a/test/Generators/Microsoft.Gen.OptionsValidation/Generated/Common/RecordTypesTests.cs
+++ /dev/null
@@ -1,67 +0,0 @@
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-
-#if ROSLYN_4_0_OR_GREATER
-
-using Microsoft.Extensions.Options;
-using RecordTypes;
-using Xunit;
-
-namespace Microsoft.Gen.OptionsValidation.Test;
-
-public class RecordTypesTests
-{
- [Fact]
- public void Invalid()
- {
- var thirdModel = new ThirdModel
- {
- P6 = "1234",
- };
-
- var secondModel = new SecondModel
- {
- P5 = "1234",
- };
-
- var firstModel = new FirstModel
- {
- P1 = "1234",
- P2 = secondModel,
- P3 = secondModel,
- P4 = thirdModel,
- };
-
- var validator = default(FirstValidator);
- var vr = validator.Validate("RecordTypes", firstModel);
-
- Utils.VerifyValidateOptionsResult(vr, 4, "P1", "P2.P5", "P3.P5", "P4.P6");
- }
-
- [Fact]
- public void Valid()
- {
- var thirdModel = new ThirdModel
- {
- P6 = "12345",
- };
-
- var secondModel = new SecondModel
- {
- P5 = "12345",
- };
-
- var firstModel = new FirstModel
- {
- P1 = "12345",
- P2 = secondModel,
- P3 = secondModel,
- P4 = thirdModel,
- };
-
- var validator = default(FirstValidator);
- Assert.Equal(ValidateOptionsResult.Success, validator.Validate("RecordTypes", firstModel));
- }
-}
-
-#endif
diff --git a/test/Generators/Microsoft.Gen.OptionsValidation/Generated/Common/RepeatedTypesTests.cs b/test/Generators/Microsoft.Gen.OptionsValidation/Generated/Common/RepeatedTypesTests.cs
deleted file mode 100644
index b45fcbf9ced..00000000000
--- a/test/Generators/Microsoft.Gen.OptionsValidation/Generated/Common/RepeatedTypesTests.cs
+++ /dev/null
@@ -1,61 +0,0 @@
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-
-using Microsoft.Extensions.Options;
-using RepeatedTypes;
-using Xunit;
-
-namespace Microsoft.Gen.OptionsValidation.Test;
-
-public class RepeatedTypesTests
-{
- [Fact]
- public void Invalid()
- {
- var thirdModel = new ThirdModel
- {
- P5 = "1234",
- };
-
- var secondModel = new SecondModel
- {
- P4 = thirdModel,
- };
-
- var firstModel = new FirstModel
- {
- P1 = secondModel,
- P2 = secondModel,
- P3 = thirdModel,
- };
-
- var validator = new FirstValidator();
- var vr = validator.Validate("RepeatedTypes", firstModel);
-
- Utils.VerifyValidateOptionsResult(vr, 3, "P1.P4.P5", "P2.P4.P5", "P3.P5");
- }
-
- [Fact]
- public void Valid()
- {
- var thirdModel = new ThirdModel
- {
- P5 = "12345",
- };
-
- var secondModel = new SecondModel
- {
- P4 = thirdModel,
- };
-
- var firstModel = new FirstModel
- {
- P1 = secondModel,
- P2 = secondModel,
- P3 = thirdModel,
- };
-
- var validator = new FirstValidator();
- Assert.Equal(ValidateOptionsResult.Success, validator.Validate("RepeatedTypes", firstModel));
- }
-}
diff --git a/test/Generators/Microsoft.Gen.OptionsValidation/Generated/Common/SelfValidationTests.cs b/test/Generators/Microsoft.Gen.OptionsValidation/Generated/Common/SelfValidationTests.cs
deleted file mode 100644
index 0a511333f03..00000000000
--- a/test/Generators/Microsoft.Gen.OptionsValidation/Generated/Common/SelfValidationTests.cs
+++ /dev/null
@@ -1,37 +0,0 @@
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-
-using Microsoft.Extensions.Options;
-using SelfValidation;
-using Xunit;
-
-namespace Microsoft.Gen.OptionsValidation.Test;
-
-public class SelfValidationTests
-{
- [Fact]
- public void Invalid()
- {
- var firstModel = new FirstModel
- {
- P1 = "1234",
- };
-
- var validator = default(FirstValidator);
- var vr = validator.Validate("SelfValidation", firstModel);
-
- Utils.VerifyValidateOptionsResult(vr, 1, "P1");
- }
-
- [Fact]
- public void Valid()
- {
- var firstModel = new FirstModel
- {
- P1 = "12345",
- };
-
- var validator = default(FirstValidator);
- Assert.Equal(ValidateOptionsResult.Success, validator.Validate("SelfValidation", firstModel));
- }
-}
diff --git a/test/Generators/Microsoft.Gen.OptionsValidation/Generated/Common/TestResource.Designer.cs b/test/Generators/Microsoft.Gen.OptionsValidation/Generated/Common/TestResource.Designer.cs
deleted file mode 100644
index 4fa3e97cbd2..00000000000
--- a/test/Generators/Microsoft.Gen.OptionsValidation/Generated/Common/TestResource.Designer.cs
+++ /dev/null
@@ -1,72 +0,0 @@
-//------------------------------------------------------------------------------
-//
-// This code was generated by a tool.
-// Runtime Version:4.0.30319.42000
-//
-// Changes to this file may cause incorrect behavior and will be lost if
-// the code is regenerated.
-//
-//------------------------------------------------------------------------------
-
-namespace Microsoft.Gen.OptionsValidation.Test {
- using System;
-
-
- ///
- /// A strongly-typed resource class, for looking up localized strings, etc.
- ///
- // This class was auto-generated by the StronglyTypedResourceBuilder
- // class via a tool like ResGen or Visual Studio.
- // To add or remove a member, edit your .ResX file then rerun ResGen
- // with the /str option, or rebuild your VS project.
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
- internal class TestResource {
-
- private static global::System.Resources.ResourceManager resourceMan;
-
- private static global::System.Globalization.CultureInfo resourceCulture;
-
- [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
- internal TestResource() {
- }
-
- ///
- /// Returns the cached ResourceManager instance used by this class.
- ///
- [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
- internal static global::System.Resources.ResourceManager ResourceManager {
- get {
- if (object.ReferenceEquals(resourceMan, null)) {
- global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Microsoft.Gen.OptionsValidation.Test.TestResource", typeof(TestResource).Assembly);
- resourceMan = temp;
- }
- return resourceMan;
- }
- }
-
- ///
- /// Overrides the current thread's CurrentUICulture property for all
- /// resource lookups using this strongly typed resource class.
- ///
- [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
- internal static global::System.Globalization.CultureInfo Culture {
- get {
- return resourceCulture;
- }
- set {
- resourceCulture = value;
- }
- }
-
- ///
- /// Looks up a localized string similar to ErrorMessageResourceName.
- ///
- internal static string ErrorMessageResourceName {
- get {
- return ResourceManager.GetString("ErrorMessageResourceName", resourceCulture);
- }
- }
- }
-}
diff --git a/test/Generators/Microsoft.Gen.OptionsValidation/Generated/Common/TestResource.resx b/test/Generators/Microsoft.Gen.OptionsValidation/Generated/Common/TestResource.resx
deleted file mode 100644
index 70f767945b3..00000000000
--- a/test/Generators/Microsoft.Gen.OptionsValidation/Generated/Common/TestResource.resx
+++ /dev/null
@@ -1,123 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- text/microsoft-resx
-
-
- 2.0
-
-
- System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- ErrorMessageResourceName
-
-
\ No newline at end of file
diff --git a/test/Generators/Microsoft.Gen.OptionsValidation/Generated/Common/Utils.cs b/test/Generators/Microsoft.Gen.OptionsValidation/Generated/Common/Utils.cs
deleted file mode 100644
index 7412374f18a..00000000000
--- a/test/Generators/Microsoft.Gen.OptionsValidation/Generated/Common/Utils.cs
+++ /dev/null
@@ -1,31 +0,0 @@
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-
-#if NETCOREAPP3_1_OR_GREATER
-using System.Linq;
-#endif
-using Microsoft.Extensions.Options;
-using Xunit;
-
-namespace Microsoft.Gen.OptionsValidation.Test;
-
-internal static class Utils
-{
- public static void VerifyValidateOptionsResult(ValidateOptionsResult vr, int expectedErrorCount, params string[] expectedErrorSubstrings)
- {
- Assert.NotNull(vr);
-
-#if NETCOREAPP3_1_OR_GREATER
- var failures = vr.Failures!.ToArray();
-#else
- var failures = vr.FailureMessage!.Split(';');
-#endif
-
- Assert.Equal(expectedErrorCount, failures.Length);
-
- for (int i = 0; i < expectedErrorSubstrings.Length; i++)
- {
- Assert.Contains(expectedErrorSubstrings[i], failures[i]);
- }
- }
-}
diff --git a/test/Generators/Microsoft.Gen.OptionsValidation/Generated/Common/ValueTypesTests.cs b/test/Generators/Microsoft.Gen.OptionsValidation/Generated/Common/ValueTypesTests.cs
deleted file mode 100644
index 543e8eb882b..00000000000
--- a/test/Generators/Microsoft.Gen.OptionsValidation/Generated/Common/ValueTypesTests.cs
+++ /dev/null
@@ -1,53 +0,0 @@
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-
-using Microsoft.Extensions.Options;
-using ValueTypes;
-using Xunit;
-
-namespace Microsoft.Gen.OptionsValidation.Test;
-
-public class ValueTypesTests
-{
- [Fact]
- public void Invalid()
- {
- var secondModel = new SecondModel
- {
- P4 = "1234",
- };
-
- var firstModel = new FirstModel
- {
- P1 = "1234",
- P3 = secondModel,
- P2 = secondModel,
- P4 = default,
- };
-
- var validator = default(FirstValidator);
- var vr = validator.Validate("ValueTypes", firstModel);
-
- Utils.VerifyValidateOptionsResult(vr, 3, "P1", "P2.P4", "P3.P4");
- }
-
- [Fact]
- public void Valid()
- {
- var secondModel = new SecondModel
- {
- P4 = "12345",
- };
-
- var firstModel = new FirstModel
- {
- P1 = "12345",
- P3 = secondModel,
- P2 = secondModel,
- P4 = default,
- };
-
- var validator = default(FirstValidator);
- Assert.Equal(ValidateOptionsResult.Success, validator.Validate("ValueTypes", firstModel));
- }
-}
diff --git a/test/Generators/Microsoft.Gen.OptionsValidation/Generated/Directory.Build.props b/test/Generators/Microsoft.Gen.OptionsValidation/Generated/Directory.Build.props
deleted file mode 100644
index ee32cd31896..00000000000
--- a/test/Generators/Microsoft.Gen.OptionsValidation/Generated/Directory.Build.props
+++ /dev/null
@@ -1,33 +0,0 @@
-
-
-
-
- Microsoft.Gen.OptionsValidation.Test
- Tests for code generated by Gen.OptionsValidation.
-
-
-
- $(TestNetCoreTargetFrameworks)
- $(TestNetCoreTargetFrameworks)$(ConditionalNet462)
- true
- true
- true
- true
- $(NoWarn);CA1824
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/test/Generators/Microsoft.Gen.OptionsValidation/Generated/Roslyn3.8/Microsoft.Gen.OptionsValidation.Roslyn3.8.Generated.Tests.csproj b/test/Generators/Microsoft.Gen.OptionsValidation/Generated/Roslyn3.8/Microsoft.Gen.OptionsValidation.Roslyn3.8.Generated.Tests.csproj
deleted file mode 100644
index 68a4e354e8c..00000000000
--- a/test/Generators/Microsoft.Gen.OptionsValidation/Generated/Roslyn3.8/Microsoft.Gen.OptionsValidation.Roslyn3.8.Generated.Tests.csproj
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
- 3.8
-
-
-
-
- True
- True
- TestResource.resx
-
-
-
diff --git a/test/Generators/Microsoft.Gen.OptionsValidation/Generated/Roslyn4.0/Microsoft.Gen.OptionsValidation.Roslyn4.0.Generated.Tests.csproj b/test/Generators/Microsoft.Gen.OptionsValidation/Generated/Roslyn4.0/Microsoft.Gen.OptionsValidation.Roslyn4.0.Generated.Tests.csproj
deleted file mode 100644
index 1dbe0b6f25c..00000000000
--- a/test/Generators/Microsoft.Gen.OptionsValidation/Generated/Roslyn4.0/Microsoft.Gen.OptionsValidation.Roslyn4.0.Generated.Tests.csproj
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
- 4.0
- $(DefineConstants);ROSLYN_4_0_OR_GREATER
-
-
-
-
- True
- True
- TestResource.resx
-
-
-
diff --git a/test/Generators/Microsoft.Gen.OptionsValidation/TestClasses/CustomAttr.cs b/test/Generators/Microsoft.Gen.OptionsValidation/TestClasses/CustomAttr.cs
deleted file mode 100644
index 4259af039bc..00000000000
--- a/test/Generators/Microsoft.Gen.OptionsValidation/TestClasses/CustomAttr.cs
+++ /dev/null
@@ -1,69 +0,0 @@
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-
-using System;
-using System.ComponentModel.DataAnnotations;
-using Microsoft.Extensions.Options;
-using Microsoft.Extensions.Options.Validation;
-
-namespace CustomAttr
-{
-#pragma warning disable SA1649
-#pragma warning disable SA1402
-#pragma warning disable CA1019
-#pragma warning disable IDE0052
-
- [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter, AllowMultiple = false)]
- public sealed class CustomAttribute : ValidationAttribute
- {
- private readonly char _ch;
- private readonly bool _caseSensitive;
- private readonly string? _extra;
-
- public CustomAttribute(char ch, bool caseSensitive, string? extra)
- {
- _ch = ch;
- _caseSensitive = caseSensitive;
- _extra = extra;
- }
-
- protected override ValidationResult IsValid(object? value, ValidationContext? validationContext)
- {
- if (value == null)
- {
- return ValidationResult.Success!;
- }
-
- if (_caseSensitive)
- {
- if ((char)value != _ch)
- {
- return new ValidationResult($"{validationContext?.MemberName} didn't match");
- }
- }
- else
- {
- if (char.ToUpperInvariant((char)value) != char.ToUpperInvariant(_ch))
- {
- return new ValidationResult($"{validationContext?.MemberName} didn't match");
- }
- }
-
- return ValidationResult.Success!;
- }
- }
-
- public class FirstModel
- {
- [Custom('A', true, null)]
- public char P1 { get; set; }
-
- [Custom('A', false, "X")]
- public char P2 { get; set; }
- }
-
- [OptionsValidator]
- public partial class FirstValidator : IValidateOptions
- {
- }
-}
diff --git a/test/Generators/Microsoft.Gen.OptionsValidation/TestClasses/Enumeration.cs b/test/Generators/Microsoft.Gen.OptionsValidation/TestClasses/Enumeration.cs
deleted file mode 100644
index bf5d1f7c634..00000000000
--- a/test/Generators/Microsoft.Gen.OptionsValidation/TestClasses/Enumeration.cs
+++ /dev/null
@@ -1,94 +0,0 @@
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.ComponentModel.DataAnnotations;
-using System.Diagnostics.CodeAnalysis;
-using Microsoft.Extensions.Options;
-using Microsoft.Extensions.Options.Validation;
-
-namespace Enumeration
-{
-#pragma warning disable SA1649
-#pragma warning disable SA1402
-
- public class FirstModel
- {
- [ValidateEnumeratedItems]
- public IList? P1;
-
- [ValidateEnumeratedItems(typeof(SecondValidator))]
- public IList? P2;
-
- [ValidateEnumeratedItems]
- public IList? P3;
-
- [ValidateEnumeratedItems]
- public IList? P4;
-
- [ValidateEnumeratedItems]
- public IList? P5;
-
- [ValidateEnumeratedItems]
- [SuppressMessage("StyleCop.CSharp.ReadabilityRules", "SA1125:Use shorthand for nullable types", Justification = "Testing System>Nullable")]
- public IList>? P51;
-
- [ValidateEnumeratedItems]
- public SynteticEnumerable? P6;
-
- [ValidateEnumeratedItems]
- public SynteticEnumerable P7;
-
- [ValidateEnumeratedItems]
- [SuppressMessage("StyleCop.CSharp.ReadabilityRules", "SA1125:Use shorthand for nullable types", Justification = "Testing System>Nullable")]
- public Nullable P8;
- }
-
- public class SecondModel
- {
- [Required]
- [MinLength(5)]
- public string P6 = string.Empty;
- }
-
- public struct ThirdModel
- {
- [Range(0, 10)]
- public int Value;
- }
-
- public struct SynteticEnumerable : IEnumerable
- {
- IEnumerator IEnumerable.GetEnumerator() => GetEnumerator();
-
- public IEnumerator GetEnumerator() => new InternalEnumerator();
-
- private class InternalEnumerator : IEnumerator
- {
- public SecondModel Current => throw new NotSupportedException();
-
- object IEnumerator.Current => Current;
-
- public void Dispose()
- {
- // Nothing to dispose...
- }
-
- public bool MoveNext() => false;
-
- public void Reset() => throw new NotSupportedException();
- }
- }
-
- [OptionsValidator]
- public partial struct FirstValidator : IValidateOptions
- {
- }
-
- [OptionsValidator]
- public partial struct SecondValidator : IValidateOptions
- {
- }
-}
diff --git a/test/Generators/Microsoft.Gen.OptionsValidation/TestClasses/Fields.cs b/test/Generators/Microsoft.Gen.OptionsValidation/TestClasses/Fields.cs
deleted file mode 100644
index ddf54f49f4e..00000000000
--- a/test/Generators/Microsoft.Gen.OptionsValidation/TestClasses/Fields.cs
+++ /dev/null
@@ -1,72 +0,0 @@
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-
-using System.ComponentModel.DataAnnotations;
-using Microsoft.Extensions.Options;
-using Microsoft.Extensions.Options.Validation;
-
-namespace Fields
-{
-#pragma warning disable SA1649
-#pragma warning disable SA1402
-#pragma warning disable S1186
-#pragma warning disable CA1822
-
- public class FirstModel
- {
- [Required]
- [MinLength(5)]
- public string P1 = string.Empty;
-
- [Microsoft.Extensions.Options.Validation.ValidateObjectMembers(typeof(SecondValidator))]
- public SecondModel? P2;
-
- [Microsoft.Extensions.Options.Validation.ValidateObjectMembers]
- public ThirdModel P3;
- }
-
- public class SecondModel
- {
- [Required]
- [MinLength(5)]
- public string P4 = string.Empty;
- }
-
- public struct ThirdModel
- {
- [Required]
- [MinLength(5)]
- public string P5 = string.Empty;
-
- public int P6 = default;
-
- public ThirdModel(object _)
- {
- }
- }
-
- [OptionsValidator]
- public partial struct FirstValidator : IValidateOptions
- {
- public void Validate()
- {
- }
-
- public void Validate(int _)
- {
- }
-
- public void Validate(string? _)
- {
- }
-
- public void Validate(string? _0, object _1)
- {
- }
- }
-
- [OptionsValidator]
- public partial struct SecondValidator : IValidateOptions
- {
- }
-}
diff --git a/test/Generators/Microsoft.Gen.OptionsValidation/TestClasses/FileScopedNamespace.cs b/test/Generators/Microsoft.Gen.OptionsValidation/TestClasses/FileScopedNamespace.cs
deleted file mode 100644
index 1341181d24d..00000000000
--- a/test/Generators/Microsoft.Gen.OptionsValidation/TestClasses/FileScopedNamespace.cs
+++ /dev/null
@@ -1,22 +0,0 @@
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-
-using System.ComponentModel.DataAnnotations;
-using Microsoft.Extensions.Options;
-using Microsoft.Extensions.Options.Validation;
-
-namespace FileScopedNamespace;
-
-#pragma warning disable SA1649 // File name should match first type name
-
-public class FirstModel
-{
- [Required]
- [MinLength(5)]
- public string P1 = string.Empty;
-}
-
-[OptionsValidator]
-public partial struct FirstValidator : IValidateOptions
-{
-}
diff --git a/test/Generators/Microsoft.Gen.OptionsValidation/TestClasses/FunnyStrings.cs b/test/Generators/Microsoft.Gen.OptionsValidation/TestClasses/FunnyStrings.cs
deleted file mode 100644
index 401109dd621..00000000000
--- a/test/Generators/Microsoft.Gen.OptionsValidation/TestClasses/FunnyStrings.cs
+++ /dev/null
@@ -1,23 +0,0 @@
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-
-using System.ComponentModel.DataAnnotations;
-using Microsoft.Extensions.Options;
-using Microsoft.Extensions.Options.Validation;
-
-namespace FunnyStrings
-{
-#pragma warning disable SA1649
-#pragma warning disable SA1402
-
- public class FirstModel
- {
- [RegularExpression("\"\r\n\\\\")]
- public string P1 { get; set; } = string.Empty;
- }
-
- [OptionsValidator]
- public partial struct FirstValidator : IValidateOptions
- {
- }
-}
diff --git a/test/Generators/Microsoft.Gen.OptionsValidation/TestClasses/Generics.cs b/test/Generators/Microsoft.Gen.OptionsValidation/TestClasses/Generics.cs
deleted file mode 100644
index bde80402a18..00000000000
--- a/test/Generators/Microsoft.Gen.OptionsValidation/TestClasses/Generics.cs
+++ /dev/null
@@ -1,36 +0,0 @@
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-
-using System.ComponentModel.DataAnnotations;
-using Microsoft.Extensions.Options;
-using Microsoft.Extensions.Options.Validation;
-
-namespace Generics
-{
-#pragma warning disable SA1649
-#pragma warning disable SA1402
-
- public class FirstModel
- {
- [Required]
- [MinLength(5)]
- public string P1 { get; set; } = string.Empty;
-
- public T? P2 { get; set; }
-
- [Microsoft.Extensions.Options.Validation.ValidateObjectMembers]
- public SecondModel? P3 { get; set; }
- }
-
- public class SecondModel
- {
- [Required]
- [MinLength(5)]
- public string P4 { get; set; } = string.Empty;
- }
-
- [OptionsValidator]
- public partial class FirstValidator : IValidateOptions>
- {
- }
-}
diff --git a/test/Generators/Microsoft.Gen.OptionsValidation/TestClasses/Models.cs b/test/Generators/Microsoft.Gen.OptionsValidation/TestClasses/Models.cs
deleted file mode 100644
index 2234bd650da..00000000000
--- a/test/Generators/Microsoft.Gen.OptionsValidation/TestClasses/Models.cs
+++ /dev/null
@@ -1,252 +0,0 @@
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-
-using System;
-using System.ComponentModel.DataAnnotations;
-using Microsoft.Extensions.Options;
-using Microsoft.Extensions.Options.Validation;
-using Microsoft.Gen.OptionsValidation.Test;
-
-#pragma warning disable SA1649
-#pragma warning disable SA1402
-
-namespace TestClasses.OptionsValidation
-{
- // ValidationAttribute without parameter
- public class RequiredAttributeModel
- {
- [Required]
- public string? Val { get; set; }
- }
-
- // ValidationAttribute with string parameter
- public class RegularExpressionAttributeModel
- {
- [RegularExpression("\\s")]
- public string Val { get; set; } = string.Empty;
- }
-
- // DataTypeAttribute
- public class EmailAttributeModel
- {
- [EmailAddress]
- public string Val { get; set; } = string.Empty;
- }
-
- // ValidationAttribute with System.Type parameter
- public class CustomValidationAttributeModel
- {
- [CustomValidation(typeof(CustomValidationTest), "TestMethod")]
- public string Val { get; set; } = string.Empty;
- }
-
-#pragma warning disable SA1204 // Static elements should appear before instance elements
- public static class CustomValidationTest
-#pragma warning restore SA1204 // Static elements should appear before instance elements
- {
- public static ValidationResult? TestMethod(string val, ValidationContext _)
- {
- if (val.Equals("Pass", StringComparison.Ordinal))
- {
- return ValidationResult.Success;
- }
-
- throw new ValidationException();
- }
- }
-
- // ValidationAttribute with DataType parameter
- public class DataTypeAttributeModel
- {
- [DataType(DataType.Text)]
- public string Val { get; set; } = string.Empty;
- }
-
- // ValidationAttribute with type, double, int parameters
- public class RangeAttributeModelInt
- {
- [Range(1, 3)]
- public int Val { get; set; }
- }
-
- public class RangeAttributeModelDouble
- {
- [Range(0.5, 0.9)]
- public double Val { get; set; }
- }
-
- public class RangeAttributeModelDate
- {
-#if NETCOREAPP3_1_OR_GREATER
- [Range(typeof(DateTime), "1/2/2004", "3/4/2004", ParseLimitsInInvariantCulture = true)]
-#else
- [Range(typeof(DateTime), "1/2/2004", "3/4/2004")]
-#endif
- public DateTime Val { get; set; }
- }
-
- public class MultipleAttributeModel
- {
- [Required]
- [DataType(DataType.Password)]
- public string Val1 { get; set; } = string.Empty;
-
- [Range(1, 3)]
- public int Val2 { get; set; }
-
- [Range(3, 5)]
- public int Val3 { get; set; }
-
- [Range(5, 9)]
- public int Val4 { get; set; }
- }
-
- public class CustomTypeCustomValidationAttributeModel
- {
- [CustomValidation(typeof(CustomTypeCustomValidationTest), "TestMethod")]
- public CustomType? Val { get; set; }
- }
-
- public class CustomType
- {
- public string Val1 { get; set; } = string.Empty;
- public string Val2 { get; set; } = string.Empty;
- }
-
-#pragma warning disable SA1204 // Static elements should appear before instance elements
- public static class CustomTypeCustomValidationTest
-#pragma warning restore SA1204 // Static elements should appear before instance elements
- {
- public static ValidationResult? TestMethod(CustomType val, ValidationContext _)
- {
- if (val.Val1.Equals("Pass", StringComparison.Ordinal) && val.Val2.Equals("Pass", StringComparison.Ordinal))
- {
- return ValidationResult.Success;
- }
-
- throw new ValidationException();
- }
- }
-
- public class AttributePropertyModel
- {
- [Range(1, 3, ErrorMessage = "ErrorMessage")]
- public int Val1 { get; set; }
-
- [Range(1, 3, ErrorMessageResourceType = typeof(TestResource), ErrorMessageResourceName = "ErrorMessageResourceName")]
- public int Val2 { get; set; }
- }
-
- public class TypeWithoutOptionsValidator
- {
- [Required]
- public string? Val1 { get; set; }
-
- [Range(typeof(DateTime), "1/2/2004", "3/4/2004")]
- public DateTime Val2 { get; set; }
-
- [Microsoft.Extensions.Options.Validation.ValidateObjectMembers]
- public RangeAttributeModelDouble? YetAnotherComplexVal { get; set; }
- }
-
- public class DerivedModel : RequiredAttributeModel
- {
- [Required]
- public string? DerivedVal { get; set; }
-
- [Required]
- internal virtual int? VirtualValWithAttr { get; set; }
-
- public virtual int? VirtualValWithoutAttr { get; set; }
-
- [Required]
- public new int? Val { get; set; }
- }
-
- public class LeafModel : DerivedModel
- {
- internal override int? VirtualValWithAttr { get; set; }
-
- [Required]
- public override int? VirtualValWithoutAttr { get; set; }
- }
-
- public class ComplexModel
- {
- [Microsoft.Extensions.Options.Validation.ValidateObjectMembers]
- public RequiredAttributeModel? ComplexVal { get; set; }
-
- [Microsoft.Extensions.Options.Validation.ValidateObjectMembers]
- public TypeWithoutOptionsValidator? ValWithoutOptionsValidator { get; set; }
- }
-
- [OptionsValidator]
- public partial class RequiredAttributeModelValidator : IValidateOptions
- {
- }
-
- [OptionsValidator]
- public partial class RegularExpressionAttributeModelValidator : IValidateOptions
- {
- }
-
- [OptionsValidator]
- public partial class EmailAttributeModelValidator : IValidateOptions
- {
- }
-
- [OptionsValidator]
- public partial class CustomValidationAttributeModelValidator : IValidateOptions
- {
- }
-
- [OptionsValidator]
- public partial class DataTypeAttributeModelValidator : IValidateOptions
- {
- }
-
- [OptionsValidator]
- public partial class RangeAttributeModelIntValidator : IValidateOptions
- {
- }
-
- [OptionsValidator]
- public partial class RangeAttributeModelDoubleValidator : IValidateOptions
- {
- }
-
- [OptionsValidator]
- public partial class RangeAttributeModelDateValidator : IValidateOptions
- {
- }
-
- [OptionsValidator]
- public partial class MultipleAttributeModelValidator : IValidateOptions
- {
- }
-
- [OptionsValidator]
- public partial class CustomTypeCustomValidationAttributeModelValidator : IValidateOptions
- {
- }
-
- [OptionsValidator]
- public partial class AttributePropertyModelValidator : IValidateOptions
- {
- }
-
- [OptionsValidator]
- public partial class DerivedModelValidator : IValidateOptions
- {
- }
-
- [OptionsValidator]
- public partial class LeafModelValidator : IValidateOptions
- {
- }
-
- [OptionsValidator]
- internal sealed partial class ComplexModelValidator : IValidateOptions
- {
- }
-}
diff --git a/test/Generators/Microsoft.Gen.OptionsValidation/TestClasses/MultiModelValidator.cs b/test/Generators/Microsoft.Gen.OptionsValidation/TestClasses/MultiModelValidator.cs
deleted file mode 100644
index fd725d8403c..00000000000
--- a/test/Generators/Microsoft.Gen.OptionsValidation/TestClasses/MultiModelValidator.cs
+++ /dev/null
@@ -1,34 +0,0 @@
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-
-using System.ComponentModel.DataAnnotations;
-using Microsoft.Extensions.Options;
-using Microsoft.Extensions.Options.Validation;
-
-namespace MultiModelValidator
-{
-#pragma warning disable SA1649
-#pragma warning disable SA1402
-
- public class FirstModel
- {
- [Required]
- [MinLength(5)]
- public string P1 = string.Empty;
-
- [Microsoft.Extensions.Options.Validation.ValidateObjectMembers(typeof(MultiValidator))]
- public SecondModel? P2;
- }
-
- public class SecondModel
- {
- [Required]
- [MinLength(5)]
- public string P3 = string.Empty;
- }
-
- [OptionsValidator]
- public partial struct MultiValidator : IValidateOptions, IValidateOptions
- {
- }
-}
diff --git a/test/Generators/Microsoft.Gen.OptionsValidation/TestClasses/Nested.cs b/test/Generators/Microsoft.Gen.OptionsValidation/TestClasses/Nested.cs
deleted file mode 100644
index 531e0eed0d1..00000000000
--- a/test/Generators/Microsoft.Gen.OptionsValidation/TestClasses/Nested.cs
+++ /dev/null
@@ -1,106 +0,0 @@
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-
-#if ROSLYN_4_0_OR_GREATER
-
-using System.ComponentModel.DataAnnotations;
-using Microsoft.Extensions.Options;
-using Microsoft.Extensions.Options.Validation;
-
-namespace Nested
-{
-#pragma warning disable SA1649
-#pragma warning disable SA1402
-
- public static class Container1
- {
- public class FirstModel
- {
- [Required]
- [MinLength(5)]
- public string P1 { get; set; } = string.Empty;
-
- [Microsoft.Extensions.Options.Validation.ValidateObjectMembers(typeof(Container2.Container3.SecondValidator))]
- public SecondModel? P2 { get; set; }
-
- [Microsoft.Extensions.Options.Validation.ValidateObjectMembers]
- public ThirdModel P3 { get; set; }
-
- [Microsoft.Extensions.Options.Validation.ValidateObjectMembers(typeof(Container4.Container5.ThirdValidator))]
- public SecondModel? P4 { get; set; }
- }
-
- public class SecondModel
- {
- [Required]
- [MinLength(5)]
- public string P5 { get; set; } = string.Empty;
- }
-
- public struct ThirdModel
- {
- public ThirdModel(int _)
- {
- }
-
- [Required]
- [MinLength(5)]
- public string P6 { get; set; } = string.Empty;
- }
- }
-
- public static partial class Container2
- {
- public partial class Container3
- {
- public Container3(int _)
- {
- // nothing to do
- }
-
- [OptionsValidator]
- public partial struct FirstValidator : IValidateOptions
- {
- }
-
- [OptionsValidator]
- public partial struct SecondValidator : IValidateOptions
- {
- }
- }
- }
-
- public partial record class Container4
- {
- public partial record class Container5
- {
- public Container5(int _)
- {
- // nothing to do
- }
-
- [OptionsValidator]
- public partial struct ThirdValidator : IValidateOptions
- {
- }
- }
- }
-
- public partial struct Container6
- {
- [OptionsValidator]
- public partial struct FourthValidator : IValidateOptions
- {
- }
- }
-
- public partial record struct Container7
- {
- [OptionsValidator]
- public partial record struct FifthValidator : IValidateOptions
- {
- }
- }
-}
-
-#endif
diff --git a/test/Generators/Microsoft.Gen.OptionsValidation/TestClasses/NoNamespace.cs b/test/Generators/Microsoft.Gen.OptionsValidation/TestClasses/NoNamespace.cs
deleted file mode 100644
index db6461ddf18..00000000000
--- a/test/Generators/Microsoft.Gen.OptionsValidation/TestClasses/NoNamespace.cs
+++ /dev/null
@@ -1,46 +0,0 @@
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-
-using System.ComponentModel.DataAnnotations;
-using Microsoft.Extensions.Options;
-using Microsoft.Extensions.Options.Validation;
-
-#pragma warning disable SA1649
-#pragma warning disable SA1402
-
-public class FirstModelNoNamespace
-{
- [Required]
- [MinLength(5)]
- public string P1 { get; set; } = string.Empty;
-
- [Microsoft.Extensions.Options.Validation.ValidateObjectMembers(typeof(SecondValidatorNoNamespace))]
- public SecondModelNoNamespace? P2 { get; set; }
-
- [Microsoft.Extensions.Options.Validation.ValidateObjectMembers]
- public ThirdModelNoNamespace? P3 { get; set; }
-}
-
-public class SecondModelNoNamespace
-{
- [Required]
- [MinLength(5)]
- public string P4 { get; set; } = string.Empty;
-}
-
-public class ThirdModelNoNamespace
-{
- [Required]
- [MinLength(5)]
- public string P5 { get; set; } = string.Empty;
-}
-
-[OptionsValidator]
-public partial class FirstValidatorNoNamespace : IValidateOptions
-{
-}
-
-[OptionsValidator]
-public partial class SecondValidatorNoNamespace : IValidateOptions
-{
-}
diff --git a/test/Generators/Microsoft.Gen.OptionsValidation/TestClasses/RandomMembers.cs b/test/Generators/Microsoft.Gen.OptionsValidation/TestClasses/RandomMembers.cs
deleted file mode 100644
index 08a3327a874..00000000000
--- a/test/Generators/Microsoft.Gen.OptionsValidation/TestClasses/RandomMembers.cs
+++ /dev/null
@@ -1,35 +0,0 @@
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-
-using System;
-using System.ComponentModel.DataAnnotations;
-using Microsoft.Extensions.Options;
-using Microsoft.Extensions.Options.Validation;
-
-namespace RandomMembers
-{
-#pragma warning disable SA1649
-#pragma warning disable SA1402
-#pragma warning disable CA1822
-
- public class FirstModel
- {
- [Required]
- [MinLength(5)]
- public string? P1 { get; set; }
-
- public void Foo()
- {
- throw new NotSupportedException();
- }
-
- public class Nested
- {
- }
- }
-
- [OptionsValidator]
- public partial class FirstValidator : IValidateOptions
- {
- }
-}
diff --git a/test/Generators/Microsoft.Gen.OptionsValidation/TestClasses/RecordTypes.cs b/test/Generators/Microsoft.Gen.OptionsValidation/TestClasses/RecordTypes.cs
deleted file mode 100644
index b0b393f737d..00000000000
--- a/test/Generators/Microsoft.Gen.OptionsValidation/TestClasses/RecordTypes.cs
+++ /dev/null
@@ -1,68 +0,0 @@
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-
-#if ROSLYN_4_0_OR_GREATER
-
-using System.ComponentModel.DataAnnotations;
-using Microsoft.Extensions.Options;
-using Microsoft.Extensions.Options.Validation;
-
-namespace RecordTypes
-{
-#pragma warning disable SA1649
-
- public record class FirstModel
- {
- [Required]
- [MinLength(5)]
- public string P1 { get; set; } = string.Empty;
-
- [Microsoft.Extensions.Options.Validation.ValidateObjectMembers(typeof(SecondValidator))]
- public SecondModel? P2 { get; set; }
-
- [Microsoft.Extensions.Options.Validation.ValidateObjectMembers(typeof(ThirdValidator))]
- public SecondModel P3 { get; set; } = new SecondModel();
-
- [Microsoft.Extensions.Options.Validation.ValidateObjectMembers]
- public ThirdModel P4 { get; set; }
- }
-
- public record class SecondModel
- {
- [Required]
- [MinLength(5)]
- public string P5 { get; set; } = string.Empty;
- }
-
- public record struct ThirdModel
- {
- [Required]
- [MinLength(5)]
- public string P6 { get; set; } = string.Empty;
-
- public ThirdModel(int _)
- {
- }
-
- public ThirdModel(object _)
- {
- }
- }
-
- [OptionsValidator]
- public partial record struct FirstValidator : IValidateOptions
- {
- }
-
- [OptionsValidator]
- public partial record struct SecondValidator : IValidateOptions
- {
- }
-
- [OptionsValidator]
- public partial record class ThirdValidator : IValidateOptions
- {
- }
-}
-
-#endif
diff --git a/test/Generators/Microsoft.Gen.OptionsValidation/TestClasses/RepeatedTypes.cs b/test/Generators/Microsoft.Gen.OptionsValidation/TestClasses/RepeatedTypes.cs
deleted file mode 100644
index f5fa327bae5..00000000000
--- a/test/Generators/Microsoft.Gen.OptionsValidation/TestClasses/RepeatedTypes.cs
+++ /dev/null
@@ -1,47 +0,0 @@
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-
-using System.ComponentModel.DataAnnotations;
-using Microsoft.Extensions.Options;
-using Microsoft.Extensions.Options.Validation;
-
-namespace RepeatedTypes
-{
-#pragma warning disable SA1649
-#pragma warning disable SA1402
-#pragma warning disable CA1019
-
- public class FirstModel
- {
- [Required]
- [Microsoft.Extensions.Options.Validation.ValidateObjectMembers]
- public SecondModel? P1 { get; set; }
-
- [Required]
- [Microsoft.Extensions.Options.Validation.ValidateObjectMembers]
- public SecondModel? P2 { get; set; }
-
- [Required]
- [Microsoft.Extensions.Options.Validation.ValidateObjectMembers]
- public ThirdModel? P3 { get; set; }
- }
-
- public class SecondModel
- {
- [Required]
- [Microsoft.Extensions.Options.Validation.ValidateObjectMembers]
- public ThirdModel? P4 { get; set; }
- }
-
- public class ThirdModel
- {
- [Required]
- [MinLength(5)]
- public string? P5;
- }
-
- [OptionsValidator]
- public partial class FirstValidator : IValidateOptions
- {
- }
-}
diff --git a/test/Generators/Microsoft.Gen.OptionsValidation/TestClasses/SelfValidation.cs b/test/Generators/Microsoft.Gen.OptionsValidation/TestClasses/SelfValidation.cs
deleted file mode 100644
index 673af4a0896..00000000000
--- a/test/Generators/Microsoft.Gen.OptionsValidation/TestClasses/SelfValidation.cs
+++ /dev/null
@@ -1,34 +0,0 @@
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-
-using System;
-using System.Collections.Generic;
-using System.ComponentModel.DataAnnotations;
-using Microsoft.Extensions.Options;
-using Microsoft.Extensions.Options.Validation;
-
-namespace SelfValidation
-{
-#pragma warning disable SA1649
-
- public class FirstModel : IValidatableObject
- {
- [Required]
- public string P1 = string.Empty;
-
- public IEnumerable Validate(ValidationContext validationContext)
- {
- if (P1.Length < 5)
- {
- return new[] { new ValidationResult("P1 is not long enough") };
- }
-
- return Array.Empty();
- }
- }
-
- [OptionsValidator]
- public partial struct FirstValidator : IValidateOptions
- {
- }
-}
diff --git a/test/Generators/Microsoft.Gen.OptionsValidation/TestClasses/ValueTypes.cs b/test/Generators/Microsoft.Gen.OptionsValidation/TestClasses/ValueTypes.cs
deleted file mode 100644
index aa6a8c3f972..00000000000
--- a/test/Generators/Microsoft.Gen.OptionsValidation/TestClasses/ValueTypes.cs
+++ /dev/null
@@ -1,46 +0,0 @@
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-
-using System;
-using System.ComponentModel.DataAnnotations;
-using System.Diagnostics.CodeAnalysis;
-using Microsoft.Extensions.Options;
-using Microsoft.Extensions.Options.Validation;
-
-namespace ValueTypes
-{
-#pragma warning disable SA1649
-
- public class FirstModel
- {
- [Required]
- [MinLength(5)]
- public string P1 { get; set; } = string.Empty;
-
- [ValidateObjectMembers]
- public SecondModel? P2 { get; set; }
-
- [ValidateObjectMembers]
- public SecondModel P3 { get; set; }
-
- [ValidateObjectMembers]
- [SuppressMessage("StyleCop.CSharp.ReadabilityRules", "SA1125:Use shorthand for nullable types", Justification = "Testing System>Nullable")]
- public Nullable P4 { get; set; }
- }
-
- public struct SecondModel
- {
- [Required]
- [MinLength(5)]
- public string P4 { get; set; } = string.Empty;
-
- public SecondModel(object _)
- {
- }
- }
-
- [OptionsValidator]
- public partial struct FirstValidator : IValidateOptions
- {
- }
-}
diff --git a/test/Generators/Microsoft.Gen.OptionsValidation/Unit/Common/EmitterTests.cs b/test/Generators/Microsoft.Gen.OptionsValidation/Unit/Common/EmitterTests.cs
deleted file mode 100644
index 56c0abdbfcb..00000000000
--- a/test/Generators/Microsoft.Gen.OptionsValidation/Unit/Common/EmitterTests.cs
+++ /dev/null
@@ -1,58 +0,0 @@
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-
-using System.Collections.Generic;
-using System.ComponentModel.DataAnnotations;
-using System.IO;
-using System.Reflection;
-using System.Threading.Tasks;
-using Microsoft.Extensions.Options;
-using Microsoft.Extensions.Options.Validation;
-using Microsoft.Gen.Shared;
-using Microsoft.Shared.Data.Validation;
-using Xunit;
-
-namespace Microsoft.Gen.OptionsValidation.Test;
-
-public class EmitterTests
-{
- [Fact]
- public async Task TestEmitter()
- {
- var sources = new List();
- foreach (var file in Directory.GetFiles("TestClasses"))
- {
-#if !ROSLYN_4_0_OR_GREATER
- if (file.EndsWith("Nested.cs") || file.EndsWith("RecordTypes.cs"))
- {
- continue;
- }
-#endif
-
-#if NETCOREAPP3_1_OR_GREATER
- sources.Add("#define NETCOREAPP3_1_OR_GREATER\n" + File.ReadAllText(file));
-#else
- sources.Add(File.ReadAllText(file));
-#endif
- }
-
- var (d, r) = await RoslynTestUtils.RunGenerator(
- new Generator(),
- new[]
- {
- Assembly.GetAssembly(typeof(RequiredAttribute))!,
- Assembly.GetAssembly(typeof(TimeSpanAttribute))!,
- Assembly.GetAssembly(typeof(OptionsValidatorAttribute))!,
- Assembly.GetAssembly(typeof(IValidateOptions