Gyakorlat – Szolgáltatások regisztrálása és felhasználása

Befejeződött

ASP.NET Core-alkalmazásoknak gyakran több összetevőn keresztül is el kell érniük ugyanazokat a szolgáltatásokat. ASP.NET Core egy beépített függőséginjektálási tárolót használ az alkalmazás által használt szolgáltatások kezeléséhez.

Csapatának feladata, hogy létrehozhasson egy csupasz webhelyet a vállalat számára. A webhelynek üdvözlő üzenetet kell megjelenítenie a főoldalon. Úgy dönt, hogy létrehoz egy szolgáltatást az üdvözlő üzenet létrehozásához. Ezután regisztrálja a szolgáltatást a szolgáltatástárolóban, hogy az injektálható legyen a szükséges összetevőkbe.

ASP.NET Core-alkalmazás létrehozása

Egy ASP.NET Core-alkalmazásra van szüksége a csapat alkalmazásának szerepéhez. Hozzunk létre egy új ASP.NET Core-alkalmazást a Visual Studio Code C# Dev Kit bővítményével.

  1. Indítsa el a Visual Studio Code-ot.

  2. A parancskatalógus megnyitásához nyomja le a Ctrl+Shift+P billentyűkombinációt.

  3. Keresse meg és válassza a .NET: Új projekt... lehetőséget.

  4. Keressen rá és válassza ki a ASP.NET Core Empty-t.

    Képernyőkép a parancskatalógusról, amelyen ASP.NET Core Empty van kiválasztva.

  5. Jelöljön ki vagy hozzon létre egy mappát az új projekthez.

  6. Nevezze el az új alkalmazást a MyWebAppnak.

  7. Válassza a Projekt létrehozása lehetőséget a projekt létrehozásához.

  8. Amikor megnyílik az új projekt, bontsa ki a Solution Explorer panelt a projektfájlok megtekintéséhez.

    Képernyőkép a Visual Studio Code Megoldáskezelő paneljéről.

Az alkalmazás futtatása

Tesztelje az alkalmazást annak ellenőrzéséhez, hogy fut-e.

  1. A Visual Studio Code-ban nyomja le az F5 billentyűt az alkalmazás létrehozásához és futtatásához.

    1. Amikor a rendszer kéri, válassza a C# lehetőséget hibakeresőként.
    2. Amikor a rendszer kéri, válassza a C#: MyWebApp [Alapértelmezett konfiguráció] lehetőséget a használni kívánt indítási konfigurációként.

    Ez a parancs elindítja az alkalmazást, és egy helyi webkiszolgálón üzemelteti. Megnyílik egy böngészőablak, és megjelenik a "Hello, World!"

  2. Zárja be a böngészőablakot, és állítsa le az alkalmazást a Shift+F5 billentyűkombináció lenyomásával a Visual Studio Code-ban.

Szolgáltatás létrehozása

Most, hogy már rendelkezik egy működő alkalmazással, hozzunk létre egy szolgáltatást, amely üdvözlő üzenetet hoz létre a főoldalhoz.

  1. Kattintson a jobb gombbal a MyWebApp projektre az Explorer panelen. Válassza az Új mappa lehetőséget. Nevezze el a services mappát.

  2. Kattintson a jobb gombbal a Szolgáltatások mappára. Válassza az Új fájl lehetőséget. Nevezze el a fájlt WelcomeService.cs.

  3. Cserélje le a WelcomeService.cs tartalmát a következő kódra:

    namespace MyWebApp.Services;
    
    public class WelcomeService : IWelcomeService
    {
    
        DateTime _serviceCreated;
        Guid _serviceId;
    
        public WelcomeService()
        {
            _serviceCreated = DateTime.Now;
            _serviceId = Guid.NewGuid();                
        }
    
        public string GetWelcomeMessage()
        {
            return $"Welcome to Contoso! The current time is {_serviceCreated}. This service instance has an ID of {_serviceId}";
        }
    }
    

    Ez a kód egy WelcomeService üdvözlő üzenetet generáló metódussal rendelkező GetWelcomeMessage osztályt határoz meg. Az üzenet tartalmazza a szolgáltatás létrehozásának aktuális időpontját, valamint a szolgáltatás minden példányának egyedi azonosítóját.

    Vegye figyelembe, hogy az és _serviceCreated a _serviceId mezők a konstruktorban vannak beállítva, és soha nem változnak a szolgáltatáspéldány élettartama alatt.

A szolgáltatás regisztrálása

Most, hogy rendelkezik egy szolgáltatással, regisztrálnia kell azt a szolgáltatástárolóban.

  1. Nyissa meg a Program.cs fájlt.

  2. Adja hozzá a következő irányelvet a fájl elejéhez:

    using MyWebApp.Services;
    

    Ez az irányelv feloldja az osztályra WelcomeService való hivatkozást.

  3. Közvetlenül a var builder = WebApplication.CreateBuilder(args); sor után adja hozzá a következő kódot:

    builder.Services.AddSingleton<WelcomeService>();
    

    WebApplication.CreateBuilder létrehoz egy új példányt a WebApplicationBuilderbuilder. Az előző kód egyetlentonos élettartammal regisztrálja az WelcomeService osztályt a szolgáltatástárolóban.

  4. Módosítsa a app.MapGet("/", () => "Hello World!"); sort a következő kódra:

    app.MapGet("/", (WelcomeService welcomeService) => welcomeService.GetWelcomeMessage());
    

    Ez a kód leképez egy HTTP GET kérést a fő URL-címre (/) egy olyan meghatalmazotthoz, aki visszaadja a WelcomeService szolgáltatás által létrehozott üdvözlő üzenetet.

    A Program.cs fájlnak így kell kinéznie:

    using MyWebApp.Services;
    
    var builder = WebApplication.CreateBuilder(args);
    builder.Services.AddSingleton<WelcomeService>();
    
    var app = builder.Build();
    
    app.MapGet("/", (WelcomeService welcomeService) => welcomeService.GetWelcomeMessage());
    
    app.Run();
    

A módosítások tesztelése

  1. Mentse az összes módosítást, és futtassa az alkalmazást a korábbiakhoz hasonlóan.
  2. Amikor megnyílik a böngészőablak, vegye figyelembe, hogy a gyökér URL-cím megjeleníti a WelcomeService szolgáltatás által létrehozott üdvözlő üzenetet.
  3. Zárja be a böngészőablakot, és állítsa le az alkalmazást a Shift+F5 billentyűkombináció lenyomásával a Visual Studio Code-ban.

Felület használata

A csapat áttekinti a kódot, és egy másik fejlesztő azt javasolja, hogy használjon egy felületet a szolgáltatások regisztrálásához, mivel ez a megközelítés rugalmasabbá és könnyebben karbantarthatóvá teszi a kódot.

  1. Kattintson a jobb gombbal a MyWebApp projektre az Explorer panelen. Válassza az Új mappa lehetőséget. Nevezze el a mappát Interfaces.

  2. Kattintson a jobb gombbal az Interfészek mappára. Válassza az Új fájl lehetőséget. Nevezze el a fájlt IWelcomeService.cs.

  3. Cserélje le a IWelcomeService.cs tartalmát a következő kódra:

    namespace MyWebApp.Interfaces
    
    public interface IWelcomeService
    {
        string GetWelcomeMessage();
    }
    

    Ez a kód egy IWelcomeService metódussal rendelkező GetWelcomeMessage felületet határoz meg. Az interfészt megvalósító szolgáltatásoknak implementálást kell biztosítaniuk a GetWelcomeMessage módszerhez.

  4. Nyissa meg a Services/WelcomeService.cs fájlt.

  5. Adja hozzá a következő irányelvet a fájl elejéhez:

    using MyWebApp.Interfaces;
    

    Ez az irányelv feloldja a következő lépésben hozzáadott felületre való hivatkozást IWelcomeService .

  6. Frissítse az WelcomeService osztálydeklarációt az IWelcomeService interfész implementálásához:

    public class WelcomeService : IWelcomeService
    

    Ez az egyetlen módosítás, amelyet az osztályon kell elvégeznie a WelcomeServiceIWelcomeService felület implementálásához. Az WelcomeService osztály már rendelkezik egy GetWelcomeMessage olyan metódussal, amely megfelel a felületen található metódus-aláírásnak IWelcomeService .

  7. Nyissa meg a Program.cs fájlt.

  8. Frissítse a builder.Services.AddSingleton<WelcomeService>(); sort a következő kódra:

    builder.Services.AddSingleton<IWelcomeService, WelcomeService>();
    

    Ez a kód regisztrálja az osztályt WelcomeService a szolgáltatástárolóban az IWelcomeService interfész használatával.

    Tipp.

    Gondoljon erre úgy, mint a következőre: "Amikor egy összetevő kér egy példányt IWelcomeService, adjon meg egy példányt WelcomeService."

  9. Frissítse a app.MapGet("/", (WelcomeService welcomeService) => welcomeService.GetWelcomeMessage()); sort a következő kódra:

    app.MapGet("/", (IWelcomeService welcomeService) => welcomeService.GetWelcomeMessage());
    

    A névtelen függvény mostantól egy helyett egy IWelcomeServiceWelcomeService.

    A Program.cs fájlnak így kell kinéznie:

    using MyWebApp.Interfaces;
    using MyWebApp.Services;
    
    var builder = WebApplication.CreateBuilder(args);
    builder.Services.AddSingleton<IWelcomeService, WelcomeService>();
    
    var app = builder.Build();
    
    app.MapGet("/", (IWelcomeService welcomeService) => welcomeService.GetWelcomeMessage());
    
    app.Run();
    

A módosítások tesztelése

Teszteljük az alkalmazást, hogy továbbra is a várt módon működjön.

  1. Mentse az összes módosítást, és futtassa az alkalmazást a korábbiakhoz hasonlóan.
  2. Amikor megnyílik a böngészőablak, vegye figyelembe, hogy a gyökér URL-cím megjeleníti a WelcomeService szolgáltatás által létrehozott üdvözlő üzenetet.
  3. Hagyja futni az alkalmazást a következő gyakorlatban.