ASP.NET Core ฉีดวัตถุของคลาสการพึ่งพาผ่านตัวสร้างหรือเมธอดโดยใช้คอนเทนเนอร์ IoC ในตัว
คอนเทนเนอร์ในตัวแสดงโดยการใช้งาน IServiceProvider ที่รองรับการฉีดคอนสตรัคเตอร์ตามค่าเริ่มต้น ประเภท (คลาส) ที่จัดการโดย IoCcontainer ในตัวเรียกว่าบริการ
เพื่อให้คอนเทนเนอร์ IoC ฉีดบริการแอปพลิเคชันของเราโดยอัตโนมัติ อันดับแรก เราต้องลงทะเบียนกับคอนเทนเนอร์ IoC
ตัวอย่าง
public interface ILog{ void info(string str); } class MyConsoleLogger : ILog{ public void info(string str){ Console.WriteLine(str); } }
ASP.NET Core ช่วยให้เราสามารถลงทะเบียนบริการแอปพลิเคชันของเรากับคอนเทนเนอร์ IoC ในวิธี ConfigureServices ของคลาส Startup เมธอด ConfigureServices ประกอบด้วยพารามิเตอร์ประเภท IServiceCollection ซึ่งใช้ในการลงทะเบียน applicationservices
ลงทะเบียน ILog ด้วยคอนเทนเนอร์ IoC ในวิธี ConfigureServices() ดังที่แสดงด้านล่าง
public class Startup{ public void ConfigureServices(IServiceCollection services){ services.AddSingleton<ILog, MyConsoleLogger>(); } }
เมธอด Add() ของอินสแตนซ์ IServiceCollection ใช้เพื่อลงทะเบียนบริการกับ IoCcontainer
เราได้ระบุ ILog เป็นประเภทบริการและ MyConsoleLogger เป็นอินสแตนซ์ ซึ่งจะลงทะเบียนบริการ ILog เป็น singletonNow คอนเทนเนอร์ IoC จะสร้างวัตถุซิงเกิลตันของคลาส MyConsoleLogger และฉีดเข้าไปในตัวสร้างของคลาสทุกที่ที่เรารวม ILog เป็นพารามิเตอร์ตัวสร้างหรือเมธอดตลอดทั้งแอปพลิเคชัน .