This refactoring allows you to replace one or more global using directives with local using directives in all files where symbols from the corresponding namespaces are used.
In the example below, we apply this refactoring to global using System.Collections; in file GlobalUsings.cs and as a result it adds the corresponding local using directives in files One.cs and Two.cs.
// GlobalUsings.cs
global using System.Linq;
global using System.Threading.Tasks;
global using System.Collections;
// 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;
// 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
}
}
Convert to a non-global using
Place the caret at a global using directive or select multiple global using directives.
Do one of the following:
Press Control+Shift+R and then choose Convert to Non-Global Using.
Right-click and choose Refactor | Convert to Non-Global Using from the context menu.
Choose ReSharper | Refactor | Convert | Convert to Non-Global Using… from the main menu.
ReSharper will add local using directives for selected namespaces to all files in the project where symbols from these namespaces are used, and remove the original global using directives.
This feature is supported in the following languages and technologies: