Esquema de configurações do aplicativo
As configurações do aplicativo permitem que um aplicativo do Windows Forms ou do ASP.NET armazene e recupere configurações com escopo de aplicativo e escopo de usuário. Nesse contexto, uma configuração é qualquer informação que pode ser específica para o aplicativo ou específica para o usuário atual — desde uma cadeia de conexão de banco de dados até o tamanho de janela padrão preferido do usuário.
Por padrão, as configurações do aplicativo em um aplicativo do Windows Forms usam a LocalFileSettingsProvider classe, que usa o sistema de configuração .NET para armazenar as configurações em um arquivo de configuração XML. Para obter mais informações sobre os arquivos usados pelas configurações do aplicativo, consulte Arquitetura de configurações do aplicativo.
Importante
A maioria das seções de configuração definidas pelo .NET Framework não são mais funcionais nas versões .NET 6+ e .NET Core. ConfigurationManager é fornecido apenas para compatibilidade. Em vez de app.config, o .NET moderno usa o arquivo appsettings.json para configurações do aplicativo. Consulte Modernizar após atualizar do .NET Framework para o .NET.
Considere remover o uso em app.config e chamar a API correspondente, se disponível, para fazer a mesma configuração. Para obter mais informações, consulte Configuração no .NET.
As configurações do aplicativo definem os seguintes elementos como parte dos arquivos de configuração que ele usa.
Elemento | Description |
---|---|
<applicationSettings> | Contém todas as <tags de configuração> específicas para o aplicativo. |
<userSettings> | Contém todas as <tags de configuração> específicas para o usuário atual. |
<Cenário> | Define uma configuração. Filho de applicationSettings> ou <userSettings>.< |
<valor> | Define o valor de uma configuração. Filho do <cenário>. |
<elemento applicationSettings>
Este elemento contém todas as <marcas de configuração> que são específicas para uma instância do aplicativo em um computador cliente. Não define atributos.
<elemento userSettings>
Este elemento contém todas as <marcas de configuração> que são específicas para o usuário que está usando o aplicativo no momento. Não define atributos.
<elemento de configuração>
Este elemento define uma configuração. Tem os seguintes atributos.
Atributo | Description |
---|---|
Designação | Necessário. O ID exclusivo da configuração. As configurações criadas por meio do Visual Studio são salvas com o nome ProjectName.Properties.Settings . |
serializeAs | Obrigatório. O formato a ser usado para serializar o valor em texto. Os valores válidos são: - string . O valor é serializado como uma cadeia de caracteres usando um TypeConverterarquivo .- xml . O valor é serializado usando a serialização XML.- binary . O valor é serializado como binário codificado em texto usando serialização binária.- custom . O provedor de configurações tem conhecimento inerente dessa configuração e serializa e desserializa. |
Adicione os nomes das configurações que você cria em <applicationSettings> como entradas sob o <elemento configSections> na parte superior do arquivo. Por exemplo:
<configuration>
<configSections>
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="WindowsFormsApp1.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
<section name="WindowsFormsApp1.Properties.MyCustomSettings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
</sectionGroup>
</configSections>
...
</configuration>
<elemento value>
Este elemento contém o valor de uma configuração.
Exemplo
O exemplo a seguir mostra um arquivo de configurações do aplicativo que define duas configurações com escopo do aplicativo e duas configurações com escopo do usuário:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<section name="WindowsApplication1.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</sectionGroup>
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<section name="WindowsApplication1.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" />
</sectionGroup>
</configSections>
<applicationSettings>
<WindowsApplication1.Properties.Settings>
<setting name="Cursor" serializeAs="String">
<value>Default</value>
</setting>
<setting name="DoubleBuffering" serializeAs="String">
<value>False</value>
</setting>
</WindowsApplication1.Properties.Settings>
</applicationSettings>
<userSettings>
<WindowsApplication1.Properties.Settings>
<setting name="FormTitle" serializeAs="String">
<value>Form1</value>
</setting>
<setting name="FormSize" serializeAs="String">
<value>595, 536</value>
</setting>
</WindowsApplication1.Properties.Settings>
</userSettings>
</configuration>