LogArchiveSnapshot.LastSequenceNumber Propriété
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Obtient le dernier numéro de séquence de LogStore au moment où la capture instantanée a été prise.
public:
property System::IO::Log::SequenceNumber LastSequenceNumber { System::IO::Log::SequenceNumber get(); };
public System.IO.Log.SequenceNumber LastSequenceNumber { get; }
member this.LastSequenceNumber : System.IO.Log.SequenceNumber
Public ReadOnly Property LastSequenceNumber As SequenceNumber
Valeur de propriété
Dernier numéro de séquence de LogStore au moment où la capture instantanée a été prise.
Exemples
L'exemple suivant illustre l'utilisation de la classe LogArchiveSnapshot pour archiver un élément LogStore dans un document XML.
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();
}
}
}
Friend Class LogBackup
Private Shared Sub ArchiveToXML(ByVal logStore As LogStore, ByVal fileName As String)
Dim snapshot As LogArchiveSnapshot = logStore.CreateLogArchiveSnapshot()
Dim writer As New XmlTextWriter(fileName, Encoding.ASCII)
writer.WriteStartElement("logArchive")
For Each region As FileRegion In snapshot.ArchiveRegions
writer.WriteStartElement("fileRegion")
writer.WriteElementString("path", region.Path)
writer.WriteElementString("length", region.FileLength.ToString())
writer.WriteElementString("offset", region.Offset.ToString())
Using dataStream As Stream = region.GetStream()
Dim data(dataStream.Length - 1) As Byte
dataStream.Read(data, 0, data.Length)
writer.WriteElementString("data", Convert.ToBase64String(data))
End Using
writer.WriteEndElement()
Next region
writer.WriteEndElement()
writer.Close()
logStore.SetArchiveTail(snapshot.LastSequenceNumber)
End Sub
Private Shared Sub RestoreFromXML(ByVal fileName As String)
Using reader As New XmlTextReader(fileName)
reader.ReadStartElement("logArchive")
Do While reader.IsStartElement()
Dim path = reader.ReadElementString("path")
Dim length = Int64.Parse(reader.ReadElementString("length"))
Dim offset = Int64.Parse(reader.ReadElementString("offset"))
Dim dataString = reader.ReadElementString("data")
Dim data() = Convert.FromBase64String(dataString)
Dim fileStream As FileStream
fileStream = New FileStream(path, FileMode.OpenOrCreate, FileAccess.Write)
Using fileStream
fileStream.SetLength(length)
fileStream.Position = offset
fileStream.Write(data, 0, data.Length)
End Using
Loop
reader.ReadEndElement()
End Using
End Sub
End Class