La directiva using permite el uso de un tipo definido en un espacio de nombres sin especificar un espacio de nombres completamente cualificado para ese tipo. Añadir el modificador global a la directiva using significa que using se aplicará a todos los archivos de la compilación (normalmente un proyecto). La directiva global de uso se añadió a C# 10. La sintaxis es:
La práctica recomendada es poner la importación global en un archivo separado (uno para cada proyecto), por ejemplo, puede llamarse:GlobalUsings.csArchivo.
Introducción a la documentación oficial de Microsoft:El inicio de sesión del hipervínculo es visible.
Ponemos el espacio de nombres referenciado por Startup.cs en el archivo GlobalUsings.cs, recordando añadir antes de usarGlobal¡Palabras clave! El código es el siguiente:
En ese momento, el compilador informará de un error que indica que "la función global usando el comando no está disponible en C# 8.0, por favor use la versión 10.0 o posterior", como se muestra en la figura siguiente:
En este caso, tomando como ejemplo el proyecto ASP.NET Core 3.1, solo necesitas hacer doble clic en el proyecto (archivo .csproj) y añadir LangVersion al nodo PropertyGroup de Project->, como se muestra en la siguiente figura:
Esta frase significa que el proyecto utiliza la sintaxis de C# 10 respecto a la versionización del lenguaje C#:El inicio de sesión del hipervínculo es visible.
El archivo no se reporta como un error al mismo tiempoStartup.cs El espacio de nombres al que hace referencia el archivo está deslucido, como se muestra en la figura siguiente:
Eliminamos las referencias de Program.cs, Startup.cs y luego recompilamos el proyecto como se muestra en la imagen de abajo:
usoILSpy_binaries_7.2.0.6702-vista previa2El archivo de WebApplication1.dll resultante se descompila como se muestra en la siguiente imagen:
El archivo de inicio sigue usando referencias y no se generan archivos de GlobalUsings.cs, así que el uso global es solo azúcar sintáctica, lo que simplifica parte del trabajo tedioso de programación y mejora mucho la eficiencia del trabajo.
.NET 6Espacios de nombres implícitosLas referencias también se consiguen usando la característica global de uso.
Actualmente, se añaden diferentes espacios de nombres por defecto para distintos tipos de SDK, y los existentes son los siguientes:
Para Microsoft.NET.Sdk, el espacio de nombres predeterminado es el siguiente:
Para Microsoft.NET.Sdk.Web:
For Microsoft.NET.Sdk.Worker:
Si quieres desactivar las referencias implícitas al espacio de nombres, puedes desactivar esta función completamente a través de DisableImplicitNamespaceImports, de la siguiente manera:
Si solo quieres desactivar las referencias a Microsoft.NET.Sdk.Web, puedes configurar la DisableImplicitNamespaceImports_Web de la siguiente manera:
Creemos un nuevo proyecto de consola .NET 6.0 para pruebas, y todo el proyecto solo tiene Program.cs un archivo, como se muestra en la figura de abajo:
ConsoleApp1.csproj está configurado de la siguiente manera:
¿Dónde está la directiva global de uso? Abre el directorio obj (que alberga los archivos temporales intermedios generados durante el proceso de compilación) y encuéntralo en el directorio Debug\net6.0ConsoleApp1.GlobalUsings.g.csArchivo:
ConsoleApp1.GlobalUsings.g.cs archivos se generan automáticamente en función de la configuración de propiedades ImplicitUsings del proyecto.
(Fin)
|