与 相关且标记为 Microsoft.Extensions.Configuration 的RequiresUnreferencedCodeAttribute 也被注释,以在修剪时保留至少一些必要的成员。 这使得 API 在进行剪裁时能够部分发挥功能,同时仍然生成剪裁警告。 批注现已完全删除。 建议使用者迁移到可以可靠进行代码裁剪的源代码生成器。
引入的版本
.NET 10
以前的行为
以前,受影响的 API 适用于一些有限的用例,同时在发布时生成修剪警告。 这些 API 被注释为在修剪时保留至少一些必要的成员,使该 API 在修剪场景中部分可用。
新行为
从 .NET 10 开始, 受影响的 API 现在适用于更有限的用例,同时仍会在发布时生成剪裁警告。
破坏性变更的类型
此更改可能会影响 二进制兼容性。
更改原因
为了从产品中删除对 DynamicallyAccessedMemberTypes.All 的使用,批注已被移除。
建议的措施
使用绑定配置源生成器,它可与修剪可靠地配合使用,并提供这些 API 的修剪安全替代方案。
受影响的 API
- Microsoft.Extensions.Configuration.ConfigurationBinder.Get(IConfiguration, Type, Action<BinderOptions>)
- Microsoft.Extensions.Configuration.ConfigurationBinder.GetValue(IConfiguration, Type, String)
- Microsoft.Extensions.Configuration.ConfigurationBinder.GetValue(IConfiguration, Type, String, Object)
- Microsoft.Extensions.Configuration.ConfigurationBinder.GetValue<T>(IConfiguration, String)
- Microsoft.Extensions.Configuration.ConfigurationBinder.GetValue<T>(IConfiguration, String, T)
- Microsoft.Extensions.Configuration.ConfigurationBinder.Get<T>(IConfiguration)
- Microsoft.Extensions.Configuration.ConfigurationBinder.Get<T>(IConfiguration, Action<BinderOptions>)
- Microsoft.Extensions.Logging.Configuration.LoggerProviderOptions.RegisterProviderOptions<TOptions,TProvider>(IServiceCollection)
- Microsoft.Extensions.Logging.ConsoleLoggerExtensions.AddConsoleFormatter<TFormatter,TOptions>(ILoggingBuilder)
- Microsoft.Extensions.Logging.ConsoleLoggerExtensions.AddConsoleFormatter<TFormatter,TOptions>(ILoggingBuilder, Action<TOptions>)
- Microsoft.Extensions.DependencyInjection.OptionsBuilderConfigurationExtensions.BindConfiguration<TOptions>(OptionsBuilder<TOptions>, String, Action<BinderOptions>)
- Microsoft.Extensions.DependencyInjection.OptionsBuilderConfigurationExtensions.Bind<TOptions>(OptionsBuilder<TOptions>, IConfiguration)
- Microsoft.Extensions.DependencyInjection.OptionsBuilderConfigurationExtensions.Bind<TOptions>(OptionsBuilder<TOptions>, IConfiguration, Action<BinderOptions>)
- Microsoft.Extensions.DependencyInjection.OptionsConfigurationServiceCollectionExtensions.Configure
- Microsoft.Extensions.Options.ConfigureFromConfigurationOptions<TOptions>
- Microsoft.Extensions.Options.NamedConfigureFromConfigurationOptions<TOptions>