<PackageReference Include="System.ClientModel" Version="1.6.1" />

ModelWriter<T>

class ModelWriter<T>
Provides an efficient way to write IJsonModel<T> into a BinaryData using multiple pooled buffers.
using System.ClientModel.Primitives; using System.Runtime.CompilerServices; using System.Text.Encodings.Web; using System.Text.Json; namespace System.ClientModel.Internal { [System.Runtime.CompilerServices.NullableContext(1)] [System.Runtime.CompilerServices.Nullable(0)] internal class ModelWriter<[System.Runtime.CompilerServices.Nullable(2)] T> { private readonly IJsonModel<T> _model; private readonly ModelReaderWriterOptions _options; public ModelWriter(IJsonModel<T> model, ModelReaderWriterOptions options) { _model = model; _options = options; } public UnsafeBufferSequence.Reader ExtractReader() { using (UnsafeBufferSequence unsafeBufferSequence = new UnsafeBufferSequence(16384)) using (Utf8JsonWriter utf8JsonWriter = new Utf8JsonWriter(unsafeBufferSequence, new JsonWriterOptions { Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping })) { _model.Write(utf8JsonWriter, _options); utf8JsonWriter.Flush(); return unsafeBufferSequence.ExtractReader(); } } } }