دوره های آموزشی آکادمی پی وی لرن (پروژه محور و ویژه بازار کار)



  • ۱۶
  • مرداد

جلسه ۱۲ : تزریق وابستگی ها در ASP.NET Core بخش دوم

  • دسته‌بندی‌ها :
جلسه ۱۲ : تزریق وابستگی ها در ASP.NET Core بخش دوم
    • جزئیات
    • نوع محتواآموزش تصویری

      مقدمه :

      با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن ، با یکی دیگر از جلسات دوره کامل آموزش asp.net core در خدمت شما دوستان هستیم . در بخش قبل به معرفی قابلیت تزریق وابستگی ها پرداختیم و گفتیم که NET Core. این ویژگی نیز پشتیبانی می کند در این جلسه به آموزش تزریق وابستگی ها در ASP.NET Core ( Dependency injection ) بخش دوم   می پردازیم تا پایان این جلسه با ما همراه باشید

      طول عمر سرویس ها در ظرف IoC :

      در ظرف ساخته شده IoC می توان طول عمر سرویس ثبت شده را مدیریت کرد. Ioc Container به طور خودکار طول عمر یک سرویس را بر اساس مدت زمان خاص مشخص می کند.

      ظرف IoC سه نوع طول عمر را برای سرویس ها پشتیبانی می کند :

      1. Singleton : ظرف IoC یک نمونه واحد از سرویس را در طول عمر برنامه ایجاد و به اشتراک می گذارد.
      2. Transient : ظرف IoC یک نمونه جدید از سرویس را هر بار که بخواهید ایجاد می کند.
      3. Scoped: ظرف IoC نمونه ای از سرویس را در هر درخواست ایجاد می کند ولی فقط در یک درخواست به اشتراک میگذارد.

      کدهای زیر نشان می دهد که چگونه سرویس ها را با طول عمر مختلف ثبت کنید :

      مثال : 

       

      چارچوب ASP.NET Core شامل متدهای توسعه یافته (extension methods) برای هر طول نیز می باشد. میتوان از متد های AddSingleton و  AddTransient  و AddScoped  برای طول عمرهای تک تک، گذرا و محدود استفاده کرد.

      در مثال زیر این روش بیان شده است :

      مثال : 

       

      تزریق در کنترلرها:

      برای مثال می توانیم از ILog در هر کنترلر MVC استفاده کنیم . کدهای زیر گویای مطلب هستند:

      مثال : 

       

      در مثال بالا، یک ظرف IoC به طور خودکار نمونه ای از MyConsoleLogger را به سازنده HomeController منتقل می کند و ما نیازی به انجام کاری دیگر نداریم.

      همچنین ظرف IoC یک نمونه از ILog را هم بر اساس طول عمر ثبت شده ایجاد و دفع (dispose) می کند.

       

      تزریق در اکشنی (Action) خاص :

      گاهی اوقات ممکن است لازم باشد از یک سرویس در یک action به عنوان پارامتر استفاده گردد. برای این کار ، ویژگی [FromServices] را بهمراه پارامتر مورد نظر به اکشن ارسال میکنیم  مانند کد های زیر :

      مثال : 

       

      تزریق در Property ها :

      ظرف IoC پیش فرض در NET Core. تزریق Property ها را پشتیبانی نمی کند. شما باید از ظرف IoC سفارشی بدین منظور استفاده کنید.

       

      دسترسی دستی (Manually) به سرویس ها :

      لازم نیست حتما سرویس وابستگی را در به سازنده معرفی کنید. می توانید به سرویس های ظرف IoC در حالت دستی با استفاده از Property RequestServices از HttpContext دسترسی داشته باشیم، همانطور که در زیر نشان داده شده است.

      مثال : 

      البته روش معرفی به سازنده کلاس نسبت به روش دستی برای تزریق وابستگی ها بیشتر توصیه شده است .

       

      در بخش بعدی آموزش در رابطه با میان افزار (middleware ) صحبت خواهیم کرد.

       

      QR:  جلسه ۱۲ : تزریق وابستگی ها در ASP.NET Core بخش دوم
      به اشتراک بگذارید


      دیدگاه کاربران
      1. تصویر کاربر