Recommended way of getting the current host?

No you would need to pass the Request context. If you’re using .NET Core you can register IHttpContextAccessor and get the current Request with HostContext.GetCurrentRequest(), see: