我正在使用Entity Framework和Dependency Injection。要在控制器中获取数据库结果,我正在做: -
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;
}
}
答案 0 :(得分:2)
只需使用DependencyResolver
对象(msdn),因为它内置于MVC中:
var repository = DependencyResolver.Current.GetService<IJobSeekerRepository>();
假设您在应用开始时设置DependencyResolver
。