Co je KeyedServices?
Dependency injection (DI) je v ASP.NET Core všudypřítomná. Můžete ho použít pro vlastní služby, ale co je důležitější, samotný framework vždy používá DI. Většina toho, co můžeš v ASP.NET Core nakonfigurovat, je konfigurována přes DI.
U klíčových služeb je další informace uložena v ServiceDescriptoru, což je ServiceKey používaný k identifikaci služby. Klíč může být jakýkoli objekt, ale obvykle řetězec nebo enum (může být konstanta, takže může být použit ve vlastnostech). U služeb bez klíčů registrace identity; Pro klíčové služby je registrována kombinovaná registrace identity se ServiceType. ServiceTypeServiceKey。
Klíčová služba označuje mechanismus, který používá klíče k registraci a načítání služeb závislostní injekce (DI). Zaregistrujte službu voláním AddKeyedSingleton (nebo AddKeyedScoped či AddKeyedTransient), která je spojena s klíčem. Použijte vlastnost [FromKeyedServices] k určení klíče pro přístup k registrované službě.
- AddKeyedScoped
- AddKeyedSingleton
- AddKeyedTransient
Testování KeyedServices
Vytvořte nové rozhraní pro odesílání oznámení, implementujte metody e-mailu, SMS a zpráv, registrujte se přes klíčovou službu a volejte její specifickou implementaci zadáním ID služby, kód je následující:
Proveďte to níže:
Vstřikování kódu přes konstruktor probíhá následovně:
Odkaz:
Přihlášení k hypertextovému odkazu je viditelné.
Přihlášení k hypertextovému odkazu je viditelné. |