Skip to main content

HtmlSerializer Class

Definition​

Assembly:Avalonia.Controls.Documents.Serialization.Html
Package:Avalonia.Controls.Documents.Serialization.Html

Read-only HTML deserializer implementing Avalonia.Controls.Documents.Serialization.IDocumentSerializer. Supports a curated set of HTML tags commonly embedded in markdown.

public class HtmlSerializer

Inheritance: object -> HtmlSerializer

Remarks​

Serialization (write) is not supported. Avalonia.Controls.Documents.Serialization.Html.HtmlSerializer.Serialize(Avalonia.Controls.Documents.Serialization.Snapshot.DocumentSnapshot,System.IO.Stream,System.Threading.CancellationToken) throws NotSupportedException. Use RTF or DOCX serializers for export.

Custom tag handling is available via Avalonia.Controls.Documents.Serialization.Html.HtmlSerializerOptions.TagHandlers.

Constructors​

NameDescription
HtmlSerializerInitializes a new instance of Avalonia.Controls.Documents.Serialization.Html.HtmlSerializer with optional HTML options.

HtmlSerializer Constructor​

Initializes a new instance of Avalonia.Controls.Documents.Serialization.Html.HtmlSerializer with optional HTML options.

public HtmlSerializer(Avalonia.Controls.Documents.Serialization.Html.HtmlSerializerOptions options)

Parameters​

options Avalonia.Controls.Documents.Serialization.Html.HtmlSerializerOptions

HTML reader options; Avalonia.Controls.Documents.Serialization.Html.HtmlSerializerOptions.Default is used when .

Methods​

CanDeserialize Method​

Checks if a stream appears to contain this format.

public bool CanDeserialize(System.IO.Stream stream)

Parameters​

stream System.IO.Stream

The stream to check. Must be readable and seekable.

Returns​

bool

True if the stream likely contains this format; otherwise, false.

Remarks​

This method does not consume the stream; it restores the original position after checking.

Deserialize overloads​

Deserialize Method​

Deserializes a document from an HTML stream.

public Avalonia.Controls.Documents.Serialization.Snapshot.DocumentSnapshot Deserialize(System.IO.Stream stream, System.Threading.CancellationToken cancellationToken)
Parameters​

stream System.IO.Stream

cancellationToken System.Threading.CancellationToken

Returns​

Avalonia.Controls.Documents.Serialization.Snapshot.DocumentSnapshot

Deserialize Method​

Deserializes a document from an HTML string.

public Avalonia.Controls.Documents.Serialization.Snapshot.DocumentSnapshot Deserialize(string html)
Parameters​

html string

Returns​

Avalonia.Controls.Documents.Serialization.Snapshot.DocumentSnapshot

DeserializeAsync Method​

Runs Avalonia.Controls.Documents.Serialization.Html.HtmlSerializer.Deserialize(System.IO.Stream,System.Threading.CancellationToken) on a pool thread.

public System.Threading.Tasks.Task<Avalonia.Controls.Documents.Serialization.Snapshot.DocumentSnapshot> DeserializeAsync(System.IO.Stream stream, System.Threading.CancellationToken cancellationToken)

Parameters​

stream System.IO.Stream

The stream to read from.

cancellationToken System.Threading.CancellationToken

Cancellation token.

Returns​

System.Threading.Tasks.Task<Avalonia.Controls.Documents.Serialization.Snapshot.DocumentSnapshot>

The deserialized snapshot.

Remarks​

A thread-offload convenience, not asynchronous I/O: no format here reads asynchronously. Where you are already off the UI thread, call Avalonia.Controls.Documents.Serialization.Html.HtmlSerializer.Deserialize(System.IO.Stream,System.Threading.CancellationToken) and keep the thread you are on.

Serialize Method​

Serializes a document snapshot to a stream on the calling thread.

public void Serialize(Avalonia.Controls.Documents.Serialization.Snapshot.DocumentSnapshot snapshot, System.IO.Stream stream, System.Threading.CancellationToken cancellationToken)

Parameters​

snapshot Avalonia.Controls.Documents.Serialization.Snapshot.DocumentSnapshot

The document snapshot to serialize.

stream System.IO.Stream

The stream to write to. Must be writable.

cancellationToken System.Threading.CancellationToken

Cancellation token.

Remarks​

Defaults to blocking on Avalonia.Controls.Documents.Serialization.IDocumentSerializer.SerializeAsync(Avalonia.Controls.Documents.Serialization.Snapshot.DocumentSnapshot,System.IO.Stream,System.Threading.CancellationToken), so a serializer written against the released interface keeps working. Implement this member instead.

Exceptions​

SerializeAsync Method​

Runs Avalonia.Controls.Documents.Serialization.Html.HtmlSerializer.Serialize(Avalonia.Controls.Documents.Serialization.Snapshot.DocumentSnapshot,System.IO.Stream,System.Threading.CancellationToken) on a pool thread.

public System.Threading.Tasks.Task SerializeAsync(Avalonia.Controls.Documents.Serialization.Snapshot.DocumentSnapshot snapshot, System.IO.Stream stream, System.Threading.CancellationToken cancellationToken)

Parameters​

snapshot Avalonia.Controls.Documents.Serialization.Snapshot.DocumentSnapshot

The snapshot to serialize.

stream System.IO.Stream

The stream to write to.

cancellationToken System.Threading.CancellationToken

Cancellation token.

Returns​

System.Threading.Tasks.Task

Remarks​

A thread-offload convenience, not asynchronous I/O. The snapshot is already detached from the document, so the work needs no UI thread either way.

Properties​

NameDescription
CanReadWhether this serializer supports reading. Read-only UIs can filter serializer lists on this instead of catching NotSupportedException from Avalonia.Controls.Documents.Serialization.IDocumentSerializer.Deserialize(System.IO.Stream,System.Threading.CancellationToken).
CanWriteWhether this serializer supports writing documents.
FileExtensionGets the file extension including the dot (e.g., ".rtf").
FormatNameGets the format name this serializer handles (e.g., "Rtf", "Docx", "PlainText").
MimeTypeGets the MIME type for the format (e.g., "application/rtf").

CanRead Property​

Whether this serializer supports reading. Read-only UIs can filter serializer lists on this instead of catching NotSupportedException from Avalonia.Controls.Documents.Serialization.IDocumentSerializer.Deserialize(System.IO.Stream,System.Threading.CancellationToken).

public bool CanRead { get; set; }

Remarks​

Defaults to so a serializer written before this member existed still compiles. A serializer that cannot read says so.

CanWrite Property​

Whether this serializer supports writing documents.

public bool CanWrite { get; set; }

Remarks​

Defaults to so a serializer written before this member existed still compiles. A serializer that cannot write says so.

FileExtension Property​

Gets the file extension including the dot (e.g., ".rtf").

public string FileExtension { get; set; }

FormatName Property​

Gets the format name this serializer handles (e.g., "Rtf", "Docx", "PlainText").

public string FormatName { get; set; }

MimeType Property​

Gets the MIME type for the format (e.g., "application/rtf").

public string MimeType { get; set; }