私は.NET MVCとNinjectの両方の初心者です。Ninject/.NET MVC3 - スコープ?
ここで私のNinjectカーネルを入手するには: Ninjectを使用します。
(...) NK = NinjectKernel.getInstance();
private Game getGameInstance() {
IGame iGame;
try
{
iGame = NK.Get<IGame>(DefaultGameName);
}
catch
{
NK.Bind<IGame>().To<Game>().InSingletonScope().Named(DefaultGameName)
.WithConstructorArgument("ColorChoiceCount", 12)
.WithConstructorArgument("CodeLength", 6)
.WithConstructorArgument("TurnsToBePlayed", 8)
.WithConstructorArgument("DoubleColorAllowed", true)
;
iGame = NK.Get<IGame>(DefaultGameName);
}
return (Game)iGame;
}
私はゲームのオブジェクトがあることを意味し、再使用可能な使用中の「セッション」、になりたい:
public class NinjectKernel
{
private static IKernel _Instance = new StandardKernel();
public static IKernel getInstance()
{
return _Instance;
}
}
は、ここで私は、私は再使用するオブジェクトのインスタンスを保存する方法です彼がサイトを離れる場合、このインスタンスは再び使用されません。しかし、現在の状況では、デバッグ中に、アプリケーションを閉じて再起動すると、私は以前の "セッション"のインスタンスを常に再取得します。 私はこれを望んでいないので、私は複数のユーザーのために同じインスタンスを取得しないかどうかを知りたいと思います。 (ユーザーは認証されていても認証されていなくてもかまいませんが、今はまったくありません)。
(また、私は確信しているので、1がなければならないが、これが機能するように、今の優先順位ではありません、そこのtry/catchを使用するよりも、私のより良いソリューションを提案することができる。)
はありがとうあなたの助けに。
Ninjectをインストールし、NinjectMVC3.cs以外のファイルを取得しました。とにかく私はまだ私の質問への答えに興味があります。 – TTT
@ user1103990ファイルはApp_Start \ NinjectWebCommon.csです。 –
@RubenBartelink - Ahh ..最近のNinject 3リリースで更新されたようです。 –