我们对需要保存到某个审计日志数据库的一组事件使用空标记接口.
但是,在使用者中,消息被强制转换为此接口,因此我们得到一个空对象.
我们实际需要的是获取"动态"或获取消息体,以便我们可以"按原样"将其发送到审计数据库,因为我们的数据库可以保存JSON文档.但我们无法看到如何从上下文中将消息体作为JSON.有可能吗?
如果你真的想要高效,你可以让消费者使用今天的界面,但是,在你的消费者中,从消息上下文中获取JToken,并使用JToken来保存消息的JSON.这样,您的使用者不需要知道每个对象类型,也不需要具有该对象类型的程序集.
public async Task Consume(ConsumeContext<IEvent> context)
{
ConsumeContext<JToken> jsonContext;
if(context.TryGetMessage(out jsonContext))
{
_eventStore.Save(jsonContext.Message); // the JToken
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
638 次 |
| 最近记录: |