.NET consente di utilizzare i file .settings per gestire le impostazioni dell'applicazione. Vorrei archiviare produzione, lo sviluppo e le impostazioni di test separatamente in modo che io possa fare qualcosa di simile:Come utilizzare diversi file .settings per diversi ambienti in .NET?
EnvironmentSettings environmentSettings;
// get the current environment (Production, Development or Test)
ApplicationEnvironment Environment = (ApplicationEnvironment)
Enum.Parse(typeof(ApplicationEnvironment), Settings.Default.ApplicationEnvironment);
switch (Environment)
{
case ApplicationEnvironment.Production:
environmentSettings = Settings.Production;
break;
...
}
string reportOutputLocation = environmentSettings.ReportOutputLocation;
Fondamentalmente, io voglio due classi impostazioni separate: la classe impostazioni generali che memorizza l'ambiente selezionato e non - proprietà specifiche dell'ambiente e 3 istanze statiche di una seconda classe denominata EnvironmentSettings. L'istanza utilizzata dovrebbe dipendere dall'ambiente specificato nella classe Impostazioni generali.
C'è un modo per fare questo a meno di impostare manualmente i valori per tutte queste impostazioni in un costruttore statico o qualcosa del genere? Se devo farlo, preferirei avere solo una grande classe Settings con proprietà come "DevOutputLocation", "LiveOutputLocation", ecc.
Posso avere più file .settings nel mio progetto ma solo creare classi separate che non derivano l'uno dall'altro. Quindi potrei creare i file DevelopmentSettings.settings, ProductionSettings.settings e TestSettings.settings e dare loro le stesse proprietà, ma poi avrei bisogno di una serie di istruzioni switch ovunque per determinare quale classe usare perché non deriva da una classe comune .
è possibile farlo utilizzando un utente diverso per ciascun ambiente, ma in qualche modo penso che causi più problemi di quanti ne risolva. –