ASP.NET Core DependencyResolver

后端 未结 7 723
故里飘歌
故里飘歌 2020-12-15 19:20

In ASP.NET MVC 5 is possible to obtain some dependency through DependencyResolver.Current.GetService(). Is there something similar in ASP.NET Core?

7条回答
  •  北海茫月
    2020-12-15 19:54

    Yes, there is. In ASP.NET Core 1.0.0, the services available within a request from HttpContext are exposed through the RequestServices collection[1]:

    this.HttpContext.RequestServices
    

    You can use the GetService method to retrieve the dependencies by specifying the type of the dependency:

    this.HttpContext.RequestServices.GetService(typeof(ISomeService));
    

    Generally, you shouldn’t use these properties directly, preferring instead to request the types your classes you require via your class’s constructor, and letting the framework inject these dependencies. This yields classes that are easier to test and are more loosely coupled.

    [1] https://docs.asp.net/en/latest/fundamentals/dependency-injection.html#request-services

提交回复
热议问题