Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Algunas API relacionadas con Microsoft.Extensions.Configuration que se marcaron como RequiresUnreferencedCodeAttribute también se anotaron para conservar al menos algunos de los miembros necesarios al recortar. Esto hizo que la API funcione parcialmente al recortar, al tiempo que genera advertencias de recorte. Ahora se quitan completamente las anotaciones. Se recomienda a los usuarios migrar al generador de fuentes que funcione de forma confiable con el proceso de eliminación.
Versión introducida
.NET 10
Comportamiento anterior
Anteriormente, las API afectadas funcionaban con algunos casos de uso limitados al generar advertencias de recorte en tiempo de publicación. Estas API se anotaron para conservar al menos algunos de los miembros necesarios al recortar, lo que hace que la API funcione parcialmente en escenarios recortados.
Nuevo comportamiento
A partir de .NET 10, las API afectadas ahora funcionan con casos de uso aún más limitados, mientras siguen generando advertencias de recorte al momento de publicación.
Tipo de cambio disruptivo
Este cambio puede afectar a la compatibilidad binaria.
Motivo del cambio
Las anotaciones se quitaron como parte de un esfuerzo por eliminar el uso de DynamicallyAccessedMemberTypes.All en el producto.
Acción recomendada
Usa el generador de origen de configuración de enlace, que opera de manera confiable con el recorte y ofrece una alternativa segura de recorte a estas API.
Las APIs afectadas
- 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>