如何在整个请求中保持变量值

时间:2011-04-15 17:14:02

标签: .net wcf

我正在创建REST服务,我希望每个请求都能传递特定的“票证”。这样我就不必创建会话(我的客户也不能支持它们)。

我希望将此票据存储在某处,直到请求完成为止。我将调用方法,他们将调用其他方法,连接等 - 我只是希望在此请求期间可以从代码中获取这些数据。

我知道静态类/变量不起作用,因为它是应用程序范围的。

我的选择是什么?

修改 基本上,我想要一些存储“包”,我可以在我的webservice方法中填充,并且可以从应用程序的任何地方访问。而这需要只在这个请求的长度内生存。

2 个答案:

答案 0 :(得分:0)

将数据库用作存储“包”。

存储数据(文件?)的任何其他类型的全局位置都可以,但是当多个线程尝试同时访问此资源时,请注意锁定。

答案 1 :(得分:0)

你问的一般是不好的做法。如果您需要任何方法中的某些数据,您应该将它们作为参数或实例数据(您调用该方法的对象)获取它们。

无论如何,如果你编写REST服务,你最可能使用AspNetCompatibility模式。在这种情况下,您应该有权访问HttpContext.Current.Items。如果您不使用AspNetCompatibility模式,则可以创建own extension for OperationContext