confluent-kafka-dotnet
Show / Hide Table of Contents

Class AvroSerializer<T>

(async) Avro serializer. Use this serializer with GenericRecord, types generated using the avrogen.exe tool or one of the following primitive types: int, long, float, double, boolean, string, byte[].

Inheritance
object
AvroSerializer<T>
Implements
IAsyncSerializer<T>
Inherited Members
object.Equals(object)
object.Equals(object, object)
object.GetHashCode()
object.GetType()
object.MemberwiseClone()
object.ReferenceEquals(object, object)
object.ToString()
Namespace: Confluent.SchemaRegistry.Serdes
Assembly: Confluent.SchemaRegistry.Serdes.Avro.dll
Syntax
public class AvroSerializer<T> : IAsyncSerializer<T>
Type Parameters
Name Description
T
Remarks

Serialization format: byte 0: Magic byte use to identify the protocol format. bytes 1-4: Unique global id of the Avro schema that was used for encoding (as registered in Confluent Schema Registry), big endian. following bytes: The serialized data.

Constructors

AvroSerializer(ISchemaRegistryClient, AvroSerializerConfig, RuleRegistry)

Initialize a new instance of the AvroSerializer class. When passed as a parameter to the Confluent.Kafka.Producer constructor, the following configuration properties will be extracted from the producer's configuration property collection:

avro.serializer.buffer.bytes (default: 128) - Initial size (in bytes) of the buffer used for message serialization. Use a value high enough to avoid resizing the buffer, but small enough to avoid excessive memory use. Inspect the size of the byte array returned by the Serialize method to estimate an appropriate value. Note: each call to serialize creates a new buffer.

avro.serializer.auto.register.schemas (default: true) - true if the serializer should attempt to auto-register unrecognized schemas with Confluent Schema Registry, false if not.

Declaration
public AvroSerializer(ISchemaRegistryClient schemaRegistryClient, AvroSerializerConfig config = null, RuleRegistry ruleRegistry = null)
Parameters
Type Name Description
ISchemaRegistryClient schemaRegistryClient

An implementation of ISchemaRegistryClient used for communication with Confluent Schema Registry.

AvroSerializerConfig config

Serializer configuration properties (refer to AvroSerializerConfig)

RuleRegistry ruleRegistry

AvroSerializer(ISchemaRegistryClient, IEnumerable<KeyValuePair<string, string>>)

Initialize a new instance of the AvroSerializer class.

Declaration
[Obsolete("Superseded by AvroSerializer(ISchemaRegistryClient, AvroSerializerConfig)")]
public AvroSerializer(ISchemaRegistryClient schemaRegistryClient, IEnumerable<KeyValuePair<string, string>> config)
Parameters
Type Name Description
ISchemaRegistryClient schemaRegistryClient
IEnumerable<KeyValuePair<string, string>> config

Fields

DefaultInitialBufferSize

The default initial size (in bytes) of buffers used for message serialization.

Declaration
public const int DefaultInitialBufferSize = 1024
Field Value
Type Description
int

Methods

SerializeAsync(T, SerializationContext)

Serialize an instance of type T to a byte array in Avro format. The serialized data is preceded by a "magic byte" (1 byte) and the id of the schema as registered in Confluent's Schema Registry (4 bytes, network byte order). This call may block or throw on first use for a particular topic during schema registration.

Declaration
public Task<byte[]> SerializeAsync(T value, SerializationContext context)
Parameters
Type Name Description
T value

The value to serialize.

SerializationContext context

Context relevant to the serialize operation.

Returns
Type Description
Task<byte[]>

A Task that completes with value serialized as a byte array.

Implements

IAsyncSerializer<T>
In this article