جلسه دوم

این جا میخوایم با استفاده از اینترفیس ilogger بیایم و کلاس logger رو وارد کلاس someClass کنیم

خوب پارامتر اولی رو read only کردیم نکته ای که هست اینه که میتونیم توی constructor بهش مقدار اولیه بدیم

توی اینترفیس اومدیم و اسم تابع و نوع ورودیش رو تعیین کردیم و بعد در کلاس logger اومدیم و نوع پیاده سازیش رو نوشتیم و بعد ازش در someClass ازش استفاده کردیم

خوب توی این حالت اومدیم از protect استفاده کردیم و با فقط نوشتن get اومدیم اون فیلد رو read only کردیم

خوب حالا عکس پایین: اینجا اول اومدیم logger رو از جنس اینترفیس پدرش تعریف کنیم بعد اومدیم new کردیم و logger رو به تزریق کردیم خوب در mvc core میخوایم وقتی که به طور مثال یه کلاس رو new کنیم که یه اینترفیسی در ورودیش داره ، بهشون میفهمونیم که در این مورد بیاد و یه کلاس رو بسازه

خوب حالا چطوری این کار رو انجام بدیم؟ اینطوری اول میایم و service رو با استفاده از service collection درست میکنیم و بعد با استفاده از services میایم و build service provider رو درست میکنیم

مورد بعدی اینه که اگر ورودی کلاسی ، کلاس some class بود خودش بیاد و از some class یه کلاس بسازه و inject کنه

اینجا اومدیم گفتیم که هر جایی که ورودیش ilogger بود بیا و از کلاس logger یکی بساز و بهش تزریق کن

خوب بعدش provider خودمون رو درست کردیم

خوب حالا اینجا اتفاقی که افتاده اینه که با استفاده از service provider میایم و create scope میکنیم و میریزیم توی scope

حالا با استفاده از scope میایم و get required service رو استفاده میکنیم

نکته scope رو در mvc core نداریم خوب scope با استفاده از service provider میاد کمک میکنه در تولید کردن کلاس ها و inject کردنشون

با استفاده از get required service یه شی برامون بسازه که اون شی میشه some class خوب نکته ای که اینجا هستش اینه که باید ببینیم که اون کلاس توی service ها تعیین شده یا نه که توسط Services add transient
انجام شده است

خوب حالا داستانش اینه که خوده کلاس some class هم توی ورودیش از ilogger استفاده شده است که اون هم باید توی service ها ثبت شده

خوب اون قسمت کامنت شده روش قدیمی هستش حالا با استفاده از شی ساخته شده میایم از تابع do something استفاده میکنیم

در دات نت به ازای هر نفری که وارد سایت میشه یه thread ساخته و اختصاص داده میشه

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

دقیقه ۲۰

خوب scope به این شکل هستش برای هر یوزر که یک thread اختصاص داده میشه و به ازای هر یوزر یک شی درست میشه

خوب transient به ازای هر درخواست اون شی رو میسازه

خوب توی قسمت های بالا برای console app اومدیم dependency injection رو توضیح دادن

از این جا میرسیم به وب

خوب توی پروژه های mvc core به صورت پیش فرض nuget dependency injection نصب هستش

خوب توی عکس بالا اومدیم و ilogger رو inject کردیم و با استفاده از Singleton اومدیم یه بار ساختیمش تا بتونیم ازش استفاده کنیم