我有中间件/过滤器,如下面的
public class TestFilter<T> : IFilter<T> where T : class, PipeContext
{
public void Probe(ProbeContext context){}
public async Task Send(T context, IPipe<T> next)
{
var requestInfo = Program.Container.GetInstance<RequestInfo>();
//How i can access sent message from middleware
requestInfo.Token = "some value from message" + "Some Value from Middleware";
}
}
现在我想从TestFilter的Send方法读取已发送的消息。我怎么能做到这一点。期待你的帮助。
答案 0 :(得分:1)
您可以使用PipeContext.TryGetPayload<T>(out T payload)
MyMessage message;
context.TryGetPayload(out message);
我知道这个工作用于消费上下文但不确定发送/发布上下文。
但是,如果您只想从已发送的消息中获取某些值,则可以更好地使用观察者。有发送和发布的特定观察员。 Here is the documentation关于它。
答案 1 :(得分:-1)