Pergunta

Eu li Quando Classes Use estáticos em C #, mas a resposta de topo não necessariamente responder a minha pergunta. Eu tenho um aplicativo que interfaces com um pouco de hardware similar, através de um servidor HTTP. Cada dispositivo deve ser conectado ao e as credenciais são normalmente os mesmos. Estou usando Properties.Settings.Default.etc para as configurações de ampla aplicação alça; no entanto, para a facilidade I acompanhar a última utilização nome de usuário / senha ao efetuar logon individualmente em um dispositivo. Os padrões que são ajustáveis ??através de uma janela opções são usadas em primeiro lugar e permanecer o mesmo, exceto se alterado através da janela de opções, apesar das configurações temporárias mudando e sendo utilizados nos padrões lugar.

De qualquer forma, esse é o cenário ... com relação à pergunta, eu estou fazendo isso:

private static class TemporarySettings
{
    public static string Username = Properties.Settings.Default["Username"].ToString();
    public static string Password = Properties.Settings.Default["Password"].ToString();
}

Não é estúpido?

Foi útil?

Solução

Não é estúpido, e isso pode resolver o seu problema perfeitamente (se isso acontecer, não mudá-lo). Existem alguns problemas que esta abordagem pode causar na estrada, embora, e que ajuda a saber o que aqueles são.

  1. Se você quiser alterar o nome de usuário e senha sem reiniciar o aplicativo, você não tem essa opção. Você pode escrever a lógica para assistir o arquivo de configuração para a mudança e recarregar os valores se eles mudam.
  2. Se você quiser "reutilização" seu código (especialmente se você colocar mais um comportamento como o monitoramento de mudanças) para vários conjuntos de nome de usuário e senha, você vai precisar para converter isso em uma instância.
  3. Se você quiser classes de teste de unidade que dependem desta classe, você terá um tempo muito difícil arrancar os valores.

Para reiterar, porém, você deve se coíbe da solução mais simples (como você definiu) por causa destes potencial problemas, a menos que você acha que há uma chance realista que você vai ser queimado por -los no futuro. Caso contrário, ele provavelmente não será uma refatoração muito difícil de mudar para uma classe de exemplo mais tarde, quando a necessidade surge.

Outras dicas

Mesmo melhor, marcá-los readonly ou propriedades de uso que só tem getters.

Você está definindo nome de usuário e senha para o mesmo valor, mas fora isso, não.

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