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



  • ۱۶
  • مرداد

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

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

      مقدمه :

      با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن ، با یکی دیگر از جلسات دوره کامل آموزش asp.net core در خدمت شما دوستان هستیم . در بخش قبلی در مورد رابط خط فرمان در NET Core .  و فرمانهای آن توضیح دادیم در این جلسه به آموزش تزریق وابستگی ها در ASP.NET Core و Built-in IoC Container در ASP.NET Core می پردازیم تا پایان این جلسه با ما همراه باشید

      ASP.NET Core از ابتدا طراحی شده است تا از تزریق وابستگی پشتیبانی کند. ASP.NET Core اجزای کلاس های وابستگی را از طریق سازنده کلاس و یا با استفاده از IoC container به پروژه تزریق می کند.

      Built-in IoC Container :

      چارچوب ASP.NET Core شامل IoC Container ساده ای می باشد که بسیاری ویژگی های دیگر IoC Container کامل را ندارد.

      اگر می خواهید ویژگی های بیشتری مانند ثبت خودکار، اسکن، ردیاب ها، و یا تزئینات، را داشته باشید باید IoC Container سفارشی خود را بسازید.

      IoC Container توسط اینترفیس IServiceProvider ارائه شده است که به طور پیش فرض در سازنده کلاس پشتیبانی می شود.

      به کلاس های ایجاد شده در IoC Container که هرکدام کاربرد خودشان را دارند service گفته میشود.

      در ASP.NET Core دو نوع service وجود دارد :

      1. Framework Services : سرویس هایی که بخشی از چارچوب  ASP.NET Core هستند مانند IApplicationBuilder، IHostingEnvironment، ILoggerFactory و … .
      2. Application Services : سرویس هایی از انواع سفارشی یا کلاس ها که شما به عنوان یک برنامه نویس برای برنامه خود ایجاد می کنید.

      برای اینکه اجازه دهید IoC Container  به طور خودکار سرویس های برنامه را تزریق کند، ابتدا باید آنها را به IoC Container معرفی کنید .

       

      ثبت و پیکربندی سرویس های برنامه :

      مثال ساده زیر را در نظر بگیرید. در این مثال یک اینترفیس با نام ILog داریم که از آن در کلاس MyConsoleLogger استفاده کرده ایم.

      مثال : 

       

      ASP.NET Core اجازه می دهد تا سرویس های کاربردی خود را با IoC Container در  متد ConfigureServices از کلاس startup ثبت کنیم.

      متد ConfigureServices شامل یک پارامتر از نوع IServiceCollection است که برای ثبت سرویس های کاربردی استفاده می شود.

      کدهای زیر کلاس ILog را توسط روش IoC Container (ظرف IoC) به کلاس MyConsoleLogger وابسته می کند :

      مثال : 

       

      همانطور که در بالا می بینید ،از متد Add در IServiceCollection برای ثبت و اضافه کردن سرویس در ظرف IoC استفاده شده است .

      همچنین از متد  ServiceDescriptor برای مشخص کردن سرویس وابسته و سرویس تزریق شونده استفاده می شود. که در کد های بالا کلاس ILog را به عنوان سرویس تزریق شونده و کلاس MyConsoleLogger را نیز به عنوان کلاس وابسته به ILog مشخص کرده ایم.

      به این صورت یک وابستگی را در ظرف IoC ثبت کردیم که هرجا که از کلاس MyConsoleLogger در پروژه استفاده کنیم در حقیقت از خصوصیات کلاس وابسته به خودش (ILog) هم  در هر جای برنامه استفاده خواهیم کرد.

      بنابراین، می توانیم سرویس های سفارشی برنامه خود را در یک ظرف IoC در ASP.NET Core ثبت کنیم و در هر جای برنامه از آن استفاده کنیم.

       

      البته دیگر روش های دیگری هم برای برای ثبت سریع و آسان سرویس ها وجود دارد که در بخش بعدی این مبحث آن ها را شرح خواهیم داد.

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