Como gravar dados de objeto em um arquivo XML (C# e Visual Basic)
Este exemplo grava o objeto de uma classe em um arquivo XML usando a classe XmlSerializer.
Exemplo
Este exemplo de código define uma classe denominada Book, cria uma instância da classe e usa serialização XML para gravar uma instância em um arquivo XML.
Um código semelhante a este está disponível como um trecho de código do IntelliSense. No Gerenciador de Trechos de Código, ele está localizado em XML. Para obter mais informações, consulte Trechos de código.
Public Module XMLWrite
Sub Main()
WriteXML()
End Sub
Public Class Book
Public Title As String
End Class
Public Sub WriteXML()
Dim overview As New Book
overview.Title = "Serialization Overview"
Dim writer As New System.Xml.Serialization.XmlSerializer(GetType(Book))
Dim file As New System.IO.StreamWriter(
"c:\temp\SerializationOverview.xml")
writer.Serialize(file, overview)
file.Close()
End Sub
End Module
public class XMLWrite
{
static void Main(string[] args)
{
WriteXML();
}
public class Book
{
public String title;
}
public static void WriteXML()
{
Book overview = new Book();
overview.title = "Serialization Overview";
System.Xml.Serialization.XmlSerializer writer =
new System.Xml.Serialization.XmlSerializer(typeof(Book));
var path = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "//SerializationOverview.xml";
System.IO.FileStream file = System.IO.File.Create(path);
writer.Serialize(file, overview);
file.Close();
}
}
Compilando o código
A classe deve ter um construtor público sem parâmetros.
Programação robusta
As seguintes condições podem causar uma exceção:
A classe que está sendo serializada não tem um construtor público, sem parâmetros.
O arquivo existe e é somente leitura (IOException).
O caminho é muito longo (PathTooLongException).
O disco está cheio (IOException).
Segurança
Este exemplo cria um novo arquivo, se o arquivo ainda não existir. Se um aplicativo precisar criar um arquivo, esse aplicativo precisará do acesso Create para a pasta. Se o arquivo já existir, o aplicativo precisará apenas do acesso Write, um privilégio menor. Quando possível, é mais seguro criar o arquivo durante a implantação e somente conceder acesso Read para um único arquivo, e não acesso Create para uma pasta.
Consulte também
Tarefas
Como ler dados de objeto a partir de um arquivo XML (C# e Visual Basic)