boz
boz

Reputation: 419

Protobuf-net serializer for NEventStore 3+

Can anyone point me to a protobuf-net serializer for NEventStore 3.0?

I'm having trouble I think mainly due to the serialization in event store 3 wrapping the event body and headers in an EventMessage.

I'm not sure how to setup the custom serializer correctly.

Upvotes: 4

Views: 395

Answers (1)

Marc Gravell
Marc Gravell

Reputation: 1062770

This is entirely untested guesswork based on a very brief glance at github, but it looks like you want to use the wire-up API to specify a custom serializer, for example:

var store = Wireup.Init()
    .UsingSqlPersistence("Name Of EventStore ConnectionString In Config File")
        .InitializeStorageEngine()
        .UsingCustomSerialization(mySerializer)
    ... etc

where mySerializer is an instance of a type that implements the ISerialize interface. It looks like this should work:

class ProtobufSerializer : EventStore.Serialization.ISerialize
{
    public void Serialize<T>(Stream output, T graph)
    {
        ProtoBuf.Serializer.Serialize<T>(output, graph);
    }

    public T Deserialize<T>(Stream input)
    {
        return ProtoBuf.Serializer.Deserialize<T>(input);
    }
}

(so obviously mySerializer here would be a new ProtobufSerializer())

Upvotes: 3

Related Questions