• 1401/05/31

استفاده از Service ها در Program.cs :

با سلام و تشکر از پاسخگوییتون.

چطور می‌تونم در .Net 6 در فایل Program.cs به سرویس‌هام دسترسی داشته باشم؟

  • 1401/06/01
  • ساعت 01:53

سلام دوست من وقتتون بخیر

دوست من این لینک رو بررسی کنید


  • 1401/06/01
  • ساعت 10:12

با سلام مجدد.

ISiteService _siteService = app.Services.GetRequiredService<ISiteService> ();

این خط کد رو بر اساس لینک قرار دادم، اما سیستم این ارور را داد:

Unhandled exception. System.InvalidOperationException: Cannot resolve scoped service 'Surveyfa.Core.Services.Interfaces.ISiteService' from root provider.
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteValidator.ValidateResolution(Type serviceType, IServiceScope scope, IServiceScope rootScope)
   at Microsoft.Extensions.DependencyInjection.ServiceProvider.GetService(Type serviceType, ServiceProviderEngineScope serviceProviderEngineScope)
   at Microsoft.Extensions.DependencyInjection.ServiceProvider.GetService(Type serviceType)
   at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider provider, Type serviceType)
   at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService[T](IServiceProvider provider)
   at Program.<Main>$(String[] args) in E:\Projects\Surveyfa\Surveyfa.Web\Program.cs:line 29

  • 1401/06/01
  • ساعت 12:36

با سلام مجدد.

مشکل این بود که نمی‌شه در Program.cs به این صورت به سرویس‌ها دسترسی داشت. راه حل جایگزینی کد قبلی با این بود:

var scope = app.Services.CreateScope();
IService _service = scope.ServiceProvider.GetService<IService>();

// After

_service.SayHiToplearn("Matin mohammadi");


  • 1401/06/01
  • ساعت 15:06

با تشکر از شما دوست من بابت به اشتراک گذاری راه حل 

خداروشکر مشکل رفع شد

موفق باشید دوست من


logo-enamadlogo-samandehi