Čo je KeyedServices?
Dependency injection (DI) je všadeprítomná v ASP.NET Core. Môžete ho použiť na vlastné služby, ale dôležitejšie je, že samotný framework vždy používa DI. Väčšina toho, čo môžete konfigurovať v ASP.NET Core, je nakonfigurovaná cez DI.
Pre kľúčové služby je ďalšia informácia uložená v ServiceDescriptore, čo je ServiceKey používaný na identifikáciu služby. Kľúčom môže byť akýkoľvek objekt, ale zvyčajne reťazec alebo enum (môžu byť konštanty, takže sa dá použiť vo vlastnostiach). Pre služby bez kľúčov registrácia identity; Pre kľúčové služby sa registruje kombinovaná registrácia identity so ServiceType. ServiceTypeServiceKey。
Kľúčová služba označuje mechanizmus, ktorý používa kľúče na registráciu a získavanie služieb závislostnej injekcie (DI). Zaregistrujte službu volaním AddKeyedSingleton (alebo AddKeyedScoped či AddKeyedTransient), ktorá je spojená s kľúčom. Použite vlastnosť [FromKeyedServices] na určenie kľúča na prístup k registrovanej službe.
- AddKeyedScoped
- AddKeyedSingleton
- AddKeyedTransient
Testovanie KeyedServices
Vytvorte nové rozhranie na odosielanie notifikácií, implementujte metódy e-mailu, SMS a správ, registrujte sa cez kľúčovú službu a zavolajte jej špecifickú implementáciu zadaním ID služby, kód je nasledovný:
Vykonajte to ako je uvedené nižšie:
Injektovanie kódu cez konštruktora prebieha nasledovne:
Referencia:
Prihlásenie na hypertextový odkaz je viditeľné.
Prihlásenie na hypertextový odkaz je viditeľné. |