Direktiva o použití umožňuje použití typu definovaného ve jmenném prostoru bez specifikace plně kvalifikovaného jmenného prostoru pro tento typ. Přidání globálního modifikátoru do směrnice using znamená, že using bude aplikováno na všechny soubory v kompilaci (obvykle projektu). Globální direktiva pro použití byla přidána do C# 10. Syntaxe je:
Doporučenou praxí je vložit globální import do samostatného souboru (jeden pro každý projekt), např. může být pojmenován:GlobalUsings.csSoubor.
Úvod do oficiální dokumentace Microsoftu:Přihlášení k hypertextovému odkazu je viditelné.
Jmenný prostor, na který Startup.cs odkazuje, jsme vložili do souboru GlobalUsings.cs, přičemž jsme nezapomněli přidat před použitímGlobálníKlíčová slova!! Kód je následující:
V tuto chvíli kompilátor hlásí chybu, že "funkce globální using příkaz není dostupná v C# 8.0, použijte prosím jazykovou verzi 10.0 nebo novější", jak je znázorněno na obrázku níže:
V tomto případě, například u projektu ASP.NET Core 3.1, stačí dvakrát kliknout na projekt (soubor .csproj) a přidat LangVersion do uzlu PropertyGroup Project->, jak je znázorněno na následujícím obrázku:
Tato věta znamená, že projekt používá syntaxi C# 10 ohledně verzí jazyka C#:Přihlášení k hypertextovému odkazu je viditelné.
Soubor není zároveň hlášen jako chybaStartup.cs Jmenný prostor na který se soubor odkazuje je šedá, jak je znázorněno na obrázku níže:
Odstraňujeme odkazy na Program.cs, Startup.cs a poté projekt znovu kompilujeme, jak je vidět na obrázku níže:
používatILSpy_binaries_7.2.0.6702-preview2Výsledný WebApplication1.dll soubor je dekompilován, jak je znázorněno na následujícím obrázku:
Spouštěcí soubor stále obsahuje reference na použití a žádné GlobalUsings.cs soubory se negenerují, takže globální použití je jen syntaxový cukr, což zjednodušuje některou zdlouhavou programátorskou práci a výrazně zvyšuje efektivitu práce.
.NET 6Implicitní jmenné prostoryReference jsou také dosaženy pomocí funkce globálního použití.
V současnosti jsou přidávány různé výchozí jmenné prostory pro různé typy SDK a stávající jsou následující:
Pro Microsoft.NET.Sdk je výchozí jmenný prostor následující:
Pro Microsoft.NET.Sdk.Web:
Pro Microsoft.NET.Sdk.Worker:
Pokud chcete zakázat implicitní odkazy na jmenné prostory, můžete tuto funkci zcela vypnout pomocí DisableImplicitNamespaceImports, a to následovně:
Pokud chcete pouze zakázat odkazy na Microsoft.NET.Sdk.Web, můžete DisableImplicitNamespaceImports_Web nastavit následovně:
Vytvoříme nový .NET 6.0 konzolový projekt pro testování a celý projekt má pouze Program.cs jeden soubor, jak ukazuje obrázek níže:
ConsoleApp1.csproj je nakonfigurován následovně:
Kde je globální direktiva o používání? Otevřete adresář obj (který obsahuje mezilehlé dočasné soubory generované během kompilace) a najděte ho v adresáři Debug\net6.0ConsoleApp1.GlobalUsings.g.csSoubor:
ConsoleApp1.GlobalUsings.g.cs soubory jsou automaticky generovány na základě nastavení vlastností ImplicitUsings projektu.
(Konec)
|