یک نکتهی تکمیلی: در ASP.NET Core 3.0 فراموش شدن ثبت سرویسها در ابتدای اجرای برنامه گوشزد میشود
فرض کنید WeatherForecastService شما به DataService وابستگی دارد:
public class WeatherForecastService
{
private readonly DataService _dataService;
public WeatherForecastService(DataService dataService)
{
_dataService = dataService;
}
و اکنون از این سرویس در یک کنترلر استفاده کردهاید:
public class WeatherForecastController : ControllerBase
{
private readonly WeatherForecastService _service;
public WeatherForecastController(WeatherForecastService service)
{
_service = service;
}
و در این بین، در حین معرفی وابستگیها:
public void ConfigureServices(IServiceCollection services)
{
services.AddControllers();
services.AddSingleton<WeatherForecastService>();
ثبت سرویس Data فراموش شدهاست. اکنون اگر برنامه را اجرا کنید، پیش از شروع به کار، این اعتبارسنجی رخ خواهد داد:
Unhandled exception. System.AggregateException: Some services are not able to be constructed
(Error while validating the service descriptor
'ServiceType: TestApp.WeatherForecastService Lifetime: Scoped ImplementationType:
TestApp.WeatherForecastService': Unable to resolve service for type
'TestApp.DataService' while attempting to activate 'TestApp.WeatherForecastService'.)
به این ترتیب قبل از شروع برنامه، کمبودهای تنظیمات سیستم تزریق وابستگیها گوشزد میشود.