我是 .NET MVC 和 Ninject 的初学者。
这里我如何获得我的 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;
}
我希望 Game 对象在使用“会话”中可重用,这意味着如果他离开站点,则不会再次使用此实例。但是在当前情况下,在调试时,当我关闭应用程序并重新启动它时,我总是重新获取我之前的“会话”的实例。我还想知道我是否不会为多个用户获得相同的实例,因为我不想要这个。(用户可能经过身份验证,也可能未经过身份验证,现在他们根本没有)。
(您可能还建议我比在那里使用 try/catch 更好的解决方案,因为我确信必须有一个,但由于它有效,所以现在不是优先事项。)
谢谢您的帮助。