1
在我的请求过滤器中,我在自定义会话中设置了一些属性,我稍后从该服务中访问该会话。这按预期工作。在服务之外访问会话会创建重复
请求过滤:
public sealed class CustomAttribute:RequestFilterAttribute
{
public override void Execute(IRequest req, IResponse res, object requestDto)
{
var session = req.SessionAs<CustomSession>();
if (!session.FromToken)
{
throw new AuthenticationException("Please authenticate using bearer token or with flag 'UseTokenCookie' set to true.");
}
... do some work ...
session.X = tup.Item2;
session.Y = tup.Item1;
req.SaveSession(session);
}
}
在我的服务:
var session = this.SessionAs<CustomSession>();
var myX = session.X;
var myY = session.Y;
... do some work ...
var someObj = new MyOtherClass();
someObj.DoSomeWork();
在相同的请求之后,我试图访问这些相同的属性和返回不同的会话。
public class MyOtherClass
{
...stuff...
public void DoSomeWork()
{
...
var req = HostContext.AppHost.TryGetCurrentRequest();
var session = req.SessionAs<CustomSession>(); //-> this returns a new session?
var myX = session.X; //-> so this is null
var myY = session.Y; //-> and this is null
}
}
我的问题是为什么?这是同样的要求。我究竟做错了什么?
对于背景 - 我用智威汤逊(如4.5.6)和“MyOtherClass”实际上是当故障是不够显著失败交易或触发电子邮件通知它决定一个单独的错误处理类。