In ASP.NET MVC 5 is possible to obtain some dependency through DependencyResolver.Current.GetService<T>()
. Is there something similar in ASP.NET Core?
In ASP.NET MVC 5 is possible to obtain some dependency through DependencyResolver.Current.GetService<T>()
. Is there something similar in ASP.NET Core?
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