Какво е KeyedServices?
Инжекцията на зависимости (DI) е повсеместна в ASP.NET Core. Можеш да го използваш за персонализирани услуги, но по-важното е, че самата рамка винаги използва и DI. Повечето от това, което можеш да конфигурираш в ASP.NET Core, се конфигурира чрез DI.
За ключови услуги друга информация се съхранява в ServiceDescriptor, който е ServiceKey, използван за идентифициране на услугата. Ключът може да бъде всеки обект, но обикновено string или enum (могат да са константи, така че може да се използва в свойства). За неключови услуги, регистрация на самоличност; За ключови услуги се регистрира комбинираната регистрация на идентичността с ServiceType. ServiceTypeServiceKey。
Услугата за ключове се отнася до механизъм, който използва ключове за регистрация и извличане на услуги за инжектиране на зависимости (DI). Регистрирайте услуга, като се обадите на AddKeyedSingleton (или AddKeyedScoped или AddKeyedTransient), свързана с даден ключ. Използвайте свойството [FromKeyedServices], за да посочите ключа за достъп до регистрираната услуга.
- AddKeyedScoped
- AddKeyedSingleton
- AddKeyedTransient
Тестване на KeyedServices
Създайте нов интерфейс за изпращане на известия, имплементиране на имейл, SMS и методи за изпращане на съобщения, регистрация през ключовата услуга и извикване на специфичната ѝ реализация чрез задаване на ID на услугата, кодът е следният:
Изпълнявайте както е показано по-долу:
Инжектирането на код чрез конструктор е следното:
Препратка:
Входът към хиперлинк е видим.
Входът към хиперлинк е видим. |