IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: APS.NET Core MVC vlastní nastavení pro každého clienta

V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Michal Pflegshörl:13.7.2021 10:22

Potřebuji aby každý client (Pc) měl vlastní nastavení webové aplikace běžící na serveru v lokální síti

Zkusil jsem: Při vývoji jsem použil

Startup.cs

public void ConfigureServices(IServiceCollection services)
{
        services.AddSingleton<Inastaveni, nastaveni>();
}

Controller

public class HomeController : Controller
    {
        private readonly Inastaveni NacteneNastaveni;

        public HomeController(Inastaveni Nastaveni)
        {
            this.NacteneNastaveni= Nastaveni;
        }

        public IActionResult Index()
        {
                NacteneNastaveni.Neco = "Něco";

                return View(NacteneNastaveni);
        }
}

Chci docílit: Při vývoji to fungovalo bezvadně. HomeController nastavil hodnoty nastavení, které se poté vstřikovaly do dalších controllerů.
Při testování server-client se ale každému clientovi do controllerů vstřikuje stejné nastavení. Já potřebuji aby se každému clientovi nastavily vlastní hodnoty nastavení a ty se mu poté vstřikovaly do controllerů.

 
Odpovědět
13.7.2021 10:22
Avatar
Patrik Řepa
Člen
Avatar
Patrik Řepa:13.7.2021 21:39

Ahoj, jak už název sám napovídá, AddSingleton udělá to, že zaregistruje jednu jedinou instanci a tuto instanci injectuje všude, kde je vyžadována.

services.AddSingleton<Inastaveni, nastaveni>();

Místo singleton raději použij

services.AddTransient<Inastaveni, nastaveni>();

Ale ani to nevyřeší tvůj problém. Zde ti kolegové správně napovídali využít Session. Každý klient dostane vlastní session a ty poté můžeš získat ze session nastavení klienta.

Tady je jednoduchá ukázka využití, kde si předává objekt mezi actions. Odkaz

Popřípadě si ukládat nastavení klienta do databáze. Záleží kde všude to nastavení využíváš, jestli ho potřebuješ v každém controlleru a action atd atd.

Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
 
Nahoru Odpovědět
13.7.2021 21:39
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 2 zpráv z 2.