我将事件数据存储在 EventStore 中:
var data = new EventData(Guid.NewGuid(),
@event.GetType().ToString(),
true,
@event.ToJsonBytes(),
@event.GetType().ToJsonBytes());
this.connection.AppendToStreamAsync(this.stream + "/" + aggregateId,
ExpectedVersion.Any, data);
似乎工作。但是如何在不给出具体类型的情况下解析 EventStore 中的数据呢?
我试过这种方式,但这只会解析基类的数据:
foreach (var data in result.Events)
{
var @event = data.Event.Data.ParseJson<Event>();
if (@event != null) // event contains only the base type data
{
events.Add(@event);
}
}
如何取回派生自 Event 的 SomeSpecialEvent 的数据?Event 类型有好几种,这里就不一一列举了(存储机制应该不知道具体的类型)。
任何想法如何在不使用泛型的情况下将 T 放入 .ParseJson 中?