タイマータスクで新しい Ninject コンテキストを呼び出す方法は? ninject スコープを unitofwork に設定するのに苦労しています。InRequestScope() として設定すると、リクエスト以外のタスクでは機能しません。そこで、タスクの InThreadScope を取得できるように、以下のように設定しました。
kernel.Bind<IUnitOfWork>().To<myEntities>().InScope(ctx => HttpContext.Current ?? StandardScopeCallbacks.Thread(ctx));
しかし、そのように、タイマーを設定すると
Timer timer = new Timer(_ => DelayedDisconnect(chatUser.User.AuthorizationId), null, TimeSpan.FromSeconds(10), TimeSpan.FromMilliseconds(-1));
dbContext は新しいデータベース値で更新されません。
public void DelayedDisconnect(string authorizationId)
{
var myChatUser = GetChatUserByClaimedIdentifier(authorizationId);
if (!myChatUser.ChatClients.Any()) // old state (doesn't reflect database changes from 10 seconds ago).
それで...現在の状態/データベース値を反映するために新しいNinject「コンテキスト」を呼び出す方法は?