にオブジェクトの状態を初期化し、私は、データベースから、いくつかの現在のユーザーのアクセス許可のデータを取得する必要があり、その後、この情報は(複数のオブジェクトで構成されている)ロジック の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のようなオブジェクトを定義し、この
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のようなIOC何かを定義する)制御器は
void PageController(IApplicationLogic1 l1)
{
l1.Process();
l2.Process();
}