Como armazenar pares chave-valor em configurações do aplicativo em tempo de execução?
-
05-07-2019 - |
Pergunta
Como dinâmicas pares chave-valor dos objetos ser armazenados em app.config no uso da API de configurações do aplicativo, em tempo de execução?
Eu estive tentando obter minha cabeça em torno, e eu não consigo encontrar nenhum exemplo ou documentação significativa.
I parece que as classes dicionário Net não pode ser serializado em XML para armazená-los em app.config
É a única maneira de fazer isso usando classes serializados XML personalizados, ou existem outras maneiras?
Solução 2
Depois de algum líquido mais procura, eu encontrei um muito bom (embora muito longa) artigo que descreve no dept o modelo de configuração .Net:
Desvendando os Mistérios do .NET 2.0 Configuration
Eu também encontrei algo muito útil:
seção de configuração Designer
Um visual studio adicionando para projetar visualmente seções de configuração e gerar os arquivos XSD coresponging. Espero que alguém acha isso útil.
Outras dicas
Você deveria ser capaz de fazer algo parecido com isto:
// Open App.Config of executable
System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
// Add an Application Setting with a name Key and a Value stored in variable called Value
config.AppSettings.Settings.Add("Key", Value );
// Save the changes in App.config file.
config.Save(ConfigurationSaveMode.Modified);
sempre pensei que era considerado má prática para mudança app.config durante a execução. O app.config deve ser usado para a instalação e configuração do programa; não para as coisas que são dinâmicos que o aplicativo está realmente modificando.
Sugerir você cria arquivo separado "KeyValue.xml" para objetos dinâmicos.
Dependendo do que exatamente você precisa, você pode tentar System.Collections.ObjectModel.KeyedCollection
É um dicionário genérico? Se assim for: