chiunque può aiutarmi come è possibile impostare/memorizzare valori nel file app.config utilizzando C#, è possibile a tutti?Scrivi valori nel file app.config
risposta
Se si utilizza App.Config per memorizzare i valori nella sezione <app Key="" Value="" />
o CustomSections, utilizzare la classe ConfigurationManager, altrimenti utilizzare la classe XMLDocument.
Si potrebbe utilizzare il codice pubblicato sul CodeProject
Sì, è possibile - vedi ConfigurationManager
ConfigurationManager classe include membri che consentono di eseguire le seguenti operazioni:
- leggere e scrivere file di configurazione nel suo complesso.
imparare ad usare il docs, che dovrebbe essere il primo porto di scalo per-una domanda come questa.
Provate il seguente codice:
Configuration config = ConfigurationManager.OpenExeConfiguration(Application.ExecutablePath);
config.AppSettings.Settings.Add("YourKey", "YourValue");
config.Save(ConfigurationSaveMode.Minimal);
Ha funzionato per me :-)
Sulla Framework 4.5 la "chiave" AppSettings.Settings [ ] parte di ConfigurationManager è di sola lettura, quindi ho dovuto prima rimuovere la chiave, quindi aggiungerla di nuovo usando:
Configuration config = ConfigurationManager.OpenExeConfiguration(Application.ExecutablePath);
config.AppSettings.Settings.Remove("MySetting");
config.AppSettings.Settings.Add("MySetting", "some value");
config.Save(ConfigurationSaveMode.Modified);
Non preoccuparti, non otterrai un'eccezione se provi a rimuovere una chiave che non esiste.
Questo post dà qualche buon consiglio
private static string GetSetting(string key)
{
return ConfigurationManager.AppSettings[key];
}
private static void SetSetting(string key, string value)
{
Configuration configuration =
ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
configuration.AppSettings.Settings[key].Value = value;
configuration.Save(ConfigurationSaveMode.Full, true);
ConfigurationManager.RefreshSection("appSettings");
}
Ho dovuto aggiungere configuration.AppSettings.Settings.Add (valore); prima della configurazione.AppSettings.Settings [chiave] .Valore = valore; per farlo funzionare quando il file .config era vuoto. –
Quando si utilizza 'Settings.Add()', se la voce non esiste, verrà aggiunta, se già esiste, il valore verrà aggiunto ai valori esistenti separati da una virgola. Per esempio. dopo aver chiamato 'Settings.Add (" myKey "," test ")' 4 volte, la tua voce diventerà: '
ConfigurationManager.RefreshSection ("appSettings "); è stata la chiave per me, se non lo fai, leggere valori scritti di recente non funzionerà. –
string filePath = System.IO.Path.GetFullPath("settings.app.config");
var map = new ExeConfigurationFileMap { ExeConfigFilename = filePath };
try
{
// Open App.Config of executable
Configuration config = ConfigurationManager.OpenMappedExeConfiguration(map, ConfigurationUserLevel.None);
// Add an Application Setting if not exist
config.AppSettings.Settings.Add("key1", "value1");
config.AppSettings.Settings.Add("key2", "value2");
// Save the changes in App.config file.
config.Save(ConfigurationSaveMode.Modified);
// Force a reload of a changed section.
ConfigurationManager.RefreshSection("appSettings");
}
catch (ConfigurationErrorsException ex)
{
if (ex.BareMessage == "Root element is missing.")
{
File.Delete(filePath);
return;
}
MessageBox.Show(ex.Message);
}
Per un'applicazione console .NET 4.0, nessuno di questi ha lavorato per me. Così ho usato il seguente qui sotto e ha funzionato:
private static void UpdateSetting(string key, string value)
{
Configuration configuration = ConfigurationManager.
OpenExeConfiguration(Assembly.GetExecutingAssembly().Location);
configuration.AppSettings.Settings[key].Value = value;
configuration.Save();
ConfigurationManager.RefreshSection("appSettings");
}
provare quanto segue:
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
config.AppSettings.Settings[key].Value = value;
config.Save();
ConfigurationManager.RefreshSection("appSettings");
Come altri hanno detto, è possibile farlo con ConfigurationManager.AppSettings.Settings
. Ma: Utilizzare Settings[key] = value
non funzionerà se la chiave non esiste.
Utilizzando Settings.Add(key, value)
, se la chiave esiste già, si unirà il nuovo valore al suo valore (s) separati da una virgola, qualcosa come <add key="myKey" value="value1, value2, value3" />
Per evitare questi risultati inattesi, si deve gestire due scenari di
- Se la voce con la chiave specificata esiste? quindi aggiornare il suo valore
- se la voce con la chiave data non esiste?quindi creare nuova voce (chiave, valore)
Codice
public static void Set(string key, string value)
{
var config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
var entry = config.AppSettings.Settings[key];
if (entry == null)
config.AppSettings.Settings.Add(key, value);
else
config.AppSettings.Settings[key].Value = value;
config.Save(ConfigurationSaveMode.Modified);
}
Per ulteriori informazioni circa il check entry == null
, controllare this post.
Spero che questo aiuti qualcuno.
- 1. Scrivi nel file plist in Swift
- 2. Scrivi più array di numpy nel file
- 3. leggi/scrivi un oggetto nel file
- 4. Come scrivere una data nel file app.config?
- 5. Modificare dinamicamente il valore nel file app.config
- 6. mono ignora le dllmap nel file app.config
- 7. Valori di lettura da app.config
- 8. Scrivi i valori del dizionario in un file excel
- 9. Scrivi GeoDataFrame nel database SQL
- 10. Aggiungere valori da app.config e recuperarli
- 11. Più file App.Config
- 12. App.config e file .ini
- 13. File app.config annidati (web.config)
- 14. Codifica del file app.config
- 15. lettura dal file app.config
- 16. Python - scrivi l'espressione simbolica (sympy) nel file txt
- 17. Cosa c'è di sbagliato nel mio file app.config?
- 18. tag html nel file app.config nell'applicazione console .net
- 19. Impostazioni client di posta SMTP nel file app.config C#
- 20. app.config non sono salvando i valori
- 21. File App.Config nell'applicazione console C#
- 22. App.Config vs file XML personalizzato
- 23. Scrivi NSData in un file?
- 24. Python Scrivi byte al file
- 25. Scrivi file binario in Ruby
- 26. Scrivi su file con register_shutdown_function
- 27. Scrivi/Leggi file plist iPhone
- 28. Usa app.config dal file fsx
- 29. Lettura da un file app.config
- 30. Scrivi cv :: Mat su file binari?
Hai fatto questo a Google? –
Potresti essere un po 'più specifico? Che tipo di valore è che non vuoi memorizzare, e quando? Generalmente non è consigliabile memorizzare i valori a livello di applicazione (come stringhe o int) nella config dell'app. – Mantisen
Chiedere una domanda che sembra stupida da parte dei professionisti va bene, tutti iniziano con l'inizio. Tuttavia, nemmeno una ricerca su google simplesso è semplicemente zoppa. –