前言在《.NET 6新特性试用 | 隐式using指令》中 , 我们介绍过 , 开启隐式using指令时,会在编译时生成 GlobalUsings.g.cs 文件,加入大量 global using 指令:
// global using global::Microsoft.AspNetCore.Builder;global using global::Microsoft.AspNetCore.Hosting;global using global::Microsoft.AspNetCore.Http;global using global::Microsoft.AspNetCore.Routing;global using global::Microsoft.Extensions.Configuration;global using global::Microsoft.Extensions.DependencyInjection;global using global::Microsoft.Extensions.Hosting;global using global::Microsoft.Extensions.Logging;global using global::System;global using global::System.Collections.Generic;global using global::System.IO;global using global::System.Linq;global using global::System.Net.Http;global using global::System.Net.Http.Json;global using global::System.Threading;global using global::System.Threading.Tasks;
这样的好处是 , 不用在每个 cs 文件中写using指令了 。
但是,如果不想自动引入某个 global using 命名空间,怎么办?
思路上次,我们已经分析出,global using 具体值来源于项目引用的SDK 。
例如 , C:\\Program Files\\dotnet\\sdk\\6.0.100\\Sdks\\Microsoft.NET.Sdk.Web\\Sdk\\Sdk.props 是这样引用的:
<ItemGroup Condition=\"\'$(Language)\' == \'C#\' AND (\'$(ImplicitUsings)\' == \'true\' or \'$(ImplicitUsings)\' == \'enable\')\"><Using Include=\"System.Net.Http.Json\" /><Using Include=\"Microsoft.AspNetCore.Builder\" /><Using Include=\"Microsoft.AspNetCore.Hosting\" /><Using Include=\"Microsoft.AspNetCore.Http\" /><Using Include=\"Microsoft.AspNetCore.Routing\" /><Using Include=\"Microsoft.Extensions.Configuration\" /><Using Include=\"Microsoft.Extensions.DependencyInjection\" /><Using Include=\"Microsoft.Extensions.Hosting\" /><Using Include=\"Microsoft.Extensions.Logging\" /></ItemGroup>
那么,只需要把文件中对应行删除就可以了?!
但是,这种方式必须为所有开发机器都修改,肯定不现实 。
那既然有Using Include,会不会还有Using Exclude呢?
实现你还别说,还真有:

文章插图
但是 , 在项目文件中添加了下列内容后,编译报错:
<ItemGroup><Using Exclude=\"Microsoft.AspNetCore.Builder\" /></ItemGroup>

文章插图
按照错误提示 , 我们改用 Remove:
<ItemGroup><Using Remove=\"Microsoft.AspNetCore.Builder\" /></ItemGroup>
再次编译出错,这次的错误是正确的,因为我们已经成功的移除了指定 global using 命名空间 。
文章插图
结论【强制删除命名空间的方法 重命名需要管理员权限】如果你对 global using 有特定要求,可以采取本文中的方案进行移除 。
- 强制换行excel里面哪个键 excel一个框里的换行设置
- css文本换行属性 css强制换行代码的写法
- 电脑怎么恢复删除的文件 免费恢复回收站清空的文件
- 重装系统后怎么删除多余系统 电脑双系统怎么删除一个
- 有几页不需要的页码怎么删 word文档页码怎么删除
- 电脑文件删不掉怎么强制删除 删除文件需要管理员权限怎么弄
- 批量新建文件夹并命名 文件夹批量改名的步骤
- 怎么强制删除正在使用的文件 u盘文件无法删除怎么处理
- 如何一键批量删除好友 手机上怎样删除qq好友
- 强力删除文件粉碎的工具 手机粉碎文件怎么操作