Notify
Inhalt
[
Ausblenden
]IDocumentSavingCallback.Notify method
Dies wird aufgerufen, um über den Fortschritt beim Speichern des Dokuments zu informieren.
public void Notify(DocumentSavingArgs args)
Parameter | Typ | Beschreibung |
---|---|---|
args | DocumentSavingArgs | Ein Argument des Ereignisses. |
Bemerkungen
Die Hauptverwendung dieser Schnittstelle besteht darin, dem Anwendungscode zu ermöglichen, den Fortschrittsstatus abzurufen und den Speichervorgang abzubrechen.
Für den Abbruch sollte vom Fortschrittsrückruf eine Ausnahme ausgelöst und im Verbrauchercode abgefangen werden.
Beispiele
Zeigt, wie ein Dokument beim Speichern im HTML-Format verwaltet wird.
public void ProgressCallback(SaveFormat saveFormat, string ext)
{
Document doc = new Document(MyDir + "Big document.docx");
// Folgende Formate werden unterstützt: Html, Mhtml, Epub.
HtmlSaveOptions saveOptions = new HtmlSaveOptions(saveFormat)
{
ProgressCallback = new SavingProgressCallback()
};
var exception = Assert.Throws<OperationCanceledException>(() =>
doc.Save(ArtifactsDir + $"HtmlSaveOptions.ProgressCallback.{ext}", saveOptions));
Assert.True(exception?.Message.Contains("EstimatedProgress"));
}
/// <summary>
/// Rückruf zum Speichern des Fortschritts. Bricht das Speichern eines Dokuments nach den "MaxDuration" Sekunden ab.
/// </summary>
public class SavingProgressCallback : IDocumentSavingCallback
{
/// <summary>
/// Ctr.
/// </summary>
public SavingProgressCallback()
{
mSavingStartedAt = DateTime.Now;
}
/// <summary>
/// Rückrufmethode, die während des Speicherns des Dokuments aufgerufen wird.
/// </summary>
/// <param name="args">Argumente werden gespeichert.</param>
public void Notify(DocumentSavingArgs args)
{
DateTime canceledAt = DateTime.Now;
double ellapsedSeconds = (canceledAt - mSavingStartedAt).TotalSeconds;
if (ellapsedSeconds > MaxDuration)
throw new OperationCanceledException($"EstimatedProgress = {args.EstimatedProgress}; CanceledAt = {canceledAt}");
}
/// <summary>
/// Datum und Uhrzeit des Beginns der Dokumentspeicherung.
/// </summary>
private readonly DateTime mSavingStartedAt;
/// <summary>
/// Maximal zulässige Dauer in Sek.
/// </summary>
private const double MaxDuration = 0.1d;
}
Zeigt, wie ein Dokument beim Speichern im docx-Format verwaltet wird.
public void ProgressCallback(SaveFormat saveFormat, string ext)
{
Document doc = new Document(MyDir + "Big document.docx");
// Folgende Formate werden unterstützt: Docx, FlatOpc, Docm, Dotm, Dotx.
OoxmlSaveOptions saveOptions = new OoxmlSaveOptions(saveFormat)
{
ProgressCallback = new SavingProgressCallback()
};
var exception = Assert.Throws<OperationCanceledException>(() =>
doc.Save(ArtifactsDir + $"OoxmlSaveOptions.ProgressCallback.{ext}", saveOptions));
Assert.True(exception?.Message.Contains("EstimatedProgress"));
}
/// <summary>
/// Rückruf zum Speichern des Fortschritts. Bricht das Speichern eines Dokuments nach den "MaxDuration" Sekunden ab.
/// </summary>
public class SavingProgressCallback : IDocumentSavingCallback
{
/// <summary>
/// Ctr.
/// </summary>
public SavingProgressCallback()
{
mSavingStartedAt = DateTime.Now;
}
/// <summary>
/// Rückrufmethode, die während des Speicherns des Dokuments aufgerufen wird.
/// </summary>
/// <param name="args">Argumente werden gespeichert.</param>
public void Notify(DocumentSavingArgs args)
{
DateTime canceledAt = DateTime.Now;
double ellapsedSeconds = (canceledAt - mSavingStartedAt).TotalSeconds;
if (ellapsedSeconds > MaxDuration)
throw new OperationCanceledException($"EstimatedProgress = {args.EstimatedProgress}; CanceledAt = {canceledAt}");
}
/// <summary>
/// Datum und Uhrzeit des Beginns der Dokumentspeicherung.
/// </summary>
private readonly DateTime mSavingStartedAt;
/// <summary>
/// Maximal zulässige Dauer in Sek.
/// </summary>
private const double MaxDuration = 0.01d;
}
Zeigt, wie ein Dokument beim Speichern in XAMLFlow verwaltet wird.
public void ProgressCallback(SaveFormat saveFormat, string ext)
{
Document doc = new Document(MyDir + "Big document.docx");
// Folgende Formate werden unterstützt: XamlFlow, XamlFlowPack.
XamlFlowSaveOptions saveOptions = new XamlFlowSaveOptions(saveFormat)
{
ProgressCallback = new SavingProgressCallback()
};
var exception = Assert.Throws<OperationCanceledException>(() =>
doc.Save(ArtifactsDir + $"XamlFlowSaveOptions.ProgressCallback.{ext}", saveOptions));
Assert.True(exception?.Message.Contains("EstimatedProgress"));
}
/// <summary>
/// Rückruf zum Speichern des Fortschritts. Bricht das Speichern eines Dokuments nach den "MaxDuration" Sekunden ab.
/// </summary>
public class SavingProgressCallback : IDocumentSavingCallback
{
/// <summary>
/// Ctr.
/// </summary>
public SavingProgressCallback()
{
mSavingStartedAt = DateTime.Now;
}
/// <summary>
/// Rückrufmethode, die während des Speicherns des Dokuments aufgerufen wird.
/// </summary>
/// <param name="args">Argumente werden gespeichert.</param>
public void Notify(DocumentSavingArgs args)
{
DateTime canceledAt = DateTime.Now;
double ellapsedSeconds = (canceledAt - mSavingStartedAt).TotalSeconds;
if (ellapsedSeconds > MaxDuration)
throw new OperationCanceledException($"EstimatedProgress = {args.EstimatedProgress}; CanceledAt = {canceledAt}");
}
/// <summary>
/// Datum und Uhrzeit des Beginns der Dokumentspeicherung.
/// </summary>
private readonly DateTime mSavingStartedAt;
/// <summary>
/// Maximal zulässige Dauer in Sek.
/// </summary>
private const double MaxDuration = 0.01d;
}
Siehe auch
- class DocumentSavingArgs
- interface IDocumentSavingCallback
- namensraum Aspose.Words.Saving
- Montage Aspose.Words