我正在使用StructureMap,但我认为任何DI组件或应该能够回答这个问题。
让我列出我认为可能存在的问题但是认为讨论它会很好。
问题
在IUser.SetUser(权限perm,accessRules,规则)中的方法被调用之后,让我们说在我的控制器层中。当IUser现在被注入较低层时,例如命令处理程序,服务,事件处理程序等,单例实例将保留属性集的值IUser.SetUser(权限perm,accessRules,规则)被调用正确吗?
从我对DI的看法来看似乎是一个简单的肯定,但我想要确认一下。答案 0 :(得分:1)
通常,Web应用程序中的所有对象实例都是根据一个请求创建的。
因此,如果您的IUser
每个请求有生命周期,它会在当前请求期间保留所有数据。
如果您将IUser
创建为整个应用程序的单例,它会将数据保留到app pool recycling。