A diretiva using permite o uso de um tipo definido em um namespace sem especificar um namespace totalmente qualificado para esse tipo. Adicionar o modificador global à diretriz using significa que using will será aplicado a todos os arquivos da compilação (geralmente um projeto). A diretiva global de uso foi adicionada a C# 10. A sintaxe é:
A prática recomendada é colocar a importação global em um arquivo separado (um para cada projeto), por exemplo, ela pode ser nomeada:GlobalUsings.csArquivo.
Introdução à documentação oficial da Microsoft:O login do hiperlink está visível.
Colocamos o namespace referenciado por Startup.cs no arquivo GlobalUsings.cs, lembrando de adicionar antes de usarGlobalPalavras-chave!! O código é o seguinte:
Neste momento, o compilador reportará um erro indicando que "a função global usando o comando não está disponível em C# 8.0, por favor use a versão 10.0 ou posterior", como mostrado na figura abaixo:
Nesse caso, tomando o projeto ASP.NET Core 3.1 como exemplo, basta clicar duas vezes no projeto (arquivo .csproj) e adicionar o LangVersion ao nó PropertyGroup do Project->, como mostrado na figura a seguir:
Esta frase significa que o projeto usa a sintaxe de C# 10 em relação à versionagem da linguagem C#:O login do hiperlink está visível.
O arquivo não é reportado como erro, ao mesmo tempoStartup.cs O namespace referenciado pelo arquivo está acinzentado, como mostrado na figura abaixo:
Removemos as referências de Program.cs, Startup.cs e então recompilamos o projeto conforme mostrado na imagem abaixo:
usarILSpy_binaries_7.2.0.6702-prévia2O arquivo WebApplication1.dll resultante é descompilado, conforme mostrado na imagem a seguir:
O arquivo de inicialização ainda tem o uso de referências, e nenhum arquivo de GlobalUsings.cs é gerado, então o uso global é apenas açúcar sintaxe, o que simplifica um pouco do trabalho tedioso de programação e melhora muito a eficiência do trabalho.
.NET 6Namespaces implícitosReferências também são obtidas usando o recurso global de uso.
Atualmente, diferentes namespaces padrão são adicionados para diferentes tipos de SDK, e os existentes são os seguintes:
Para o Microsoft.NET.Sdk, o namespace padrão é o seguinte:
Para Microsoft.NET.Sdk.Web:
For Microsoft.NET.Sdk.Worker:
Se você quiser desativar referências implícitas de namespace, pode desativar esse recurso totalmente via DisableImplicitNamespaceImports, conforme segue:
Se você quiser apenas desativar referências ao Microsoft.NET.Sdk.Web, pode configurar o DisableImplicitNamespaceImports_Web da seguinte forma:
Vamos criar um novo projeto de console .NET 6.0 para testes, e o projeto inteiro tem apenas Program.cs um arquivo, como mostrado na figura abaixo:
ConsoleApp1.csproj está configurado da seguinte forma:
Onde está a diretiva global de uso? Abra o diretório obj (que contém os arquivos temporários intermediários gerados durante o processo de compilação) e encontre-o no diretório Debug\net6.0ConsoleApp1.GlobalUsings.g.csArquivo:
ConsoleApp1.GlobalUsings.g.cs arquivos são gerados automaticamente com base nas configurações da propriedade ImplicitUsings do projeto.
(Fim)
|