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.
A partir de .NET 11, IStartupValidator está obsoleto. Al hacer referencia a esta interfaz o implementarla, el compilador genera una advertencia SYSLIB0066 con el mensaje Implement IAsyncStartupValidator instead. La interfaz permanece disponible y funcional para la compatibilidad.
Motivo de obsolescencia
El inicio del host tiene un punto de entrada asincrónico a través de StartAsync. Los nuevos validadores de inicio personalizados deben usar IAsyncStartupValidator. Su contrato asincrónico ValidateAsync significa que las implementaciones asincrónicas no necesitan proporcionar un método sincrónico Validate no utilizado. Las dos interfaces son independientes.
Workaround
Para migrar un validador de inicio personalizado, implemente y registre IAsyncStartupValidator en su lugar. Utilice operaciones asincrónicas en ValidateAsync cuando la validación las requiera y reenvíe el token de cancelación. Registre la implementación únicamente bajo el contrato de validación de inicio que proporciona; no la registre tanto en IStartupValidator como en IAsyncStartupValidator.
Las aplicaciones que solo llaman OptionsBuilder<TOptions>.ValidateOnStart() y no implementan directamente una interfaz de validador de inicio normalmente no necesitan cambiar su código.
Supresión de una advertencia
Si debe usar la interfaz obsoleta, puede suprimir la advertencia en el código o en el archivo del proyecto.
Para suprimir una sola infracción, agregue directivas de preprocesador al archivo de origen para deshabilitar y, a continuación, vuelva a habilitar la advertencia.
#pragma warning disable SYSLIB0066
// Code that uses the obsolete interface.
#pragma warning restore SYSLIB0066
Para suprimir todas las SYSLIB0066 advertencias del proyecto, agregue una <NoWarn> propiedad al archivo del proyecto.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<NoWarn>$(NoWarn);SYSLIB0066</NoWarn>
</PropertyGroup>
</Project>
Para obtener más información, vea Suprimir advertencias.