Brugsdirektivet tillader brug af en type defineret i et navnerum uden at specificere et fuldt kvalificeret navnerum for den type. Tilføjelse af den globale modifikator til using direktivet betyder, at using vil blive anvendt på alle filer i kompileringen (normalt et projekt). Den globale using directive blev tilføjet til C# 10. Syntaksen er:
Den anbefalede praksis er at lægge den globale import i en separat fil (én for hvert projekt), f.eks. kan den hedge:GlobalUsings.csFil.
Microsofts officielle dokumentationsintroduktion:Hyperlink-login er synlig.
Vi lægger det navnerum, som Startup.cs refererer til, ind i GlobalUsings.cs-filen og husker at tilføje, før vi bruger detGlobaltNøgleord!! Koden er som følger:
På dette tidspunkt vil compileren rapportere en fejl, der siger, at "funktionen global med kommandoen ikke er tilgængelig i C# 8.0, brug venligst sprogversion 10.0 eller nyere", som vist i figuren nedenfor:
I dette tilfælde, hvis vi tager ASP.NET Core 3.1-projektet som eksempel, behøver du blot dobbeltklikke på projektet (.csproj-filen) og tilføje LangVersion til Project-> PropertyGroup-noden, som vist i følgende figur:
Denne sætning betyder, at projektet bruger syntaksen fra C# 10 i forhold til C#-sprogversionering:Hyperlink-login er synlig.
Filen rapporteres samtidig ikke som en fejlStartup.cs Navnerummet, som filen refererer til, er gråtonet, som vist i figuren nedenfor:
Vi fjerner referencerne til Program.cs, Startup.cs og genkompilerer derefter projektet som vist på billedet nedenfor:
brugILSpy_binaries_7.2.0.6702-preview2Den resulterende WebApplication1.dll-fil dekompileres som vist på følgende billede:
Startfilen har stadig referencer, og der genereres ingen GlobalUsings.cs filer, så global brug er bare syntakssukker, hvilket forenkler noget kedeligt programmeringsarbejde og forbedrer arbejdseffektiviteten betydeligt.
.NET 6Implicitte navnerumReferencer opnås også ved brug af funktionen global using.
I øjeblikket tilføjes forskellige standardnavnerum for forskellige SDK-typer, og de eksisterende er som følger:
For Microsoft.NET.Sdk er standardnavnerummet som følger:
For Microsoft.NET.Sdk.Web:
For Microsoft.NET.Sdk.Worker:
Hvis du vil deaktivere implicitte navnerumsreferencer, kan du deaktivere denne funktion helt via DisableImplicitNamespaceImports, som følger:
Hvis du bare vil deaktivere referencer til Microsoft.NET.Sdk.Web, kan du konfigurere DisableImplicitNamespaceImports_Web som følger:
Lad os oprette et nyt .NET 6.0 konsolprojekt til test, og hele projektet har kun Program.cs én fil, som vist i figuren nedenfor:
ConsoleApp1.csproj er konfigureret som følger:
Hvor er direktivet om global brug? Åbn obj-mappen (som indeholder de mellemliggende midlertidige filer genereret under kompileringsprocessen) og find den i Debug\net6.0-mappenConsoleApp1.GlobalUsings.g.csFil:
ConsoleApp1.GlobalUsings.g.cs filer genereres automatisk baseret på projektets ImplicitUsings-egenskabsindstillinger.
(Slut)
|