Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Począwszy od platformy .NET 11, IStartupValidator uznano za przestarzałe. Podczas odwoływania się do tego interfejsu lub jego implementowania kompilator generuje ostrzeżenie SYSLIB0066 z komunikatem Implement IAsyncStartupValidator instead. Interfejs pozostaje dostępny i funkcjonalny pod kątem zgodności.
Przyczyna wycofania z użycia
Uruchamianie hosta ma asynchroniczny punkt wejścia poprzez element StartAsync. Nowe niestandardowe moduły sprawdzania poprawności uruchamiania powinny używać walidatorów IAsyncStartupValidator. Asynchroniczny interfejs ValidateAsync oznacza, że implementacje asynchroniczne nie muszą zapewniać nieużywanej metody synchronicznej Validate. Oba interfejsy są niezależne.
Workaround
Aby przeprowadzić migrację niestandardowego modułu sprawdzania poprawności uruchamiania, zaimplementuj i zarejestruj IAsyncStartupValidator zamiast tego. Użyj operacji asynchronicznych w ValidateAsync, gdy wymaga ich walidacja, i prześlij token anulowania. Zarejestruj implementację tylko w ramach udostępnianego przez nią kontraktu walidacji uruchamiania; nie rejestruj jej zarówno jako IStartupValidator, jak i IAsyncStartupValidator.
Aplikacje, które tylko wywołują OptionsBuilder<TOptions>.ValidateOnStart() i nie implementują bezpośrednio interfejsu modułu sprawdzania poprawności uruchamiania, zwykle nie muszą zmieniać kodu.
Pomijanie ostrzeżenia
Jeśli musisz użyć przestarzałego interfejsu, możesz wyłączyć ostrzeżenie w kodzie lub w pliku projektu.
Aby pominąć pojedyncze naruszenie, dodaj dyrektywy preprocesora do pliku źródłowego, aby wyłączyć, a następnie ponownie włączyć ostrzeżenie.
#pragma warning disable SYSLIB0066
// Code that uses the obsolete interface.
#pragma warning restore SYSLIB0066
Aby wyłączyć wszystkie SYSLIB0066 ostrzeżenia w projekcie, dodaj właściwość <NoWarn> do pliku projektu.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<NoWarn>$(NoWarn);SYSLIB0066</NoWarn>
</PropertyGroup>
</Project>
Aby uzyskać więcej informacji, zobacz Pomijanie ostrzeżeń.