Czym jest KeyedServices?
Wstrzykiwanie zależności (DI) jest powszechne w ASP.NET Core. Możesz go używać do niestandardowych usług, ale co ważniejsze, sam framework zawsze korzysta z DI. Większość tego, co możesz skonfigurować w ASP.NET Core, jest konfigurowana przez DI.
Dla usług z kluczami inna informacja jest przechowywana w ServiceDescriptorze, czyli ServiceKey używanym do identyfikacji usługi. Kluczem może być dowolny obiekt, ale zazwyczaj jest to string lub enum (może być stałe, więc można go używać w właściwościach). Dla usług niekluczy, rejestracja tożsamości; Dla usług kluczyków zarejestrowana jest łączna rejestracja tożsamości z Typem Usługi. ServiceTypeServiceKey。
Usługa kluczowania odnosi się do mechanizmu, który wykorzystuje klucze do rejestrowania i pobierania usług zastrzykowania zależności (DI). Zarejestruj usługę, wywołując AddKeyedSingleton (lub AddKeyedScoped lub AddKeyedTransient), powiązaną z kluczem. Użyj właściwości [FromKeyedServices], aby określić klucz do dostępu do zarejestrowanej usługi.
- AddKeyedScoped
- AddKeyedSingleton
- AddKeyedTransient
Testowanie KeyedServices
Stwórz nowy interfejs do wysyłania powiadomień, implementuj metody e-mail, SMS i wiadomości push, rejestruj się przez usługę klucza i wywołuj jej konkretną implementację, podając identyfikator usługi, a kod wygląda następująco:
Wykonaj tak, jak pokazano poniżej:
Wstrzykiwanie kodu przez konstruktor wygląda następująco:
Odniesienie:
Logowanie do linku jest widoczne.
Logowanie do linku jest widoczne. |