Demonstra Passo a passo: Persistência an objeto in Visual Basic
Embora você possa conjunto propriedades de um objeto para os valores padrão em time de design, quaisquer valores inseridos em time de execução são perdidos quando o objeto é destruído.Você pode usar serialização em Visual Basic para persistir os dados de um objeto entre instâncias, permitindo que você armazene valores e os recupere na próxima vez em que o objeto é instanciado.
Para armazenar dados simples, sistema autônomo um nome ou número, você pode usar o My.Settings objeto. Para obter mais informações, consulte Objeto My.Settings.
Esta explicação passo a passo, você irá criar um simples Loan objeto e manter seus dados para um arquivo. Em seguida, recuperar os dados do arquivo quando você re-criar o objeto.Finalmente, você irá modificar o código para manter o objeto em um formato SOAP.
Observação de segurança: |
---|
Este exemplo cria um novo arquivo, se o arquivo ainda não existir.Se um aplicativo deve Crie um arquivo, esse aplicativo deve Create permissão para a pasta. As permissões são definidas através de listas de controle de acesso.Se o arquivo já existir, o aplicativo precisa apenas Write permissão, uma permissão menos. Sempre que possível, é mais seguro criar o arquivo durante a implantação e conceda apenas Read permissões para um único arquivo (em vez de criar permissões para uma pasta). Além disso, é mais seguro gravar dados em pastas de usuário que em pasta raiz ou em pasta Program Files. |
Observação de segurança: |
---|
Este exemplo armazena dados em um arquivo de formato SOAP ou binário.Esses formatos não devem ser usados para dados confidenciais, sistema autônomo senhas ou de crédito - informações de cartão. |
Observação: |
---|
As caixas de diálogo e comandos de menu demonstradas podem ser diferentes daqueles descritas na Ajuda, dependendo das configurações ativas ou configurações de edição.Para alterar as configurações clicar Importar e exportar configurações on the Ferramentas menu.Para obter mais informações, consulte Configurações do Visual Studio. |
Criando o objeto de empréstimo
A primeira etapa é criar um Loan classe e um aplicativo de teste que usa a classe.
Para criar a classe de empréstimo
Criar um novo projeto classe biblioteca e nomeie-o "LoanClass".Para obter mais informações, consulte Como: Criar soluções e projetos.
No Editor de código, alterar o nome da classe de "Class1" para "Empréstimo".
Adicione os seguintes membros públicos na classe:
Public LoanAmount As Double = 10000.0 Public InterestRate As Double = 7.5 Public Term As Integer = 36 Public Customer As String
Você também precisará criar um aplicativo simples que usa o Loan classe.
Crie um aplicativo de teste.
Para adicionar um projeto Windows aplicativo à sua solução, clicar no Arquivo , aponte para Adicionare, em seguida, clicar Novo projeto.
No Adicionar novo projeto diálogo, digite LoanApp sistema autônomo o nome do projeto e clicar OK para fechar a caixa de diálogo.
In O gerenciador de soluções, selecionar o projeto LoanApp.
Sobre o Projeto menu, clicar conjunto sistema autônomo projeto de inicialização.
No menu Project, escolha Add Reference.
No Adicionar referência caixa de diálogo, clicar the Projetos guia e selecionar o projeto LoanClass.
Clique OK para fechar a caixa de diálogo.
No designer, adicionar quatro TextBox controles ao formulário.
No Editor de código, adicione o seguinte código:
Private TestLoan As New LoanClass.Loan Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As _ System.EventArgs) Handles MyBase.Load TextBox1.Text = TestLoan.LoanAmount.ToString TextBox2.Text = TestLoan.InterestRate.ToString TextBox3.Text = TestLoan.Term.ToString TextBox4.Text = TestLoan.Customer End Sub
Neste ponto, você pode compilação e executar o aplicativo.Observe que o padrão valores do Loan classe aparecem nas caixas de texto. Tente alterar o valor de taxa de juros de 7.5 para 7.1 e, em seguida, fechar o aplicativo e executá-lo novamente — o valor será revertido para o padrão de 7.5.
No mundo real, taxas de juros alterar periodicamente, mas não necessariamente todos time que o aplicativo é executado.Em vez de fazer com que o usuário atualizar a taxa de juros cada vez que o aplicativo é executado, é melhor preservar a mais recente taxa de juros entre instâncias do aplicativo.Na próxima etapa, fará exatamente isso, a adição de serialização à classe empréstimo.
Uso de serialização para persistência o objeto
Para persistir os valores para a classe de empréstimo, você deve primeiro marca a classe com o Serializable atributo.
Para marcar uma classe sistema autônomo serializável
alterar a declaração de classe para o empréstimo de classe sistema autônomo a seguir:
<Serializable()> Public Class Loan
The Serializable atributo informa ao compilador que todo o conteúdo da classe pode ser mantido em um arquivo. Nesse caso, você quer manter apenas o InterestRate membro, mas provavelmente não deseja manter o Customer, LoanAmount, ou Period membros. The NonSerialized atributo pode ser usado para marcar os membros da classe que não devem ser persistentes. Para manter a simplicidade neste exemplo, tudo exceto o Customer membro é mantido.
Para impedir que um membro de serialização
Altere a declaração para o Customer membro sistema autônomo segue:
<NonSerialized()> Public Customer As String
A próxima etapa é adicionar o código de serialização para o aplicativo LoanApp.Para serializar a classe e gravá-los para um arquivo, você irá usar o System.IO e System.Xml.Serialization espaços para nome. Para evitar digitar nomes totalmente qualificados, você pode usar o Imports demonstrativo.
Para adicionar referências aos namespaces
Adicione o seguinte Imports instruções para a parte superior das Form1 classe:
Imports System.IO Imports System.Runtime.Serialization.Formatters.Binary
Nesse caso, você está usando um formatador binário para salvar o objeto em um formato binário.Posteriormente nesta explicação passo a passo, você irá modificar o código para salvar o objeto em um formato SOAP.
A próxima etapa é adicionar código para desserializar o objeto do arquivo quando o objeto é criado.
Para desserializar um objeto
Adicione uma constante à classe de nome de arquivo de dados serializados.
Const FileName As String = "SavedLoan.bin"
Modificar o código no Form1_Load procedimento de evento da seguinte maneira:
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As _ System.EventArgs) Handles MyBase.Load If File.Exists(FileName) Then Dim TestFileStream As Stream = File.OpenRead(FileName) Dim deserializer As New BinaryFormatter TestLoan = CType(deserializer.Deserialize(TestFileStream), LoanClass.Loan) TestFileStream.Close() End If TextBox1.Text = TestLoan.LoanAmount.ToString TextBox2.Text = TestLoan.InterestRate.ToString TextBox3.Text = TestLoan.Term.ToString TextBox4.Text = TestLoan.Customer End Sub
Observe que você primeiro deve verificar se o arquivo existe.Se ele existir, crie um Stream classe para ler o arquivo binário e um BinaryFormatter classe para converter o arquivo. The CType método é usado para converter de fluxo para o tipo de objeto de empréstimo.
Em seguida, você deve adicionar código para salvar os dados inseridos nas caixas de texto para o Loan classe e, em seguida, você deve serializar a classe em um arquivo.
Para salvar os dados e serializar a classe
Adicione o seguinte código à Form1_Closing procedimento de evento:
Private Sub Form1_Closing(ByVal sender As System.Object, ByVal e As _ System.ComponentModel.CancelEventArgs) Handles MyBase.Closing TestLoan.LoanAmount = CType(TextBox1.Text, Double) TestLoan.InterestRate = CType(TextBox2.Text, Double) TestLoan.Term = CType(TextBox3.Text, Integer) TestLoan.Customer = TextBox4.Text Dim TestFileStream As Stream = File.Create(FileName) Dim serializer As New BinaryFormatter serializer.Serialize(TestFileStream, TestLoan) TestFileStream.Close() End Sub
Neste ponto, você pode novamente compile e execute o aplicativo.Inicialmente, os valores padrão aparecem nas caixas de texto.Tente alterar os valores e digite um nome na quarta caixa de texto.fechar o aplicativo e executá-la novamente.Observe que agora sistema autônomo novos valores aparecem sistema autônomo caixas de texto, exceto para o nome do cliente que foi marcado sistema autônomo NonSerialized.
Persistência o objeto usando um formato SOAP
Até agora, este exemplo demonstrou como persistir um objeto em um arquivo de texto usando um formato binário.Um formato binário é funciona bem para a maioria dos aplicativos Windows.Para serviços XML da Web ou aplicativos da Web, convém manter o objeto para um arquivo XML usando um formato SOAP, que torna fácil de compartilhar o objeto.
Para persistir o objeto para um formato SOAP, primeiro você deve fazer referência a SoapFormatter classe. The SoapFormatter classe reside em seu próprio namespace: System.Runtime.Serialization.Formatters.Soap.
Para manter o objeto usando o formato SOAP
In O gerenciador de soluções, selecionar o projeto LoanApp.
No menu Project, escolha Add Reference.
No Adicionar referência diálogo, clicar no NET guia e selecionar o System.Runtime.Serialization.Formatters.Soap componente.
Clique OK para fechar a caixa de diálogo.
No Editor de código, add an Imports demonstrativo para a parte superior das Form1 módulo:
Imports System.Runtime.Serialization.Formatters.Soap
Alterar nome de arquivo de SavedLoan.bin para SavedLoan.xml.
No Form1_Load procedimento de evento, alterar o Dim demonstrativo da Dim deserializer As New BinaryFormatter a seguinte:
Dim deserializer As New SoapFormatter
No Form1_Closing procedimento de evento, alterar o Dim demonstrativo da Dim serializer As New BinaryFormatter a seguinte:
Dim serializer As New SoapFormatter
Neste ponto, você pode criar e testar o aplicativo.Quando você executa o aplicativo pela primeira vez, o arquivo SavedLoan.xml é criado.Para exibir o arquivo, selecionar o Mostrar todos os arquivos opção O gerenciador de soluções; ele está localizado no projeto Windows aplicativo o nó bin.
Observação: |
---|
Se você já estiver em Mostrar todos os arquivos modo, você deve atualizar o modo de exibição clicando em Atualizar from the Modo de exibição menu para ver o arquivo. |
Observe que os três membros do LoanClass são exibidos em formato XML. Altere o valor InterestRate no arquivo XML, salvá-lo e, em seguida, executar o aplicativo novamente.A nova taxa de juros aparece na caixa de texto segunda.
Consulte também
Conceitos
Equivalentes do PropertyBag para usuários do Visual Basic 6.0