- مبحثی که در اینجا مطرح شده، مرتبط با حالتهای عدم استفادهی از سیستم تزریق وابستگیها است. البته میتوان این نوع Containerها را در حالت «service locator»، در همهجا استفاده کرد و محدودیتی هم ندارند.
- اگر از یک سیستم تزریق وابستگیها استفاده میکنید، مطلب جاری را فراموش کنید. یک کلاس معمولی را ایجاد کرده و یک اینترفیس را از آن استخراج کنید (مانند همیشه و بسیار عادی). سپس این اینترفیس و کلاس پیاده سازی کنندهی آنرا با «طول عمر» singleton به این IoC Container معرفی کنید (مهم نیست نام آن IoC Container چیست. این روش همه جا کار میکند). اکنون چون مدیریت طول عمر این سرویس توسط IoC container مورد استفاده کنترل میشود، میتوانید در سازندهی آن تمام سرویسهای دیگر را هم تزریق کرده (مانند تمام سرویسهای دیگر تعریف شده) و استفاده کنید؛ چون وهله سازی و مدیریت طول عمر آن توسط خود Container مدیریت میشود.
- اگر از یک سیستم تزریق وابستگیها استفاده میکنید، مطلب جاری را فراموش کنید. یک کلاس معمولی را ایجاد کرده و یک اینترفیس را از آن استخراج کنید (مانند همیشه و بسیار عادی). سپس این اینترفیس و کلاس پیاده سازی کنندهی آنرا با «طول عمر» singleton به این IoC Container معرفی کنید (مهم نیست نام آن IoC Container چیست. این روش همه جا کار میکند). اکنون چون مدیریت طول عمر این سرویس توسط IoC container مورد استفاده کنترل میشود، میتوانید در سازندهی آن تمام سرویسهای دیگر را هم تزریق کرده (مانند تمام سرویسهای دیگر تعریف شده) و استفاده کنید؛ چون وهله سازی و مدیریت طول عمر آن توسط خود Container مدیریت میشود.
- استفاده و یا تعریف متدهای Async در اینجا هیچ تفاوتی با قبل ندارد. همان امضای متدهای Task دار و در صورت نیاز async دار را ارائه دهید.
یک نکته: تزریق وابستگیها در سازندهی کلاسهایی با طول عمر singleton یکسری نکات خاص خودشان را دارند.