This refactoring allows you to convert one or more local using directives into global using directives and move them to a new or existing file.
In the example below, we apply this refactoring to using System.Collections; in file One.cs and place the extracted using to GlobalUsings.cs.
// One.cs
using System.Collections;
class One
{
void Test(ArrayList list)
{
// do something
}
}
// Two.cs
using System.Collections;
using System.Xml;
class Two
{
void Test(ArrayList list,
XmlReader reader)
{
// do something
}
}
// GlobalUsings.cs
global using System.Linq;
global using System.Threading.Tasks;
// One.cs
class One
{
void Test(ArrayList list)
{
// do something
}
}
// Two.cs
using System.Xml;
class Two
{
void Test(ArrayList list,
XmlReader reader)
{
// do something
}
}
// GlobalUsings.cs
global using System.Linq;
global using System.Threading.Tasks;
global using System.Collections;
Extract a global using
Set the caret at a using directive or select multiple directives.
Do one of the following:
Press Ctrl+Alt+Shift+T and then choose Extract Global Using
Choose Refactor | Extract Global Using in the main menu.
The Extract Global Using dialog will open.
Specify where the global using should be moved — this could be any existing .cs file in the current project or a new .cs file.
To apply the refactoring, click Next.
JetBrains Rider will remove the using directives for the selected namespaces from all files in the project (because a local using becomes redundant as soon as a global using appears for the same namespace) and add these directives as global using directives to the specified file.