Compartilhar via


Como validar as configurações do aplicativo

Este tópico demonstra como validar as configurações do aplicativo antes que elas sejam mantidas.

Como as configurações do aplicativo são fortemente tipadas, você pode confiar que os usuários não podem atribuir dados de um tipo incorreto a uma configuração determinada. No entanto, um usuário ainda pode tentar atribuir um valor a uma configuração que esteja fora dos limites aceitáveis, por exemplo, fornecendo uma data de nascimento que ocorra no futuro. ApplicationSettingsBase, a classe pai de todas as classes de configurações de aplicativo, expõe quatro eventos para habilitar essa verificação de limites. Lidar com esses eventos coloca todo o código de validação em um único local, em vez de dispersá-lo por todo o projeto.

O evento que você usa depende de quando você precisa validar suas configurações, conforme descrito na tabela a seguir.

Acontecimento Ocorrência e uso
SettingsLoaded Ocorre após o carregamento inicial de um grupo de propriedades de configurações.

Use esse evento para validar os valores iniciais de todo o grupo de propriedades antes que eles sejam usados no aplicativo.
SettingChanging Ocorre antes que o valor de uma única propriedade de configurações seja alterado.

Use esse evento para validar uma única propriedade antes de ser alterada. Ele pode fornecer comentários imediatos aos usuários sobre suas ações e opções.
PropertyChanged Ocorre depois que o valor de uma única propriedade de configurações é alterado.

Use esse evento para validar uma única propriedade depois que ela for alterada. Esse evento raramente é usado para validação, a menos que um processo de validação assíncrono longo seja necessário.
SettingsSaving Ocorre antes que o grupo de propriedades de configurações seja armazenado.

Use esse evento para validar valores para todo o grupo de propriedades antes que eles sejam persistidos no disco.

Normalmente, você não usará todos esses eventos no mesmo aplicativo para fins de validação. Por exemplo, geralmente é possível atender a todos os requisitos de validação manipulando apenas o evento SettingChanging.

Um manipulador de eventos geralmente executa uma das seguintes ações quando detecta um valor inválido:

  • Fornece automaticamente um valor conhecido por estar correto, como o valor padrão.

  • Consulta novamente o usuário do código do servidor para obter informações.

  • Para eventos gerados antes de suas ações associadas, como SettingChanging e SettingsSaving, usa o argumento CancelEventArgs para cancelar a operação.

Para obter mais informações sobre o tratamento de eventos, consulte Visão Geral dos Manipuladores de Eventos.

Os procedimentos a seguir mostram como testar uma data de nascimento válida usando a SettingChanging ou o evento SettingsSaving. Os procedimentos foram escritos sob a suposição de que você já criou suas configurações de aplicativo; neste exemplo, executaremos a verificação de limites em uma configuração chamada DateOfBirth. Para obter mais informações sobre como criar configurações, consulte How to: Create Application Settings.

Para obter o objeto de configurações do aplicativo

  • Obtenha uma referência ao objeto de configurações do aplicativo (a instância do invólucro) completando um dos itens a seguir:

    • Se você criou suas configurações usando a caixa de diálogo Configurações de Aplicativo do Visual Studio no editor de propriedades do , poderá recuperar o objeto de configurações padrão gerado para seu idioma por meio da expressão a seguir.

      Properties.Settings.Default
      
      MySettings.Default
      

      -ou-

    • Se você for um desenvolvedor do Visual Basic e tiver criado suas configurações de aplicativo usando o Designer de Projeto, poderá recuperar suas configurações usando o objeto My.Settings.

      -ou-

    • Se você criou suas configurações derivando de ApplicationSettingsBase diretamente, precisará instanciar sua classe manualmente.

      MyCustomSettings settings = new MyCustomSettings();
      
      Dim Settings as New MyCustomSettings()
      

Os procedimentos a seguir foram escritos sob a suposição de que o objeto de configurações do aplicativo foi obtido concluindo o último item com marcadores neste procedimento.

Para validar as Configurações do Aplicativo quando uma configuração está mudando

  1. Se você for um desenvolvedor do C#, no evento de Load do seu formulário ou controle, adicione um manipulador de eventos para o evento SettingChanging.

    -ou-

    Se você for um desenvolvedor do Visual Basic, deverá declarar a variável Settings usando a palavra-chave WithEvents.

    public void Form1_Load(Object sender, EventArgs e)
    {
        settings.SettingChanging += new SettingChangingEventHandler(MyCustomSettings_SettingChanging);
    }
    
    Public Sub Form1_Load(sender as Object, e as EventArgs)
        AddHandler settings.SettingChanging, AddressOf MyCustomSettings_SettingChanging
    End Sub
    
  2. Defina o manipulador de eventos e escreva o código dentro dele para executar a verificação de limites na data de nascimento.

    private void MyCustomSettings_SettingChanging(Object sender, SettingChangingEventArgs e)
    {
        if (e.SettingName.Equals("DateOfBirth"))
        {
            var newDate = (DateTime)e.NewValue;
            if (newDate > DateTime.Now)
            {
                e.Cancel = true;
                // Inform the user.
            }
        }
    }
    
    Private Sub MyCustomSettings_SettingChanging(sender as Object, e as SettingChangingEventArgs) Handles Settings.SettingChanging
        If (e.SettingName.Equals("DateOfBirth")) Then
            Dim NewDate as Date = CType(e.NewValue, Date)
            If (NewDate > Date.Now) Then
                e.Cancel = True
                ' Inform the user.
            End If
        End If
    End Sub
    

Para validar as Configurações do Aplicativo quando ocorrer um Salvamento

  1. No evento Load do formulário ou do controle, adicione um manipulador de eventos para o evento SettingsSaving.

    public void Form1_Load(Object sender, EventArgs e)
    {
        settings.SettingsSaving += new SettingsSavingEventHandler(MyCustomSettings_SettingsSaving);
    }
    
    Public Sub Form1_Load(Sender as Object, e as EventArgs)
        AddHandler settings.SettingsSaving, AddressOf MyCustomSettings_SettingsSaving
    End Sub
    
  2. Defina o manipulador de eventos e escreva o código dentro dele para executar a verificação de limites na data de nascimento.

    private void MyCustomSettings_SettingsSaving(Object sender, SettingsSavingEventArgs e)
    {
        if (this["DateOfBirth"] > Date.Now) {
            e.Cancel = true;
        }
    }
    
    Private Sub MyCustomSettings_SettingsSaving(Sender as Object, e as SettingsSavingEventArgs)
        If (Me["DateOfBirth"] > Date.Now) Then
            e.Cancel = True
        End If
    End Sub
    

Consulte também