Usando el motor de persistencia MongoDB en joliver/EventStore causando el error Unknown discriminator value 'MyEvent'
. El problema sólo se produce cuando intento cargar todos los eventos para reproducir los eventos como this.storeEvent.Advanced.GetFrom(new DateTime(2010, 1,1))
Valor discriminador desconocido 'MyEvent'
los temas es causado en ExtensionsMethods.cs
public class MyClassEvent : IDomainEvent { ... }
public static Commit ToCommit(this BsonDocument doc, IDocumentSerializer serializer)
{
if (doc == null)
return null;
var id = doc["_id"].AsBsonDocument;
var streamId = id["StreamId"].AsGuid;
var commitSequence = id["CommitSequence"].AsInt32;
var events = doc["Events"].AsBsonArray.Select(e => e.AsBsonDocument["Payload"].IsBsonDocument ? BsonSerializer.Deserialize<EventMessage>(e.AsBsonDocument["Payload"].AsBsonDocument) : serializer.Deserialize<EventMessage>(e.AsBsonDocument["Payload"].AsByteArray)).ToList();
var streamRevision = doc["Events"].AsBsonArray.Last().AsBsonDocument["StreamRevision"].AsInt32;
return new Commit(
streamId,
streamRevision,
doc["CommitId"].AsGuid,
commitSequence,
doc["CommitStamp"].AsDateTime,
BsonSerializer.Deserialize<Dictionary<string, object>>(doc["Headers"].AsBsonDocument),
events);
}
Mi configuración es la siguiente:
Wireup.Init()
.UsingMongoPersistence(connectionName, new DocumentObjectSerializer())
.UsingBsonSerialization()
.UsingAsynchronousDispatcher()
.PublishTo(this.container.Resolve<IPublishMessages>())
.Build();
Pero he probado casi todo tipo de opciones de serializador.
Gracias. Cuando guardé las confirmaciones, el controlador mongo db registró las clases en sí, sin embargo, en respuesta (lectura pura) la asignación no se realizó. – Jacee
Gracias, aunque no puedo ver por qué esto debería ser necesario – JacobE