Skip to content

全局和隐式usings

在.NET 6及更高版本中,global using 指令允许你在整个项目中定义全局的 using 指令,避免了在每个文件顶部重复相同的 using 声明。这样做可以使代码更加整洁,并减少模板代码的冗余。要启用并使用 global using 指令,请按照以下步骤操作:

1. 创建 GlobalUsings.cs 文件(或任何你喜欢的文件名)

可以在任何 .cs 文件中添加 global using 指令,但为了维护的便利性,建议将所有全局 using 指令集中在项目的根目录下,通常命名为 GlobalUsings.cs,。

通过在 using 关键字前添加 global 关键字,这些命名空间将在整个项目中自动可用,无需在每个 .cs 文件顶部重复声明。

打开刚创建的 GlobalUsings.cs 文件,并添加你想要在整个项目中全局使用的命名空间。例如:

GlobalUsings.cs

csharp
global using System;
global using System.Text.Json;
global using Microsoft.AspNetCore.Mvc; 
global using Newtonsoft.Json; 
global using Swashbuckle.AspNetCore.Swagger;
global using Swashbuckle.AspNetCore.SwaggerUI;
// 添加更多根据项目需求的全局 using 指令

2. 启用隐式命名空间

在项目的.csproj 文件(双击项目的类库或者程序即可编辑),添加 ****来启用

xxx..csproj

ts
  <PropertyGroup>
    <TargetFramework>net7.0</TargetFramework>
	  <Nullable>disable</Nullable>
    <ImplicitUsings>enable</ImplicitUsings>
    <InvariantGlobalization>false</InvariantGlobalization>
    <GenerateDocumentationFile>True</GenerateDocumentationFile>
  </PropertyGroup>
  • 使用 global using 时要谨慎,因为它会在整个项目范围内引入命名空间,可能会导致命名冲突或意外的名称解析行为。
  • 对于大型项目或库,考虑只将最通用和不太可能引起冲突的命名空间设置为全局,以避免潜在问题。

global using 是.NET 6引入的一个非常有用的特性,能够显著减少重复代码并提高项目的整洁性。

一旦设置完成,就不需要再每个 .cs 文件顶部重复声明这些 using 指令了。这将使得新创建的文件更加干净,且减少了因忘记添加常用 using 指令导致的编译错误。