Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Niektóre interfejsy API związane z Microsoft.Extensions.Configuration tym, które zostały oznaczone jako RequiresUnreferencedCodeAttribute również oznaczone jako adnotacje, aby zachować co najmniej niektóre z niezbędnych elementów członkowskich podczas przycinania. Spowodowało to, że interfejs API częściowo działał w trakcie przycinania, jednocześnie generując ostrzeżenia dotyczące przycinania. Adnotacje są teraz całkowicie usuwane. Zachęcamy użytkowników do migracji do generatora źródłowego, który działa niezawodnie przy przycinaniu.
Wersja wprowadzona
.NET 10
Poprzednie zachowanie
Wcześniej dotknięte interfejsy API działały z niektórymi ograniczonymi przypadkami użycia, generując ostrzeżenia dotyczące przycinania w momencie publikacji. Te interfejsy API zostały oznaczone adnotacjami, aby zachować co najmniej niektóre z niezbędnych składników podczas redukowania, dzięki czemu interfejs API częściowo działa w zredukowanych scenariuszach.
Nowe zachowanie
Począwszy od platformy .NET 10, objęte interfejsy API działają teraz z jeszcze bardziej ograniczonymi przypadkami użycia, jednocześnie generując ostrzeżenia dotyczące przycinania w czasie publikowania.
Typ zmiany przełamującej
Ta zmiana może mieć wpływ na zgodność binarną.
Przyczyna zmiany
Adnotacje zostały usunięte w ramach wysiłku na rzecz usunięcia użycia DynamicallyAccessedMemberTypes.All z produktu.
Zalecana akcja
Użyj generatora źródła konfiguracji powiązania, który działa niezawodnie z przycinaniem i zapewnia bezpieczną przycinanie alternatywę dla tych interfejsów API.
Interfejsy API, których dotyczy problem
- 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>