结构(或任何 DI 组件)设置单例值

Structure (Or any DI component) setting singleton values

我正在使用StructureMap,但我认为任何DI组件或应该都可以回答这个问题。

让我列出我认为可能存在的问题,但认为说出来会很好。

问题

在 IUser.SetUser(permissions perm, accessRules, rules) 中的方法被调用后让我们在我的控制器层中说。当 IUser 现在被注入命令处理程序、服务、事件处理程序等较低层时,单例实例将保留属性集的值 IUser.SetUser(permissions perm, accessRules, rules) was called correct?

从我对 DI 的看法来看,这似乎是一个简单的肯定,但我想我会要求确定。

通常,Web 应用程序中的所有对象实例都是根据一个请求创建的。 因此,如果您的 IUser 具有每个请求的生命周期,它将保留当前请求期间的所有数据。 如果您将 IUser 创建为整个应用程序的单例,它将保留数据直到 app pool recycling.