.NET 6における暗黙の名前空間参照
まえがき
以前、暗黙の名前空間参照の一般的な紹介を書き、いくつかの小さなテストプロジェクトで使っていましたが、例として共有していませんでした。主に、暗黙の名前空間参照で
Github issue
には、破壊的な変更があることが記載されていましたが、現在では
{NET 6 RC 1
NET 6 RC 1
RCリリースは、新機能の開発が基本的に終了したことを意味し、リリースはテストと
RCリリースは、新機能の開発が基本的に終了し、テストに重点を置いたリリースとなることを意味します。
BUG
を修正しました。
1. 履歴の変更
NET 6 Preview 7
Microsoft はプロジェクト開始当初から暗黙の名前空間参照を導入し始めています(以前の記事参照)。
NET 6 の今後の機能 暗黙の名前空間参照
Preview 7
この機能を無効化したい場合は
DisableImplicitNamespaceImports
で無効化し、一方
{NET 6 RC 1
NET 6 RC 1
はデフォルトで無効化されています。
で明示的に無効化する必要があります。
ImplicitUsings
を有効にするには、マイクロソフトの
ASP.NET Core RC 1
は、マイクロソフトのブログ記事で言及されていますが、大雑把で読み飛ばしています。
Preview 7 で新しい名前空間参照を使用したい場合は、以下のように設定します。 <インポート Inclde="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、その他の使用方法
をクリックすると、次のような例が表示されます。
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;
global using global::System.IO;
Linq;
Http; global using global::System;
Threading; global using global::System;
Tasks; global using global::System;
Tasks; global using global::WeihanLi.Common.Helpers;
Tasks; global using global::WeihanLi.Common.Helpers; global using MyFile = global::System;
Global using static global::System;
デフォルトの名前空間参照は、使用するSDKに関連し、現在以下のように決定されています。
4. もっと見る
個人的には、これは良い変更だと思います。デフォルトで有効にすると、アップグレード時に競合が発生して正常にコンパイルできないプロジェクトが多く、デフォルトで無効にすることで、アップグレードが回避できるようになります
breaking change
これは良い変更ですが、Preview 7からアップグレードしたユーザーにとっては、少し違和感があるかもしれませんが、まだ、このままなので
preview
はまだ{{code preview}}なので許容範囲内です。
を使用すると
Global using
型別名の使用など、以前は不可能だった多くのことが可能になりました。
使ってみると、バグ==が見つかるかもしれません。
Github
について
issue
大丈夫です
Release
NET 6は高品質です
NET 6 暗黙の名前空間のリファレンスは、過去の記事を検索するか、以下の関連記事を引き続き閲覧してください。
関連
-
.netcoreプロジェクトでIStartupFilterを使用するためのチュートリアル
-
NET6新機能 新構造体の最適化
-
net core downlink tracking skywalking インストールと使いやすいチュートリアル
-
.NET開発サーバー アプリケーション管理ツール
-
ASP.NET Core Dependency Injectionフレームワークの活用
-
Net Core HttpClient処理 レスポンス圧縮の詳細
-
ASP.NETでWeb.configからログインする際の正しいアカウントパスワードを確認する
-
NET 6 の今後の新機能 暗黙の名前空間参照
-
非同期タスクキャンセルと監視のネット実装
-
Application_End イベントをブロックする解決策
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
NET 6の新しい設定オブジェクトConfigurationManagerの紹介
-
.NET Coreでオブジェクトプールを使用する
-
NETガベージコレクション GC診断ツール dotnet-gcmon 使用方法
-
swagger uiをasp.net coreに統合する原理
-
ASP.NET Core MVC Dependency Injection ビューとコントローラ
-
再起動を伴わないNET5の設定変更は自動的に反映される
-
asp.net core3.1 cookieとjwtのハイブリッド認証による多様な認証ソリューションの実現
-
ajaxでポップアップアラートボックス
-
ASP.NETのオンライン統計とアプリケーションとセッションを使用した訪問履歴
-
ASP.NETでのRadioButton(ラジオボタン)の使用について