-
Notifications
You must be signed in to change notification settings - Fork 0
Message deserialization
Artem Utkin edited this page May 28, 2023
·
1 revision
When configuring options for your consumer group (Program.cs) you must specify the message deserializer.
The library provides you with default JSON deserializer:
services.AddKafkaEventLoop(ctx.Configuration, o => o
.HasConsumerGroup("<group-1>", cgOptions => cgOptions
.HasMessageType<MyMessage>()
.HasJsonMessageDeserializer() // <-- json deserializer
.HasController<MyController>()
.Build())
.Build());
If your messages are in different format, you should provide your custom deserializer:
public class MyCustomDeserializer : IDeserializer<MyMessage?>
{
public MyMessage? Deserialize(
ReadOnlySpan<byte> data,
bool isNull,
SerializationContext context)
{
// build message instance from the byte data
}
}
and register it in the consumer group options:
services.AddKafkaEventLoop(ctx.Configuration, o => o
.HasConsumerGroup("<group-1>", cgOptions => cgOptions
.HasMessageType<MyMessage>()
.HasCustomMessageDeserializer<MyCustomDeserializer>() // <-- custom deserializer
.HasController<MyController>()
.Build())
.Build());