Esquema de configurações do aplicativo
As configurações do aplicativo permitem que um aplicativo Windows Forms ou ASP.NET armazene e recupere configurações de escopo do aplicativo e do usuário. Nesse contexto, uma configuração é qualquer informação que possa ser específica para o aplicativo ou específica para o usuário atual – qualquer coisa, desde uma cadeia de conexão de banco de dados até o tamanho da janela padrão preferencial do usuário.
Por padrão, as configurações de aplicativo em um aplicativo Windows Forms usam a classe LocalFileSettingsProvider, que usa o sistema de configuração .NET para armazenar configurações em um arquivo de configuração XML. Para obter mais informações sobre os arquivos usados pelas configurações do aplicativo, consulte a 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 de aplicativo. Confira Modernizar após a atualização para o .NET a partir do .NET Framework.
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, confira Configuração no .NET.
As configurações do aplicativo definem os seguintes elementos como parte dos arquivos de configuração que ele usa.
Elemento | Descrição |
---|---|
<applicationSettings> | Contém todas as marcas de <configuração> específicas do aplicativo. |
<userSettings> | Contém todas as marcas de <configuração> específicas do usuário. |
<setting> | Define uma configuração. Filho de <applicationSettings> ou <userSettings>. |
<value> | Define o valor de uma configuração. Filho da <configuração>. |
<Elemento applicationSettings>
Esse elemento contém todas as marcas de <configuração> específicas de uma instância do aplicativo em um computador cliente. Não define nenhum atributo.
<Elemento usarSettings>
Esse elemento contém todas as marcas de <configuração> específicas para o usuário que está usando o aplicativo no momento. Não define nenhum atributo.
Elemento <setting>
Esse elemento define uma configuração. Ele possui os seguintes atributos.
Atributo | Descrição |
---|---|
name | Obrigatórios. A ID exclusiva da configuração. As configurações criadas por meio do Visual Studio são salvas com o nome ProjectName.Properties.Settings . |
serializeAs | Obrigatórios. 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 TypeConverter.- xml . O valor é serializado usando a serialização de 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 a des serializa. |
Adicione os nomes das configurações que você criou em <applicationSettings> como entradas no 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>
Esse elemento contém o valor de uma configuração.
Exemplo
O exemplo a seguir mostra um arquivo de configurações de aplicativo que define duas configurações no escopo do aplicativo e duas configurações no 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>