Kasutamise direktiiv võimaldab kasutada nimeruumis määratletud tüüpi ilma selle tüübi jaoks täielikult kvalifitseeritud nimeruumi määramata. Globaalse modifikaatori lisamine kasutusdirektiivi tähendab, et kasutamine rakendatakse kõigile kompileeritud failidele (tavaliselt projektile). Globaalne kasutusdirektiiv lisati C#10-le. Süntaks on:
Soovitatav praktika on panna globaalne import eraldi faili (üks iga projekti jaoks), nt seda saab nimetada:GlobalUsings.csFail.
Microsofti ametliku dokumentatsiooni tutvustus:Hüperlingi sisselogimine on nähtav.
Paneme Startup.cs viidatud nimeruumi GlobalUsings.cs faili, meeles pidades lisamist enne kasutamistGlobaalneMärksõnad!! Kood on järgmine:
Sel hetkel teatab kompilaator veast, milles öeldakse, et "funktsioon globaalne käsuga ei ole saadaval C# 8.0-s, palun kasutage keeleversiooni 10.0 või uuemat", nagu näidatud alloleval joonisel:
Sellisel juhul, võttes näiteks ASP.NET Core 3.1 projekti, tuleb vaid topeltklõpsata projektil (.csproj fail) ja lisada LangVersion Project-> PropertyGroup sõlme, nagu näidatud järgmises joonises:
See lause tähendab, et projekt kasutab C# 10 süntaksit C# keele versioonide puhul:Hüperlingi sisselogimine on nähtav.
Faili ei kajastata veana samal ajalStartup.cs Faili viidatud nimeruum on halliks, nagu alloleval joonisel näidatud:
Eemaldame Program.cs, Startup.cs viited ja kompileerime projekti uuesti, nagu alloleval pildil näidatud:
kasutamaILSpy_binaries_7.2.0.6702-preview2Tulemuseks olev WebApplication1.dll fail dekompileeritakse, nagu on näidatud järgmisel pildil:
Käivitusfailis on endiselt kasutusviited ja GlobalUsings.cs faile ei genereerita, seega on globaalne kasutamine lihtsalt süntaksi suhkur, mis lihtsustab tüütut programmeerimistööd ja parandab oluliselt töö efektiivsust.
.NET 6Kaudsed nimeruumidViiteid saadakse ka globaalse kasutamise funktsiooni abil.
Praegu on erinevate SDK tüüpide jaoks lisatud erinevad vaikimisi nimeruumid ning olemasolevad on järgmised:
Microsoft.NET.Sdk puhul on vaikimisi nimeruum järgmine:
Microsoft.NET.Sdk.Web kohta:
Microsoft.NET.Sdk.Worker kohta:
Kui soovite implitsiitseid nimeruumi viiteid keelata, saate selle funktsiooni täielikult keelata DisableImplicitNamespaceImports kaudu, järgmiselt:
Kui soovid lihtsalt keelata viited Microsoft.NET.Sdk.Web-ile, saad DisableImplicitNamespaceImports_Web seadistada järgmiselt:
Loome uue .NET 6.0 konsooliprojekti testimiseks ja kogu projektil on Program.cs ainult üks fail, nagu alloleval joonisel näidatud:
ConsoleApp1.csproj on seadistatud järgmiselt:
Kus asub globaalne kasutusdirektiiv? Ava obj kataloog (mis sisaldab kompileerimisprotsessi käigus genereeritud vahepealseid ajutisi faile) ja leia see Debug\net6.0 kataloogistConsoleApp1.GlobalUsings.g.csFail:
ConsoleApp1.GlobalUsings.g.cs failid genereeritakse automaatselt projekti ImplicitUsings omaduste seadistuste alusel.
(Lõpp)
|