Compartir a través de


Cómo: Escribir datos de objetos en un archivo XML (C# y Visual Basic)

En este ejemplo se escribe el objeto de una clase en un archivo XML mediante la clase XmlSerializer.

Ejemplo

En este ejemplo de código se define una clase denominada Book, se crea una instancia de la clase y se utiliza la serialización XML para escribir la instancia en un archivo XML.

Código parecido a éste está disponible como fragmentos de código de IntelliSense. En el selector de fragmentos de código, se encuentra en XML. Para obtener más información, vea Cómo: Insertar fragmentos de código de IntelliSense.

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
public class Book
{
    public String title; 

 }

public void WriteXML()
{
    Book overview = new Book();
    overview.title = "Serialization Overview";
    System.Xml.Serialization.XmlSerializer writer = 
        new System.Xml.Serialization.XmlSerializer(typeof(Book));

    System.IO.StreamWriter file = new System.IO.StreamWriter(
        @"c:\temp\SerializationOverview.xml");
    writer.Serialize(file, overview);
    file.Close();
}

Compilar el código

La clase debe tener un constructor público sin parámetros.

Programación eficaz

Las condiciones siguientes pueden provocar una excepción:

  • La clase que se va a serializar no tiene un constructor público sin parámetros.

  • El archivo ya existe y es de sólo lectura (IOException).

  • La ruta de acceso es demasiado larga (PathTooLongException).

  • El disco está lleno (IOException).

Seguridad

En este ejemplo se crea un nuevo archivo, si es que aún no existe. Si una aplicación necesita crear un archivo, precisará acceso Create para la carpeta correspondiente. Sin embargo, si el archivo ya existe, la aplicación sólo precisará acceso Write, un privilegio menor. Por tanto, siempre que sea posible, resulta más seguro crear el archivo durante la implementación y conceder sólo acceso Read para un único archivo, en lugar de acceso Create para una carpeta.

Vea también

Tareas

Cómo: Leer datos de objetos de un archivo XML (C# y Visual Basic)

Referencia

StreamWriter

Otros recursos

Serialización (C# y Visual Basic)

Serialización (C# y Visual Basic)