Jak uzyskać podstawowy adres URL w głównej aplikacji AspNet bez żądania?Jak uzyskać adres URL bazy bez uzyskiwania dostępu do żądania
Wiem z wniosku, że można uzyskać schemat i hosta (np. $"{Request.Scheme}//{Request.Host}"
dałoby coś w rodzaju https://localhost:5000), ale czy można uzyskać tę informację z dowolnego miejsca?
Innymi słowy, jeśli mam klasę usług, która musi tworzyć bezwzględne adresy URL, w jaki sposób mogę uzyskać bieżący adres URL, gdy nie ma dostępnego żądania http?
UPDATE: Być może, że scenariusz nie ma sensu, gdyż gospodarzem URL jest całkowicie zewnętrzny do aplikacji i dlatego ma sens tylko, aby wyodrębnić go z hosta żądanie ..
tylko szybkie zauważyć, że w AspNetCore nie jest usługą, która może być wstrzykiwany w dowolna klasa, aby uzyskać podstawowy adres URL z bieżącego żądania (w przypadku, gdy nie znajdujemy się w kontrolerze mającym bezpośredni dostęp do żądania). Po prostu przez wstrzyknięcie 'IHttpContextAccessor contextAccessor', a następnie utworzenie ' var url = $ "{contextAccessor.HttpContext.Request.Scheme}: // {contextAccessor.HttpContext.Request.Host.ToUriComponent()}"; ' Ale jak na https://github.com/aspnet/Hosting/issues/793 wydaje się, że konieczne będzie jawne zarejestrowanie go w DI: 'services.AddSingleton();' –
iberodev