.NET6新特性之 隐式命名空间引用

 更新时间:2021年11月22日 16:35:24   作者:494324190  
本文给大家分享的是 .NET6特新 隐式命名空间引用,如果我们要在新加一个命名空间的引用,可以在项目文件中配置增加<Using Include="命名空间"/>,如果需要移除一个命名空间可以这么做<Using Remove="命名空间"/>,下面来看看文章详细介绍内容吧,需要的朋友可以参考一下

早在 .NET 6 Preview 7版本中微软就已经引入隐式命名空间引用。在.NET Preview 7这个版本中这个功能是默认开启的,如果需要禁用它的化就需要配置DisableImplicitNamespaceImports来禁用,但是到了.NET6 RC1版本的时候这个功能是禁用的,如果要使用就需要通过ImplicitUsings来启用。到了.NET6正式版中这个功能又又又默认开启了。下面我们以.NET6正式拜为例,来看一下怎么使用它吧!

如果我们要在新加一个命名空间的引用,可以在项目文件中配置增加<Using Include="命名空间"/>,如果需要移除一个命名空间可以这么做<Using Remove="命名空间"/>

我们使用.NET 6创建应用之后,项目文件的内容类似下面这样:

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

  <PropertyGroup>

    <TargetFramework>net6.0</TargetFramework>

    <Nullable>enable</Nullable>

    <ImplicitUsings>enable</ImplicitUsings>

  </PropertyGroup>

  <ItemGroup>

    <PackageReference Include="Swashbuckle.AspNetCore" Version="6.2.3" />

  </ItemGroup>

</Project>

从上面的JSON代码中,我们看到有一个ImplicitUsings节点,这个节点就是我们前面提到的用于启用隐式命名空间引用的配置属性,可以配置为 enable 或者 true 来启用这个特性。当我们开启了这个特性后,

我们的代码将变为下面这样:

来看下面的这个示例:

项目文件的内容是这样的:

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

	<PropertyGroup>

		<OutputType>Exe</OutputType>

		<TargetFramework>net6.0</TargetFramework>

		<ImplicitUsings>enable</ImplicitUsings>

		<Nullable>enable</Nullable>

	</PropertyGroup>

	<ItemGroup>

		<Using Include="System.Console" Static="true" />

		<Using Include="System.IO.File" Alias="MyFile"/>

		<Using Remove="System" />

	</ItemGroup>

</Project>

.NET6为我们生成必要的命名空间引用的同时,也为我们自动生成了Global Using文件,

内容如下:

// <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 MyFile = global::System.IO.File;

global using static global::System.Console;

这里有一点需要注意:如果启用这个功能的话,会出现项目升级的时候有冲突导致无法正常的编译,但是如果禁用得话升级的时候就能避免这种问题,具体该不该开启我觉得还是得看项目而定。

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

相关文章

  • .Net 6中的PeriodTimer介绍

    .Net 6中的PeriodTimer介绍

    这篇文章主要介绍了.Net 6中的PeriodTimer,.net 6中新增了一个异步计时器PeroidTimer,相对普通Timer的回调, 它的模型更简单,下面一起来看看具体详情吧
    2022-01-01
  • .NET提取 Thread 中返回值详情

    .NET提取 Thread 中返回值详情

    这篇文章主要介绍了.NET提取 Thread 中返回值详情,关于如何获取 Thread 中的返回值,不同的版本有不同的解决方案。需要的朋友可以参考一下
    2022-01-01
  • ASP.NET Core 中间件的使用之全局异常处理机制

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

    我们今天这篇文章就来说说代码异常问题怎么快速定位,减少不必要的时间浪费。异常是一种运行时错误,当异常没有得到适当的处理,很可能会导致你的程序意外终止。下面雄安边将详细介绍,需要的朋友可以参考下
    2021-09-09
  • ABP入门系列应用BootstrapTable表格插件

    ABP入门系列应用BootstrapTable表格插件

    Bootstrap table是一个开源的轻量级功能非常丰富的前端表格插件。下面通过本文给大家介绍ABP入门系列应用BootstrapTable表格插件,感兴趣的朋友一起学习吧
    2017-03-03
  • .Net Framework .Net  .NET Standard的概念及区别

    .Net Framework .Net .NET Standard的概念及区别

    这篇文章主要介绍了.Net Framework .Net .NET Standard的概念及区别,需要的朋友可以参考下
    2021-08-08
  • .NET 6中使用DateOnly和TimeOnly类型

    .NET 6中使用DateOnly和TimeOnly类型

    这篇文章主要介绍了.NET 6中使用DateOnly和TimeOnly类型,在.NET 6(preview 4)中引入了两个期待已久的类型,将作为核心库的一部分。DateOnly和TimeOnly允许开发人员表示DateTime的日期或时间部分,下文具体内容,需要的小伙伴可以参考一下
    2022-01-01
  • 设计windows phone页面主题

    设计windows phone页面主题

    这篇文章主要介绍了设计windows phone页面主题,需要的朋友可以参考下
    2015-07-07
  • 利用.NET 开发服务器 应用管理工具

    利用.NET 开发服务器 应用管理工具

    这篇文章主要介绍如何利用.NET 开发一个应用管理工具的服务器,文章回先聊背景接着其是哟美好方法,需要的的小伙伴可以参考一下小面文章的具体内容
    2021-10-10
  • 利用ASP.NET技术动态生成HTML页面

    利用ASP.NET技术动态生成HTML页面

    利用ASP.NET技术动态生成HTML页面...
    2006-07-07
  • ASP.NET Core MVC 过滤器(Filter)

    ASP.NET Core MVC 过滤器(Filter)

    本文小编要给大家介绍的是ASP.NET Core MVC 过滤器,ASP.NET MVC 中的过滤器允许在执行管道中的特定阶段之前或之后运行代码。可以对全局,也可以对每个控制器或每个操作配置过滤器,需要的朋友可以参考下面文章的具体内容
    2021-09-09

最新评论