# Writer&lt;TBufferWriter&gt;

Package: [Microsoft.Orleans.Serialization](/orleans/docs/api/csharp/microsoft.orleans.serialization/) 10.0.0

[NuGet package](https://www.nuget.org/packages/Microsoft.Orleans.Serialization) | [Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Serialization/Buffers/Writer.cs#L21)

```csharp
public struct Writer<TBufferWriter>
    where TBufferWriter : System.Buffers.IBufferWriter<byte>
```

Provides functionality for writing to an output stream.

## Type parameters

- `TBufferWriter`: The underlying buffer writer type.

## Properties

- [Position](/orleans/docs/api/csharp/microsoft.orleans.serialization/orleans.serialization.buffers.writer-1/properties/position-b9634724/)
- [Session](/orleans/docs/api/csharp/microsoft.orleans.serialization/orleans.serialization.buffers.writer-1/properties/session-3788b3f0/)
- [WritableSpan](/orleans/docs/api/csharp/microsoft.orleans.serialization/orleans.serialization.buffers.writer-1/properties/writablespan-75ec8784/)

## Methods

- [AdvanceSpan(int)](/orleans/docs/api/csharp/microsoft.orleans.serialization/orleans.serialization.buffers.writer-1/methods/advancespan-int-76ada510/)
- [Allocate(int)](/orleans/docs/api/csharp/microsoft.orleans.serialization/orleans.serialization.buffers.writer-1/methods/allocate-int-17f840a5/)
- [Commit](/orleans/docs/api/csharp/microsoft.orleans.serialization/orleans.serialization.buffers.writer-1/methods/commit-a7025abe/)
- [Dispose](/orleans/docs/api/csharp/microsoft.orleans.serialization/orleans.serialization.buffers.writer-1/methods/dispose-0fbaa112/)
- [EnsureContiguous(int)](/orleans/docs/api/csharp/microsoft.orleans.serialization/orleans.serialization.buffers.writer-1/methods/ensurecontiguous-int-494953cc/)
- [Write(ReadOnlySpan&lt;byte&gt;)](/orleans/docs/api/csharp/microsoft.orleans.serialization/orleans.serialization.buffers.writer-1/methods/write-system-readonlyspan-byte-32e5a397/)
- [WriteByte(byte)](/orleans/docs/api/csharp/microsoft.orleans.serialization/orleans.serialization.buffers.writer-1/methods/writebyte-byte-3d589eab/)
- [WriteEndBase](/orleans/docs/api/csharp/microsoft.orleans.serialization/orleans.serialization.buffers.writer-1/methods/writeendbase-7591b082/)
- [WriteEndObject](/orleans/docs/api/csharp/microsoft.orleans.serialization/orleans.serialization.buffers.writer-1/methods/writeendobject-ae1e0114/)
- [WriteFieldHeader(uint, Type, Type, WireType)](/orleans/docs/api/csharp/microsoft.orleans.serialization/orleans.serialization.buffers.writer-1/methods/writefieldheader-uint-system-type-system-type-orleans-serialization-wireprotocol-51f65f0e/)
- [WriteFieldHeaderExpected(uint, WireType)](/orleans/docs/api/csharp/microsoft.orleans.serialization/orleans.serialization.buffers.writer-1/methods/writefieldheaderexpected-uint-orleans-serialization-wireprotocol-wiretype-c61b04e4/)
- [WriteInt32(int)](/orleans/docs/api/csharp/microsoft.orleans.serialization/orleans.serialization.buffers.writer-1/methods/writeint32-int-b64bafe0/)
- [WriteInt64(long)](/orleans/docs/api/csharp/microsoft.orleans.serialization/orleans.serialization.buffers.writer-1/methods/writeint64-long-57206b54/)
- [WriteStartObject(uint, Type, Type)](/orleans/docs/api/csharp/microsoft.orleans.serialization/orleans.serialization.buffers.writer-1/methods/writestartobject-uint-system-type-system-type-4ba2d8b4/)
- [WriteUInt32(uint)](/orleans/docs/api/csharp/microsoft.orleans.serialization/orleans.serialization.buffers.writer-1/methods/writeuint32-uint-9c4e5456/)
- [WriteUInt64(ulong)](/orleans/docs/api/csharp/microsoft.orleans.serialization/orleans.serialization.buffers.writer-1/methods/writeuint64-ulong-0427e584/)
- [WriteVarInt16(short)](/orleans/docs/api/csharp/microsoft.orleans.serialization/orleans.serialization.buffers.writer-1/methods/writevarint16-short-82894740/)
- [WriteVarInt32(int)](/orleans/docs/api/csharp/microsoft.orleans.serialization/orleans.serialization.buffers.writer-1/methods/writevarint32-int-4e96d417/)
- [WriteVarInt64(long)](/orleans/docs/api/csharp/microsoft.orleans.serialization/orleans.serialization.buffers.writer-1/methods/writevarint64-long-00ece8d1/)
- [WriteVarInt8(sbyte)](/orleans/docs/api/csharp/microsoft.orleans.serialization/orleans.serialization.buffers.writer-1/methods/writevarint8-sbyte-c1e71fc4/)
- [WriteVarUInt16(ushort)](/orleans/docs/api/csharp/microsoft.orleans.serialization/orleans.serialization.buffers.writer-1/methods/writevaruint16-ushort-f08b9b9a/)
- [WriteVarUInt32(uint)](/orleans/docs/api/csharp/microsoft.orleans.serialization/orleans.serialization.buffers.writer-1/methods/writevaruint32-uint-47b8694d/)
- [WriteVarUInt64(ulong)](/orleans/docs/api/csharp/microsoft.orleans.serialization/orleans.serialization.buffers.writer-1/methods/writevaruint64-ulong-f1d21711/)
- [WriteVarUInt8(byte)](/orleans/docs/api/csharp/microsoft.orleans.serialization/orleans.serialization.buffers.writer-1/methods/writevaruint8-byte-88685c02/)

## Fields

- [Output](/orleans/docs/api/csharp/microsoft.orleans.serialization/orleans.serialization.buffers.writer-1/fields/output-bb864060/)
