您好,我在将数据库上下文解析为静态帮助程序类时遇到了一些问题。 举个例子,我的UserHelper类,我想做一些查找,看看用户是否是管理员。 现在我通过在Userhelper中创建一个新的Context来修复它们,但我想使用通过ninject创建的一个实例。这怎么可能?
public static class UserHelper
{
private static MetropolOpgavebankenEntities _context;
public static MetropolOpgavebankenEntities Context
{
get
{
if (_context == null)
_context =
new MetropolOpgavebankenEntities(
ConfigurationManager.Instance.Configuration.ConnectionString.Value);
return _context;
}
}
public static bool IsAdmin()
{
if (!HttpContext.Current.User.Identity.IsAuthenticated)
return false;
string username = HttpContext.Current.User.Identity.Name;
if(Context.Administrators.Any(x => x.MetropolId.ToLower() == username.ToLower()))
return true;
return false;
}
}
我的ninject代码
private static void RegisterServices(IKernel kernel)
{
kernel.Bind<MetropolOpgavebankenEntities>().ToMethod(c => new MetropolOpgavebankenEntities(ConfigurationManager.Instance.Configuration.ConnectionString.Value)).InRequestScope();
kernel.Bind<OpgavebankService>().To<OpgavebankService>();
}
答案 0 :(得分:2)
这怎么可能?
您不应该使用静态类。如果你想使用依赖注入并让你的DI框架处理对象的生命周期,你应该将它委托给它。否则,您不再使用依赖注入而是使用服务定位器(它被视为反模式)。