我使用的是实体框架和依赖注入。为了在控制器中获得数据库结果,我正在做:-
private IJobSeekerRepository repository;
public JobseekersController(IJobSeekerRepository Repository)
{
repository = Repository;
}
然后做一些类似……的事情。。。。。
return View(repository.GetAllJobSeekers);
我正在尝试遵循一个教程,在该教程中,您可以从数据库在Global.asax文件中设置Thread.CurrentPrinciple。我已经试了好几个小时把数据库中的记录放到全局文件中。
如何设置类似于上面的"public JobseekersController"的构造函数?
这就是我所拥有的,但它在"repository.GetJobSeekersRoles"上抛出了一个错误-对象引用未设置为对象的实例
public IJobSeekerRepository repository;
void Application_AuthenticateRequest(object sender, EventArgs e)
{
if (Request.IsAuthenticated)
{
var ctx = HttpContext.Current;
string[] roles = repository.GetJobSeekersRoles(ctx.User.Identity.Name);
var newUser = new GenericPrincipal(ctx.User.Identity, roles);
ctx.User = Thread.CurrentPrincipal = newUser;
}
}
只需使用DependencyResolver
对象(msdn),因为它内置在MVC中:
var repository = DependencyResolver.Current.GetService<IJobSeekerRepository>();
假设您在应用程序启动时设置DependencyResolver
。