.NET中的Global Using是什么?如何减少每个文件中的using指令?

来源:这里教程网 时间:2026-02-21 17:30:05 作者:

Global Using 是 .NET 7 及更高版本中引入的一项功能,允许你将常用的

using
指令定义为“全局”的,从而避免在每个 C# 文件中重复写相同的命名空间引用。

启用 Global Using 后,你只需在项目中声明一次某个命名空间,编译器就会自动将其应用到整个项目的所有源文件中,大大减少冗余代码,提升代码整洁度。

如何使用 Global Using?

有几种方式可以添加全局 using 指令:

在单独的文件中定义:创建一个任意名称的文件(如
GlobalUsings.cs
),内容如下:
global using System;
global using System.Collections.Generic;
global using MyProject.Utilities;

在现有文件中添加 global using:可以在任意 .cs 文件顶部加入
global using
,但建议集中管理以提高可维护性。
通过 MSBuild 在项目文件中声明:在 .csproj 文件中直接配置全局 using,适合自动生成或统一框架级命名空间:
<ItemGroup>
  <Using Include="System" />
  <Using Include="MyProject.Core" />
  <Using Include="Microsoft.Extensions.DependencyInjection" />
</ItemGroup>

这种方式特别适合库项目或模板项目中预设常用命名空间。

Global Using 的作用范围和规则

全局 using 对整个项目生效,但遵循一些关键规则:

项目内所有 C# 文件都会隐式包含这些命名空间。 局部
using
仍可覆盖或补充全局声明。
如果某个文件不需要某个全局 using,无需处理——.NET 编译器会自动忽略未使用的引用。
global using
必须出现在命名空间或类型声明之前。

实际应用场景

典型用例包括:

统一引入项目层级的公共命名空间,如
MyApp.Domain
MyApp.Shared
减少常见框架命名空间的重复,如
System.Threading.Tasks
在最小 API 或 ASP.NET Core 项目中简化代码(.NET 6+ Web 模板默认启用)。

基本上就这些。合理使用 Global Using 能显著减少样板代码,让代码更聚焦业务逻辑。

相关推荐