Created
November 25, 2022 20:02
-
-
Save dstarr/7e737572e2a4be5ba679bc0fc7b3b7cb to your computer and use it in GitHub Desktop.
IServiceProvider Constructor injection
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public ActionResult Index(string[] array) | |
{ | |
int[] result = [0]; | |
using (var scope = _serviceProvider.CreateScope()) | |
{ | |
var service = scope.GetService<IArrayReversalService>(); | |
result = await service.Reverse(array); | |
} | |
return View(result); | |
} | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class HomeController : Controller | |
{ | |
private readonly ILogger<HomeController> _logger; | |
private readonly IArrayReversalService _arrayReversalService; | |
// more fields for injected services | |
public HomeController(ILogger<HomeController> _logger, IArrayReversalService _arrayReversalService, ... more services) | |
{ | |
_arrayReversalService = serviceProvider.GetService<IArrayReversalService>(); | |
_logger = serviceProvider.GetService<ILogger<HomeController>>(); | |
// More services assigned | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
private readonly IServiceProvider _serviceProvider; | |
public HomeController(IServiceProvider serviceProvider) | |
{ | |
_serviceProvider = serviceProvider; | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// uses the same syntax to add the service in Program.cs | |
builder.Services.AddTransient<IArrayReversalService, ArrayReversalService>(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment