Директивата за използване позволява използването на тип, дефиниран в пространство от имена, без да се специфицира напълно квалифицирано пространство от имена за този тип. Добавянето на глобален модификатор към директивата за използване означава, че използването ще се приложи към всички файлове в компилацията (обикновено проект). Глобалната директива за използване беше добавена към C# 10. Синтаксисът е:
Препоръчителната практика е глобалният импорт да се постави в отделен файл (по един за всеки проект), например може да се именува:GlobalUsings.csФайл.
Официално въведение в документацията на Microsoft:Входът към хиперлинк е видим.
Въвеждаме пространството от имена, на което се позовава Startup.cs, във файла GlobalUsings.cs, като не забравяйте да добавим преди да използвамеГлобаленКлючови думи!! Кодът е следният:
В този момент компилаторът ще съобщи за грешка, че "функцията глобална чрез командата не е налична в C# 8.0, моля използвайте езикова версия 10.0 или по-нова", както е показано на фигурата по-долу:
В този случай, ако вземете проекта ASP.NET Core 3.1 за пример, трябва само да кликнете два пъти върху проекта (.csproj файл) и да добавите LangVersion към възела Project-> PropertyGroup, както е показано на следната фигура:
Това изречение означава, че проектът използва синтаксиса на C# 10 относно версионирането на езика C#:Входът към хиперлинк е видим.
Файлът не се докладва като грешка, в същото времеStartup.cs Namespace-ът, на който се позовава файлът, е сив, както е показано на фигурата по-долу:
Премахваме препратките на Program.cs, Startup.cs и след това компилираме проекта, както е показано на изображението по-долу:
използвамILSpy_binaries_7.2.0.6702-предварителен преглед2Полученият WebApplication1.dll файл се декомпилира, както е показано на следното изображение:
Стартиращият файл все още има референции за използване и не се генерират GlobalUsings.cs файлове, така че глобалното използване е просто синтактичен захар, което опростява някои досадни програмни задачи и значително подобрява ефективността на работата.
.NET 6Имплицитни пространства от именаРеференциите се постигат и чрез използване на глобалната функция за използване.
В момента се добавят различни стандартни пространства от имена за различни типове SDK, като съществуващите са както следва:
За Microsoft.NET.Sdk стандартното пространство на имената е следното:
За Microsoft.NET.Sdk.Web:
За Microsoft.NET.Sdk.Worker:
Ако искате да изключите имплицитните препратки към пространства от имена, можете напълно да изключите тази функция чрез DisableImplicitNamespaceImports, както следва:
Ако просто искате да изключите препратките към Microsoft.NET.Sdk.Web, можете да конфигурирате DisableImplicitNamespaceImports_Web по следния начин:
Нека създадем нов проект за .NET 6.0 конзола за тестване, като целият проект има само Program.cs един файл, както е показано на фигурата по-долу:
ConsoleApp1.csproj е конфигуриран по следния начин:
Къде е глобалната директива за използване? Отворете директорията obj (която съдържа междинните временни файлове, генерирани по време на компилацията) и я намерете в директорията Debug\net6.0ConsoleApp1.GlobalUsings.g.csФайл:
ConsoleApp1.GlobalUsings.g.cs файлове се генерират автоматично въз основа на параметрите на свойствата ImplicitUsing на проекта.
(Край)
|