Existe alguma maneira de me livrar da longa lista de usos no topo dos meus arquivos .cs?

StackOverflow https://stackoverflow.com/questions/62219

Pergunta

À medida que obtenho mais e mais namespaces em minha solução, a lista de instruções using no topo dos meus arquivos fica cada vez mais longa.Este é especialmente o caso em meus testes de unidade, onde para cada componente que pode ser chamado, preciso incluir o uso da interface, o contêiner IoC e o tipo concreto.

Com mais de 17 linhas de uso em meus arquivos de teste de integração, está ficando completamente confuso.Alguém sabe se existe uma maneira de definir uma macro para minha base usando instruções?Alguma outra solução?

Foi útil?

Solução

Algumas pessoas gostam de esconder os usos em um #region.Caso contrário, acho que você está sem sorte.A menos que você queira colocar o namespace em todos os seus referentes.

Outras dicas

Eu sei que não deveria dizer isso em voz alta, mas talvez reconsidere seu design.

17 usos em 1 arquivo = muito acoplamento (no nível do namespace).

Não suporto o Resharper sozinho.Mas também não suporto usar declarações confusas.Eu uso o Comandos de energia add-in para VS, que possui um prático comando 'Remover e classificar' usando instruções (entre outras coisas boas).

Existem quatro problemas possíveis aqui;

Os namespaces em seu código estão dividindo suas classes de maneira muito precisa. se você tiver, por exemplo;

using MyCompany.Drawing.Vector.Points;
using MyCompany.Drawing.Vector.Shapes;
using MyCompany.Drawing.Vector.Transformations;

considere reuni-los em um único MyCompany.Drawing.Vector espaço para nome.Você provavelmente não está ganhando dividindo demais.O Visual Studio Code Analysis/FxCop possui uma regra para isso, verificando o número de classes em um namespace.Muito poucos e isso irá avisá-lo.

Você está colocando muitos testes na mesma classe. Se você estiver fazendo referência System.Data, System.Drawing, e System.IO na mesma classe, considere escrever mais testes atômicos - alguns que acessam bancos de dados, alguns que desenham imagens e alguns que acessam o sistema de arquivos.Em seguida, divida cada tipo em três classes de teste.

Você está escrevendo testes que fazem muito. Se você estiver fazendo referência a muitos namespaces, seus testes poderão estar agregando muitos recursos.Esse tipo de acoplamento muitas vezes pode apresentar erros, então tente dividir funções grandes e abrangentes em partes menores e teste-as em arquivos separados.

Muitos são redundantes. Todos eles são usados ​​ou apenas copiados e colados de outros arquivos.Clique com o botão direito no editor de código e escolha uma das opções ‘Organizar usando’ para remover instruções não utilizadas.

Alguém sabe se há uma maneira de definir uma macro para minha base usando declarações?

Você quer dizer que os namespaces que você usa com frequência são adicionados automaticamente a cada nova classe?Se sim, o Resharper também pode fazer isso.Além disso, possui um recurso para colocar os usos em uma região na limpeza de código.O Resharper pode ser o caminho a percorrer (você não se arrependerá, como posso dizer por experiência própria).

O VS2008 adicionou um menu de contexto "Organizar usos", que possui as opções Classificar, Remover e "Remover e classificar" que farão o que você deseja por arquivo.O suplemento Visual Studio Power Commands adiciona um menu de contexto no gerenciador de soluções para projetos e soluções que é um "Remover e Classificar" para todos os arquivos do projeto e todos os projetos da solução, respectivamente.

Se você quiser alterar o padrão usando instruções feitas quando você cria um novo arquivo, dê uma olhada no diretório C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ItemTemplates\CSharp\Code\1033.Ele contém vários arquivos zip que você pode modificar para alterar os modelos dos arquivos de código (obviamente, mova a estrutura de diretórios para alterar outros idiomas ou outros tipos de arquivos).

Ver aqui Para maiores informações.

Pode ajudar usar alias.Não tenho certeza se vale a pena, mas em vez de:

using System.Web.UI;
using System.Web.Mail;
using System.Web.Security;
... Control ...
... MailMessage ...
... Roles ... 

você pode usar:

using W = System.Web;
... W.UI.Control ...
... W.Mail.MailMessage ...
... W.Security.Rolse ...

Resharper - o complemento para Visual Studio - possui um recurso que remove usos não processados ​​​​de um arquivo, mas não sei nada que faça exatamente o que você descreve.

No VS2008, você pode clicar com o botão direito no arquivo CS e escolher 'Organizar usos'.Ele removerá os não utilizados e os classificará para você também.Fora isso, eu usaria apenas #region.Também, CTRL+M+Ó irá recolher todas as funções da sua região, etc. em tempo de design.Eu uso MUITO esse atalho!

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top