先日暗黙的な global using ディレクティブについて書きました。
実は暗黙的な global using ディレクティブは .csproj ファイルでもっと細かく制御できます。
■ Import Remove / Import Include
上に貼ったリンクの通りですが、例えば次のような要素を .csproj に書き足すことで制御できます。
<ItemGroup> <Import Remove="System" /> <Import Include="Test" /> </ItemGroup>
ここでは System 名前空間を外して、Test 名前空間を追加しています。
全体の .csproj ファイルは次のようになっています。
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>net6.0</TargetFramework> </PropertyGroup> <ItemGroup> <Import Remove="System" /> <Import Include="Test" /> </ItemGroup> </Project>
■ 設定語のイメージ
この設定を行ったソースコードのイメージです。
Test.Console クラスは Test 名前空間が using されているので使えています。System 名前空間が using されていないので競合もしていません。
一方 String クラスはエラーです。System 名前区間が using されていないのでクラスが見つかりません。
■ 備えよう
使いこなせば強力な機能です。しっかり覚えて .NET 6 / C# 10 に備えましょう。