2

EntityFrameworkと依存性注入を使用しています。コントローラーでデータベースの結果を取得するために、私は次のことを行っています:-

    private IJobSeekerRepository repository;

    public JobseekersController(IJobSeekerRepository Repository)
    {
        repository = Repository;
    }

その後、次のようなことをします。

     return View(repository.GetAllJobSeekers);

データベースからGlobal.asaxファイルにThread.CurrentPrincipleを設定できるチュートリアルに従おうとしています。私は何時間もの間、データベースからグローバルファイルにレコードを取得しようとしてきました。

上記の「publicJobseekersController」のようなコンストラクターを設定するにはどうすればよいですか?

これは私が持っているものですが、'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

MVC に組み込まれているDependencyResolverオブジェクト ( msdn ) を使用するだけです。

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

DependencyResolverアプリの起動時にを設定していると仮定します。

于 2013-02-07T23:41:12.323 に答える