2

我正在使用实体框架和依赖注入。为了在控制器中获取数据库结果,我正在做:-

    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;
        }
    }
4

1 回答 1

2

Just use the DependencyResolver object (msdn), as it's built into MVC:

var repository = DependencyResolver.Current.GetService<IJobSeekerRepository>();

Assuming you are setting the DependencyResolver on your app start.

于 2013-02-07T23:41:12.323 回答