Frage

Ich habe gelesen, wenn auf Statisch Klassen in C # verwenden, aber die Top-Antwort nicht unbedingt meine Frage beantworten. Ich habe eine Anwendung, der mit ziemlich vielen ähnlichen Hardware-Schnittstellen, über einen HTTP-Server. Jedes Gerät muss in protokolliert werden und die Anmeldeinformationen sind in der Regel die gleiche. Ich verwende Properties.Settings.Default.etc Anwendung weite Einstellungen zu handhaben; jedoch für die Leichtigkeit ich den Überblick über das zuletzt benutzten Benutzername / Passwort, wenn sie einzeln in ein Gerät anzumelden. Die Standardeinstellungen, die einstellbar durch ein Optionsfenster verwendet werden, sind erste und bleiben die gleichen, wenn nicht über das Optionsfenster geändert, trotz der vorübergehenden Einstellungen zu ändern und in der Standardwerte Stelle verwendet wird.

Wie auch immer, das ist das Szenario ... in Bezug auf die Frage, ich tue dies:

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

Ist das dumm?

War es hilfreich?

Lösung

Es ist nicht dumm, und es kann Ihr Problem perfekt lösen (wenn es der Fall ist, kann es nicht ändern). Es gibt einige Probleme, dass dieser Ansatz die Straße führt nach unten könnte, aber, und es hilft zu wissen, was diese sind.

  1. Wenn Sie den Benutzernamen und das Passwort ändern möchten, ohne die Anwendung neu zu starten, werden Sie diese Möglichkeit nicht haben. Sie können Logik schreiben die Konfigurationsdatei für den Wandel zu beobachten und die Werte neu zu laden, wenn sie sich ändern.
  2. Wenn Sie wollen Ihren Code „Wiederverwendung“ (vor allem, wenn Sie wie die Überwachung für den Wandel mehr Verhalten setzen) für mehrere Sätze von Benutzernamen und Passwort, müssen Sie dies auf eine Instanz konvertieren.
  3. Wenn Sie sich jemals an die Einheit Testklassen möchten, die auf dieser Klasse abhängen, werden Sie eine sehr schwierige Zeit, die Werte Anstoßen haben.

, obwohl Um es zu wiederholen, sollten Sie nicht von der einfachsten Lösung scheuen (wie Sie definiert haben), da diese Potential Fragen, wenn Sie denken, es gibt eine realistische Chance, dass Sie verbrennen werden durch sie in der Zukunft. Ansonsten wird es wahrscheinlich nicht ein sehr schwieriges Refactoring seiner später auf eine Instanz der Klasse zu wechseln, wenn die Notwendigkeit entsteht.

Andere Tipps

Noch besser, markieren sie readonly oder Gebrauchseigenschaften, die nur ein Getter haben.

Sie setzen Benutzername und Passwort auf den gleichen Wert, aber anders als das, Nr.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top