diff --git a/src/libraries/Microsoft.Extensions.Hosting/src/ILLink/ILLink.Suppressions.xml b/src/libraries/Microsoft.Extensions.Hosting/src/ILLink/ILLink.Suppressions.xml
deleted file mode 100644
index 7e836fa766461d..00000000000000
--- a/src/libraries/Microsoft.Extensions.Hosting/src/ILLink/ILLink.Suppressions.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
- ILLink
- IL2091
- member
- F:Microsoft.Extensions.DependencyInjection.OptionsBuilderExtensions.<>c__DisplayClass1_0`1.options
-
-
- ILLink
- IL2091
- member
- M:Microsoft.Extensions.DependencyInjection.OptionsBuilderExtensions.<>c__DisplayClass0_0`1.<ValidateOnStart>b__0(Microsoft.Extensions.DependencyInjection.ValidatorOptions,Microsoft.Extensions.Options.IOptionsMonitor{`0})
-
-
-
diff --git a/src/libraries/Microsoft.Extensions.Hosting/src/OptionsBuilderExtensions.cs b/src/libraries/Microsoft.Extensions.Hosting/src/OptionsBuilderExtensions.cs
index 99d20caec83506..94c8115d1a7b7e 100644
--- a/src/libraries/Microsoft.Extensions.Hosting/src/OptionsBuilderExtensions.cs
+++ b/src/libraries/Microsoft.Extensions.Hosting/src/OptionsBuilderExtensions.cs
@@ -10,6 +10,8 @@ namespace Microsoft.Extensions.DependencyInjection
///
/// Extension methods for adding configuration related options services to the DI container via .
///
+ [UnconditionalSuppressMessage("ReflectionAnalysis", "IL2091:UnrecognizedReflectionPattern",
+ Justification = "Workaround for https://github.com/mono/linker/issues/1416. Outer method has been annotated with DynamicallyAccessedMembers.")]
public static class OptionsBuilderExtensions
{
///
@@ -28,23 +30,14 @@ public static class OptionsBuilderExtensions
optionsBuilder.Services.AddHostedService();
optionsBuilder.Services.AddOptions()
- .Configure>((vo, options) => ValidateOnStartHelper(vo, options, optionsBuilder));
+ .Configure>((vo, options) =>
+ {
+ // This adds an action that resolves the options value to force evaluation
+ // We don't care about the result as duplicates are not important
+ vo.Validators[typeof(TOptions)] = () => options.Get(optionsBuilder.Name);
+ });
return optionsBuilder;
}
-
- [UnconditionalSuppressMessage("ReflectionAnalysis", "IL2091:UnrecognizedReflectionPattern",
- Justification = "Workaround for https://github.com/mono/linker/issues/1416. Outer method has been annotated with DynamicallyAccessedMembers.")]
- private static void ValidateOnStartHelper(ValidatorOptions vo, IOptionsMonitor options, OptionsBuilder optionsBuilder)
- where TOptions : class
- {
- // This adds an action that resolves the options value to force evaluation
- // We don't care about the result as duplicates are not important
- vo.Validators[typeof(TOptions)] = () => GetOptionsMethod(options, optionsBuilder);
- }
-
- [UnconditionalSuppressMessage("ReflectionAnalysis", "IL2091:UnrecognizedReflectionPattern",
- Justification = "Workaround for https://github.com/mono/linker/issues/1416. Outer method has been annotated with DynamicallyAccessedMembers.")]
- private static void GetOptionsMethod(IOptionsMonitor options, OptionsBuilder optionsBuilder) where TOptions : class => options.Get(optionsBuilder.Name);
}
}