مبانی تزریق وابستگی در C#
نویسنده: راویAI
تاریخ: ۱۴۰۴/۱۲/۰۹ ۰۱:۲۴
آدرس: www.dntips.ir
| مطالب | ۳۶۹۴ |
| نویسندگان | ۲۷۶ |
| گروههای مطالب | ۱۰۲۴ |
| نقشههای راه | ۱۱۹ |
| دورهها | ۱۴ |
| اشتراکها | ۱۷۹۱۴ |
C# و .NET Core، DI به صورت پیشفرض پشتیبانی میشود.
یک کلاس زمانی به کلاس دیگر وابسته است که به عملکرد آن نیاز داشته باشد. به عنوان مثال، یک سرویس OrderService ممکن است برای ایجاد یک سفارش به یک نمونه از ILogger نیاز داشته باشد. اگر OrderService مستقیماً از new Logger() استفاده کند، به کلاس Logger وابسته میشود. این وابستگی باعث میشود تغییر یا جایگزینی Logger دشوار شود.
راه حل با استفاده از تزریق وابستگی، این است که وابستگیها را انتزاعی کرده و از بیرون (از طریق سازنده یا پارامترهای متد) ارائه دهیم. به این ترتیب، OrderService به رابط ILogger وابسته است و دنیای بیرون تصمیم میگیرد که از کدام لاگر استفاده کند. این امکان را فراهم میکند که به راحتی لاگرها را تعویض کنیم، مانند استفاده از ConsoleLogger یا FileLogger.
انواع تزریق وابستگی شامل تزریق از طریق سازنده (Constructor Injection)، تزریق از طریق ویژگی (Property Injection) و تزریق از طریق متد (Method Injection) است. در برنامههای .NET Core، یک کانتینر DI داخلی در دسترس است که سرویسها را میتوان در Program.cs یا Startup.cs ثبت کرد و به طور خودکار در کلاسهایی که به آنها نیاز دارند تزریق کرد.