欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

.NET 6 即將到來的新特性  隱式命名空間引用

 更新時間:2021年09月17日 17:30:28   作者:WeihanLi  
ASP.NET 現(xiàn)在我們還是需要手動加命名空間引用,在以后的版本中可能就不需要手動加命名空間的引用了,本文就來介紹.NET 6即將到來的新特性--隱式命名空間引用,,需要的朋友可以參考下面文章內容

前言:

今天看到一個更新,可以不需要寫 using了,目前還沒有正式發(fā)布,應該要到 .NET 6 Preview 7 才會支持。

1、Sample

我們以 Minimal API 為例子

示例:

using Microsoft.AspNetCore.Builder;

var app = WebApplication.Create(args);
app.Map("/", () => "Hello World");
app.Run();

或者結合 global using 之后把 using 放在一個單獨的 Imports 文件中,

Imports:

@global using Microsoft.AspNetCore.Builder;


Program:

var app = WebApplication.Create(args);
app.Map("/", () => "Hello World");
app.Run();


在 .NET 6 Preview 7 中,我們將不需要再加 using 了,Preview 7 會包含一個新的特性——“隱式命名空間引用”,這個特性將會默認為你的項目添加常用的命名空間,我們就可以不再需要上面的 Imports

2、How it works

它的實現(xiàn)方式也是基于之前的 global using 特性來實現(xiàn)的,編譯器會根據 MS Build 中配置的命名空間生成一個 global using 的文件,就像上面的 Imports

目前針對不同的 SDK 類型會添加不同的默認 namespace,目前已有的如下:

針對 Microsoft.NET.Sdk,默認的命名空間如下:

System
System.Collections.Generic
System.IO
System.Linq
System.Net.Http
System.Threading
System.Threading.Tasks


針對 Microsoft.NET.Sdk.Web

System.Net.Http.Json
Microsoft.AspNetCore.Builder
Microsoft.AspNetCore.Hosting
Microsoft.AspNetCore.Http
Microsoft.AspNetCore.Routing
Microsoft.Extensions.Configuration
Microsoft.Extensions.DependencyInjection
Microsoft.Extensions.Hosting
Microsoft.Extensions.Logging


針對 Microsoft.NET.Sdk.Worker

Microsoft.Extensions.Configuration
Microsoft.Extensions.DependencyInjection
Microsoft.Extensions.Hosting
Microsoft.Extensions.Logging


如果你想禁用隱式命名空間引用,可以通過 DisableImplicitNamespaceImports 來完全禁用這個功能

<DisableImplicitNamespaceImports>true</DisableImplicitNamespaceImports>


如果你只是想禁用針對 Microsoft.NET.Sdk.Web 的引用則可以配置 DisableImplicitNamespaceImports_Web

<DisableImplicitNamespaceImports_Web>true</DisableImplicitNamespaceImports_Web>


配置對應關系: 

SDK PropertyName
Microsoft.NET.Sdk DisableImplicitNamespaceImports_DotNet
Microsoft.NET.Sdk.Web DisableImplicitNamespaceImports_Web
Microsoft.NET.Sdk.Worker DisableImplicitNamespaceImports_Worker

后面應該會有更多的支持,具體還是要以最終 .NET6 正式發(fā)布時為準

我們也可以為我們的 library 啟用 global using 的功能,這樣在使用的時候也可以不加 using 直接使用

只需要打包的時候在項目文件中增加一個類似下面的 property 到項目里即可

<Project>
  <ItemGroup>
    <GlobalUsings Include="Library" />
  </ItemGroup>
</Project>

3、More

隱式命名空間引用能夠使得我們避免寫特別多重復的命名空間引用,對于簡單的測試應用來說會非常的方便

雖然隱式的命名空間引用能夠為我們大大簡化代碼,不需要再寫重復的 using 代碼,但是也有可能會對代碼造成沖突,比如自己定義的一個類,在自己的命名空間下和默認隱式引用的命名空間下都存在,此時就會造成沖突,如果不能移除默認的命名空間引用,那使用的時候就需要使用完全限定名或者別名可能會有點不太方便

到此這篇關于.NET 6 即將到來的新特性  隱式命名空間引用的文章就介紹到這了,更多相關.NET 6新特性  隱式命名空間引用內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

最新評論