我在InvocationContext
字典中添加了一个值,但它不会持续到下一次调用。即,被拦截的链中的每个调用都返回 false for InvocationContext.ContainsKey("tracing-id")
。
public IMethodReturn Invoke(IMethodInvocation input, GetNextInterceptionBehaviorDelegate getNext)
{
Guid tracingId;
if (!input.InvocationContext.ContainsKey(TRACING_ID))
{
tracingId = _tracingIdProvider.NewTracingId();
input.InvocationContext.Add(TRACING_ID, tracingId);
}
else
{
tracingId = (Guid)input.InvocationContext[TRACING_ID];
}
var methodReturn = getNext()(input, getNext);
return methodReturn;
}
我可以向 中添加一个条目InvocationContext
,但是,当getNext()(input, getNext)
被调用并且下一个调用被拦截时,它InvocationContext
是空的。
我是否误解了如何InvocationContext
使用?如果是这样,从一个方法调用到下一个方法调用将诸如 ID 之类的东西持久化的正确方法是什么?