我是.NET MVC和Ninject的初學者。Ninject/.NET MVC3 - 範圍?
這裏我如何得到我的Ninject內核: 使用Ninject;
public class NinjectKernel
{
private static IKernel _Instance = new StandardKernel();
public static IKernel getInstance()
{
return _Instance;
}
}
下面是如何保存對象的實例,我想重新使用:
(...) 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;
}
我想是可重複使用的遊戲對象使用「會話」,這意味着內如果他離開該網站,這個實例將不會再被使用。但在目前情況下,在調試時,當我關閉應用程序並重新啓動應用程序時,我總是重新獲得先前「會話」的實例。 我也想知道,如果我不會爲多個用戶獲得相同的實例,因爲我不想要這個。 (用戶可能會或可能不會被驗證,現在他們根本沒有)。
(您也可以推薦一個更好的解決方案比使用一個try/catch那裏,因爲我敢肯定,必須有一個,但這個工程是不是一個優先事項現在。)
謝謝您的幫助。
我已經安裝了Ninject並獲得了非NinjectMVC3.cs文件。無論如何,我仍然對我的問題的答案感興趣。 – TTT 2012-04-04 16:08:13
@ user1103990該文件是App_Start \ NinjectWebCommon.cs – 2012-04-04 19:37:15
@RubenBartelink - 啊..看起來這是在最近的Ninject 3版本中更新的。 – 2012-04-04 20:49:43