ASP.NET中每个会话或每台机器的单例吗?

时间:2010-09-08 21:57:26

标签: asp.net vb.net singleton

我有一个用ASP.NET编写的Web应用程序(FW 3.5)(以及一些VBScript,这是一个遗留应用程序),它在后端使用实用程序类来记录错误。

我需要记录用户在前端输入的几个值。 由于实用程序类无法访问前端(或任何HTTP服务), 我在实用程序命名空间中创建了一个单例类,我的前端UI可以访问它并存储有关用户的信息。

我想更具体地说,我想知道是否有办法存储会话变量,这些变量可以通过应用程序和Web服务引用的类在Web应用程序和Web服务之间共享。例如,我有一个错误处理类,两个实例都使用它来获取有关用户的信息。有没有办法创建一个每会话单例来保存该信息,以便我的错误类可以访问用户信息?或者这是不可能的 - 我需要在需要时传递信息吗?

1 个答案:

答案 0 :(得分:1)

如果您的单例实现使用Shared变量,则您的实例在单个AppDomain中将是唯一的。

也就是说,我会尽量避免使用Singleton来简化将数据传递到实用程序类的过程。