Die Using Directive erlaubt die Verwendung eines in einem Namensraum definierten Typs, ohne einen vollständig qualifizierten Namensraum für diesen Typ anzugeben. Das Hinzufügen des globalen Modifikators zur Using-Direktive bedeutet, dass using auf alle Dateien in der Kompilierung (meist ein Projekt) angewendet wird. Die globale Anwendungsrichtlinie wurde zu C# 10 hinzugefügt. Die Syntax lautet:
Die empfohlene Praxis ist, den globalen Import in einer separaten Datei zu speichern (eine für jedes Projekt), z. B. kann er heißen:GlobalUsings.csDatei.
Einführung in die offizielle Microsoft-Dokumentation:Der Hyperlink-Login ist sichtbar.
Wir legen den von Startup.cs referenzierten Namensraum in die GlobalUsings.cs Datei ein und erinnern uns daran, vor der Verwendung hinzuzufügenglobalSchlüsselwörter!! Der Code lautet wie folgt:
Zu diesem Zeitpunkt meldet der Compiler einen Fehler, dass "die Funktion global mit dem Befehl in C# 8.0 nicht verfügbar ist, bitte verwenden Sie Sprachversion 10.0 oder neuer", wie in der untenstehenden Abbildung gezeigt:
In diesem Fall, nehmen wir das ASP.NET Core 3.1-Projekt als Beispiel, müssen Sie nur doppelt auf das Projekt (.csproj-Datei) klicken und LangVersion zum Project-> PropertyGroup-Knoten hinzufügen, wie in der folgenden Abbildung gezeigt:
Dieser Satz bedeutet, dass das Projekt die Syntax von C# 10 bezüglich der C#-Sprachversionierung verwendet:Der Hyperlink-Login ist sichtbar.
Die Datei wird gleichzeitig nicht als Fehler gemeldetStartup.cs Der von der Datei referenzierte Namensraum ist ausgegraut, wie in der untenstehenden Abbildung dargestellt:
Wir entfernen die Referenzen von Program.cs, Startup.cs und kompilieren dann das Projekt wie im untenstehenden Bild gezeigten neu:
gebrauchenILSpy_binaries_7.2.0.6702-preview2Die resultierende WebApplication1.dll Datei wird wie im folgenden Bild gezeigt dekompiliert:
Die Startdatei hat weiterhin Nutzungsreferenzen, und es werden keine GlobalUsings.cs Dateien generiert, sodass globale Nutzung nur Syntaxzucker ist, was einige mühsame Programmierarbeiten vereinfacht und die Arbeitseffizienz erheblich verbessert.
.NET 6Implizite NamensräumeReferenzen werden ebenfalls durch die Verwendung der globalen U-Funktion-Funktion erreicht.
Derzeit werden verschiedene Standard-Namensräume für verschiedene SDK-Typen hinzugefügt, und die bestehenden sind wie folgt:
Für Microsoft.NET.Sdk ist der Standardnamensraum wie folgt:
Für Microsoft.NET.Sdk.Web:
Für Microsoft.NET.Sdk.Worker:
Wenn Sie implizite Namensraumreferenzen deaktivieren möchten, können Sie diese Funktion vollständig über DisableImplicitNamespaceImports deaktivieren, wie folgt:
Wenn Sie nur die Referenzen auf Microsoft.NET.Sdk.Web deaktivieren möchten, können Sie die DisableImplicitNamespaceImports_Web wie folgt konfigurieren:
Lassen Sie uns ein neues .NET 6.0-Konsolenprojekt zum Testen erstellen, und das gesamte Projekt hat nur Program.cs eine Datei, wie in der untenstehenden Abbildung gezeigt:
ConsoleApp1.csproj ist wie folgt konfiguriert:
Wo befindet sich die globale Nutzungsrichtlinie? Öffnen Sie das obj-Verzeichnis (das die während der Kompilierung generierten Zwischendateien enthält) und finden Sie es im Debug\net6.0-VerzeichnisConsoleApp1.GlobalUsings.g.csDatei:
ConsoleApp1.GlobalUsings.g.cs Dateien werden automatisch basierend auf den ImplicitUsings-Eigenschaftseinstellungen des Projekts generiert.
(Ende)
|