.NET 6 中的隐式命名空间引用

 更新时间:2021-11-14 14:10:08   作者:佚名   我要评论(0)

目录1、历史变化2、新版本介绍3、More usage4、More前言:


之前写过一篇隐式命名空间引用的大概介绍,在一些小的测试项目中也有在用,一直

前言:

之前写过一篇隐式命名空间引用的大概介绍,在一些小的测试项目中也有在用,一直没作为示例给大家分享,主要原因在于之前看到了一个关于隐式命名空间引用的 Github issue 提到会有一些破坏性的变更,现在 .NET 6 RC 1 版本已经发布,RC 版本的发布也就意味着新功能的开发已经基本结束,正式版发布之前会专注于各种测试和 BUG 修复。

1、历史变化

.NET 6 Preview 7 时微软已经开始引入隐式命名空间引用的功能,可以参考之前的文章 .NET 6 即将到来的新特性  隐式命名空间引用

Preview 7 的时候这个功能默认是启用的,如果需要禁用需要配置 DisableImplicitNamespaceImports 来禁用,而在 .NET 6 RC 1 版本中默认是禁用的,需要显式的通过 ImplicitUsings 来启用,微软的 ASP.NET Core RC 1 的博客文章中有所提及,但是很简略,一带而过了。

在 Preview 7 中如果想要使用新加一个 namespace 引用,可以在项目文件中配置 <Import Inclde="Microsoft.Extensions.Logging"/> 来增加一个全局的命名空间,在 RC1 中将变成 <Using Include="Microsoft.Extensions.Logging"/>

类似地,如果要移除某一个命名空间的引用,之前是 <Import Remove="Microsoft.Extensions.Logging"/> 而现在是 <Using Remove="Microsoft.Extensions.Logging"/>

2、新版本介绍

使用 .NET 6 RC 1 SDK 创建应用之后,项目文件是这样的

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net6.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
  </PropertyGroup>

</Project>

相比 .NET 6 Preview 7 多了一个 ImplicitUsings 的属性,这个就是前面提到的用于启用隐式命名空间引用的配置属性,可以配置为 enable 或者 true 来启用这个特性

3、More usage

来看下面的这个示例:

MyFile.Exists("");

WriteLine("Hello, World!");

InvokeHelper.TryInvoke(() => WriteLine("ImplicitUsingSample"));

项目文件中自定义的命名空间引用

<ItemGroup>
    <Using Include="System.Console" Static="true" /> <!-- Global using static -->
    <Using Include="WeihanLi.Common.Helpers" /> <!-- Global using -->
    <Using Include="System.IO.File" Alias="MyFile" /> <!-- Global using alias -->
    <Using Remove="System" /> <!-- Remove namespace using -->
</ItemGroup>

自动生成的 Global Using 文件内容如下(自动生成文件位置在 obj/Debug/$(TargetFramework)/*.GlobalUsings.g.cs ):

// <auto-generated/>
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.Threading;
global using global::System.Threading.Tasks;
global using global::WeihanLi.Common.Helpers;
global using MyFile = global::System.IO.File;
global using static global::System.Console;

默认的命名空间引用和所使用的 SDK 有关系,目前确定的如下:

4、More

个人觉得这是一个好的变更,如果默认启用的话,有很多项目在升级的时候可能就会有冲突导致无法正常的编译,而默认禁用,升级的时候就能避免这种 breaking change,升级可以更加平滑,只是对于 Preview 7 升级过来的用户来说可能会有些难受,不过因为还是 preview 的功能有一些破坏性的变更也是可以接受的。

有了 Global using 之后,之前很多做不到的事情,现在就变得可能,比如使用类型别名

使用起来可能会发现有一些 BUG ==,发现 BUG 在 Github 上提 issue 就好了

如果没有体验过 .NET 6 的 Preview 版本,非常推荐尝试一下 .NET 6 RC 1,新功能已经基本确定了,进行更多的测试来努力让 .NET 6 成为一个高质量的 Release

到此这篇关于.NET 6 中的隐式命名空间引用的文章就介绍到这了,更多相关.NET 6 中的隐式命名空间引用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
  • .NET6中哈希算法的简化用法的实现
  • CefSharp v62修改方法(支持.net4.0)
  • ASP.NET Core项目配置教程(6)
  • ASP.NET Core部署前期准备 使用Hyper-V安装Ubuntu Server 16.10
  • ASP.NET MVC5+EF6+EasyUI 后台管理系统(81)-数据筛选(万能查询)实例
  • ASP.NET MVC异步获取和刷新ExtJS6 TreeStore
  • ASP.NET MVC5+EF6+EasyUI后台管理系统 微信公众平台开发之资源环境准备
  • ASP.NET MVC5+EF6+EasyUI后台管理系统 微信公众平台开发之消息管理
  • .NET 6 即将到来的新特性 隐式命名空间引用

相关文章

  • .NET 6 中的隐式命名空间引用

    .NET 6 中的隐式命名空间引用

    目录1、历史变化2、新版本介绍3、More usage4、More前言: 之前写过一篇隐式命名空间引用的大概介绍,在一些小的测试项目中也有在用,一直
    2021-11-14
  • .NET 6 即将到来的新特性  隐式命名空间引用

    .NET 6 即将到来的新特性  隐式命名空间引用

    目录1、Sample2、How it works3、More前言: 今天看到一个更新,可以不需要写 using了,目前还没有正式发布,应该要到 .NET 6 Preview 7
    2021-11-14
  • ASP.NET Core 中间件的使用之全局异常处理机制

    ASP.NET Core 中间件的使用之全局异常处理机制

    目录1、创建项目2、创建全局异常过滤器3、依赖注入全局异常处理机制4、测试全局异常处理机制前言: 我们经常听到“秒修复秒上线”,觉得很
    2021-11-14
  • 解析Pytorch中的torch.gather()函数

    解析Pytorch中的torch.gather()函数

    参数说明 以官方说明为例,gather()函数需要三个参数,输入input,维度dim,以及索引index input必须为Tensor类型 dim为int类型,代表从哪个
    2021-11-14
  • 93充100,电费充值系统怎么做到的

    93充100,电费充值系统怎么做到的

    CPS的本质就是销售;你卖出货就赚钱。 在生活中话费水费电费充值是刚需,基本上每个月都有需求。电费充值不同于话费,电费的市场更大。
    2021-11-09
  • 月入过万 外卖小程序你知道怎么做吗

    月入过万 外卖小程序你知道怎么做吗

    怎么赚钱 美团外卖饿了么外卖赚钱小程序还能赚钱吗,老有人问能不能赚钱,那么今天就说一下逻辑 首先,分为cps悬赏和,赏金两种方式赏金属于打赏比较高的。cps的模式主要靠用户下单的结算金额,用户买的多你就赚的多,通常是在3~6%,美团是3,美团被制裁之后就降价了(可能是这个原因,据说预算不够了)。
    2021-11-08
  • 外卖CPS返利小程序源码分享

    外卖CPS返利小程序源码分享

    怎么赚钱         美团外卖饿了么外卖赚钱小程序还能赚钱吗,老有人问能不能赚钱,那么今天就说一下逻辑 首先,分为cps悬赏和,赏金两种方式赏金属于打赏比较高的。cps的模式主要靠用户下单的结算金额,用户买的多你就赚的多,通常是在3~6%,美团是3,美团被制裁之后就降价了(可能是这个原因,据说预算不够了)。  当然了,依赖外卖cps赚钱是不行的,当然要加点东西了。比如涵盖话费、视频会员、加油卡、礼品卡等多种品类折扣权益,吃、喝、玩、乐、购
    2021-11-08
  • 淘客从简单发单到精推社群,单群收益5000+的经验分享

    淘客从简单发单到精推社群,单群收益5000+的经验分享

    作为淘宝客,看到下面的这个聊天记录,应该是有点羡慕的。社群里多几个这样的粉丝,可能自己的收入也蹭蹭蹭上涨了。今天,我们就为大家邀请了运营这个社群的淘宝客–淘宝联
    2021-11-06
  • 怎样申请抖音团长(详细教程)

    怎样申请抖音团长(详细教程)

    微客云 http://www.wikeyun.cn/在说怎样申请抖音团长之前,我简单聊聊我现在对抖音团长的基础认知,先截一张图,这是抖音团长后台的近30天排名截图,是对外公开的。这个图可
    2021-11-06
  • 一个新手如何做直播?主播有哪些聊天技巧?

    一个新手如何做直播?主播有哪些聊天技巧?

    除了多笑,新手主播也要考虑更多丰富的表情和动作:比如适当的剪刀手卖萌,手比爱心的温馨,吐舌头的调皮。介绍产品中途也可以唱唱歌,增加一些灵动的小手势和表情,这会让
    2021-11-06

最新评论