Leer en inglés

Compartir vía


LogArchiveSnapshot Clase

Definición

Representa una captura de la instancia LogStore que se puede utilizar para generar un archivo.

C#
public sealed class LogArchiveSnapshot
Herencia
LogArchiveSnapshot

Ejemplos

El ejemplo siguiente muestra cómo utilizar la clase LogArchiveSnapshot para almacenar LogStore en un documento XML.

C#
class LogBackup
{
    static void ArchiveToXML(LogStore logStore, string fileName)
    {
        LogArchiveSnapshot snapshot = logStore.CreateLogArchiveSnapshot();

        XmlTextWriter writer = new XmlTextWriter(fileName, Encoding.ASCII);

        writer.WriteStartElement("logArchive");
        foreach(FileRegion region in snapshot.ArchiveRegions)
        {
            writer.WriteStartElement("fileRegion");
            writer.WriteElementString("path", region.Path);
            writer.WriteElementString("length", region.FileLength.ToString());
            writer.WriteElementString("offset", region.Offset.ToString());
            using(Stream dataStream = region.GetStream())
            {
                byte[] data = new byte[dataStream.Length];
                dataStream.Read(data, 0, data.Length);
                writer.WriteElementString("data", Convert.ToBase64String(data));
            }
            writer.WriteEndElement();
        }
        writer.WriteEndElement();
        writer.Close();
        logStore.SetArchiveTail(snapshot.LastSequenceNumber);
    }
    static void RestoreFromXML(string fileName)
    {
        using(XmlTextReader reader = new XmlTextReader(fileName))
        {
            reader.ReadStartElement("logArchive");
            while(reader.IsStartElement())
            {
                string path = reader.ReadElementString("path");
                long length = Int64.Parse(reader.ReadElementString("length"));
                long offset = Int64.Parse(reader.ReadElementString("offset"));
                string dataString = reader.ReadElementString("data");
                byte[] data = Convert.FromBase64String(dataString);
                FileStream fileStream;
                using(fileStream = new FileStream(path, FileMode.OpenOrCreate, FileAccess.Write))
                {
                    fileStream.SetLength(length);
                    fileStream.Position = offset; fileStream.Write(data, 0, data.Length);
                }
            }
        reader.ReadEndElement();
        }
    }
}

Comentarios

Un objeto LogArchiveSnapshot contiene la información necesaria para generar una copia de seguridad coherente de los datos en LogStore. Los datos reales se contienen en la colección enumerable de los objetos FileRegion devueltos por la propiedad ArchiveRegions. Cada instancia FileRegion representa una secuencia de bytes en un archivo que debe estar almacenado.

ArchiveTail, BaseSequenceNumbery las propiedades LastSequenceNumber sólo son para los propósitos informativos. Se pueden grabar junto con los datos del archivo para proporcionar la información opcional, pero no se exigen para restaurar los datos.

Propiedades

ArchiveRegions

Obtiene una colección enumerable de instancias FileRegion que contienen los datos archivados reales.

ArchiveTail

Obtiene el número de secuencia de la cola de archivo LogStore en el momento que se tomó la captura.

BaseSequenceNumber

Obtiene el número de secuencia base LogStore en el momento que se tomó la captura.

LastSequenceNumber

Obtiene el último número de secuencia LogStore en el momento que se tomó la captura.

Métodos

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Se aplica a

Producto Versiones
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1