移除指定 global using 命名空间

前言

在《.NET 6新特性试用 | 隐式using指令》中,我们介绍过,开启隐式using指令时,会在编译时生成 GlobalUsings.g.cs 文件,加入大量 global using 指令:

// <auto-generated/>
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呢?

实现

你还别说,还真有:

59ebb7552768bfd52923d7fd76920f5e.png

但是,在项目文件中添加了下列内容后,编译报错:

<ItemGroup><Using Exclude="Microsoft.AspNetCore.Builder" />
</ItemGroup>

01b4d03845dbddec29027a3f20c468e6.png

按照错误提示,我们改用 Remove:

<ItemGroup><Using Remove="Microsoft.AspNetCore.Builder" />
</ItemGroup>

再次编译出错,这次的错误是正确的,因为我们已经成功的移除了指定 global using 命名空间。

f97b008236927eaa045226757b08c96b.png

结论

如果你对 global using 有特定要求,可以采取本文中的方案进行移除。

想了解更多内容,请关注我的个人公众号”My IO“

7c1537e2a9fe04a0f4a3b1b50f44ec0b.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/290577.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Ubuntu 每日技巧- 自动备份Ubuntu 14.04到Box云存储上

Ubuntu 每日技巧- 自动备份Ubuntu 14.04到Box云存储上 如今你已经升级或者安装了Ubuntu 14.04&#xff0c; 但是还有另外一件保护你的新系统需要做的事情&#xff1a;备份&#xff01; Ubuntu内置了一个备份工具 Dj Dup Backup Tool。它允许你备份你的系统并保存在本地或者通过…

程序员学好英语的方法(转)

英语对每个人来说都很重要&#xff0c;对于程序员来说尤其的重要&#xff0c;因为一些框架都是外国大佬写的&#xff0c;我们要时时的阅读 API,而这些 API 大多数都是英文了&#xff0c;所以我们程序员对英语的要求还是蛮高的。下面我整理的一些学习英语的方法&#xff0c;分享…

软件配置管理(四)代码味道与重构

文章目录重构的概念及意义代码味道代码味道分类1.类内味道1.1 可度量的味道-Measured Smells1.1.1 过长函数-Long Method1.1.2 过大类-Large Class1.1.3 过长参数列-Long Parameter List1.1.4 过多的注释-Comments1.2 不必要的复杂性-Unnecessary Complexity1.2.1 夸夸其谈的未…

Atitit。 《吠陀》 《梨俱吠陀》overview 经读后感  是印度上古时期一些文献的总称...

Atitit。 《吠陀》 《梨俱吠陀》overview 经读后感 是印度上古时期一些文献的总称 1. 印度古《吠陀》经&#xff0c;是印度上古时期一些文献的总称&#xff0c; 1 1.1.1. 医学意义 2 2. 梨俱吠陀&#xff08;篇章规模&#xff0c;字数&#xff09; 2 2.1. 神曲结构模式编辑 2 …

【C#/.NET 日常开发技巧】JWT+ActionFilter 简便控制器代码

微信公众号&#xff1a;趣编程ACE关注可了解更多.NET日常开发技巧&#xff0c;如需源码&#xff0c;请公众号留言 源码;JWTActionFilter 简便控制器代码这是微软关于过滤器的介绍&#xff1a;https://docs.microsoft.com/zh-cn/aspnet/core/mvc/controllers/filters?viewaspne…

在P2P市场中代替“看不见的手”的算法在哪里

◆ ◆ ◆ 本文简单探讨P2P市场机制&#xff0c;在此基础上探讨匹配撮合服务的可能性。 ◆ ◆ ◆ P2P市场机制基本定义与假设 首先&#xff0c;我们回顾一些基本定义与假设。P2P市场为“网络借贷是指个体和个体之间通过互联网平台实现的直接借贷。”[2]利率决定一般是平台决定借…

Android之adb jdwp获取debug版本app的进程Id

1、adb jdwp命令 adb jdwp获取debug版本app的进程Id 2、用途 带我们运行一个debug版本的app时候&#xff0c;我们需要过滤日志&#xff0c;我们一般采取这种办法 adb shell ps | grep package 得到进程ID,然后 adb logcat | grep pid 打印日志&#xff0c;有了adb jdwp&…

NPOI格式设置1

using NPOI.SS.UserModel; using NPOI.HSSF.UserModel; //创建Execl IWorkbook hssfworkbook new HSSFWorkbook(); //创建一个Sheet hssfworkbook.CreateSheet("Sheet1"); //HSSFWorkbook实例写入文件 FileStream file new FileStream("test.xls", F…

软件配置管理(五)常用重构技巧

文章目录一、重新组织函数1.提炼函数2.内联函数3.内联临时变量4.以查询取代临时变量5.引入解释性变量6.分解临时变量7.移除对参数的赋值8.以函数对象取代函数9.替换算法二、在对象之间搬移特性1.搬移函数2.搬移字段3.提炼类4.将类内联化5.隐藏“委托关系”6.移除中间人7.引入外…

关于他们回答的 怎样在桌面建一个python GUI的快捷方式 这个问题

在之前的2个随笔里面&#xff0c;有写过《找到可以解决问题的正确的人》、《如何提问》&#xff0c;说白了就是您需要帮助的时候&#xff0c;您得让对方100%懂你&#xff0c;否则没戏。 那么最近看到这样1个古老的问题&#xff0c;和一些没有答到"点儿"上的回答&…

Android之最简单和靠谱的监听Home键和菜单键(最近任务栏)

1、介绍ACTION_CLOSE_SYSTEM_DIALOGS /*** Broadcast Action: This is broadcast when a user action should request a* temporary system dialog to dismiss. Some examples of temporary system* dialogs are the notification window-shade and the recent tasks dialog.*…

.NET Core中行为过滤器ActionFilterAttribute的使用介绍

什么是行为过滤器&#xff1f;行为过滤器是你可以应用到一个控制器行为的&#xff0c;或者整个控制器的&#xff0c;来修改控制器行为的执行方式的属性。当请求进入 API 接口的时候&#xff0c;操作过滤器提供了一个进入之前&#xff08;before&#xff09;和进入之后&#xff…

基本线程同步(三)在同步的类里安排独立属性

声明&#xff1a;本文是《 Java 7 Concurrency Cookbook 》的第二章&#xff0c;作者&#xff1a; Javier Fernndez Gonzlez 译者&#xff1a;许巧辉 校对&#xff1a;方腾飞 在同步的类里安排独立属性 当你使用synchronized关键字来保护代码块时&#xff0c;你必须通过一…

旧项目适配iphone6和iphone plus

iphone手机屏幕大小和像素&#xff1a;1.iPhone5/5s 320x568&#xff0c;像素640x1136&#xff0c;2x2.iPhone6 375x667&#xff0c;像素750x1334&#xff0c;2x3.iPhone6 Plus 414x736&#xff0c;像素1242x2208&#xff0c;3x旧的项目在xcode6上运行在iphone6或…

java之用反射实现方法(已知实体对象和实体参数)

1、问题 有个函数需要在Android 23&#xff08;6.0&#xff09;以上&#xff0c;但是我们的API是22,所以这个实体对象调用不了这个函数&#xff0c;这个时候我们应该想到的是反射&#xff0c;切记。 2、实现 同时看我写得很着急&#xff0c;因为我是先class.forName("**…

Could not load the Tomcat server configuration at \Servers\Tomcat v7.0 Server at localhost-config

之前不小心删除了server的服务器设置&#xff0c;运行时各种报错Could not load the Tomcat server configuration at \Servers\Tomcat v7.0 Server at localhost-config &#xff0c;网上找到解决方法记录下&#xff1a; 第一步&#xff1a;将左边的classpath中的server删除掉…

软件项目组织管理(一)项目管理概述

文章目录什么是项目项目的特征项目的组成要素&#xff08;三维约束&#xff09;什么是项目管理什么是IT项目什么是软件项目管理项目管理的目标&#xff08;项目成功的标志&#xff09;软件项目失败的原因活动的3个基本特点人类活动分为两种类型作业和项目的区别&#xff08;必考…

ABP Framework 5.2 RC 版本发布及新增功能介绍

本文将介绍 ABP Framework 5.2 RC 版新增的主要功能&#xff1a;•单层解决方案模板•API 版本控制•源代码控制移除libs文件夹•对 Swagger UI 隐藏 ABP 默认端点•CMS Kit应用模块自定义全局 CSS 和 JavaScript关注 ABP Framework 最新开发进度&#xff0c;后面还会陆续发布新…

《计算机组成原理》----2.3 二进制运算

本节书摘来自华章出版社《计算机组成原理》一书中的第2章&#xff0c;第2.3节&#xff0c; 作 者 Computer Organization and Architecture: Themes and Variations&#xff3b;英&#xff3d;艾伦克莱门茨&#xff08;Alan Clements&#xff09; 著&#xff0c;沈 立 王苏峰…

JTable常见用法细则

JTable是Swing编程中很常用的控件,这里总结了一些常用方法以备查阅.欢迎补充,转载请注明作者与出处.一.创建表格控件的各种方式:1) 调用无参构造函数. JTable table new JTable();2) 以表头和表数据创建表格. Object[][] cellData {{"row1-col1", "row1-col…