1
对于每一个页面请求初始化对象的状态,我需要从数据库中获得一些当前用户权限的数据,然后在逻辑 使用此信息几次(这是由几个对象的)的IoC - 在构造
我希望每次请求都从数据库中获取数据,并在需要时通过注入来重用它。
下面是做到这一点的最好方法吗?
1)这样定义
class ApplicationUser : IApplicationUserProvider
{
private UserPermissions _userPermissions;
...
public ApplicationUser(IDatabase userService)
{
_userPermissions = userService.GetUserPermission(); // this would executed for every request once
}
UserRoles GetRoles()
{
return _userPermissions;
}
}
2物体)定义IOC像这样
var container1 = new Container(c =>
{
c.For<IDatabase>().Use<Database>();
c.For<IApplicationUser>().Use<ApplicationUser >();
c.For<IApplicationLogic1>().Use<ApplicationLogic1>(); // this has IApplicationUser in ctor
c.For<IApplicationLogic2>().Use<ApplicationLogic2>(); // this has IApplicationUser in ctor
});
3)控制器将是
void PageController(IApplicationLogic1 l1)
{
l1.Process();
l2.Process();
}