从作用域服务工厂获取主机名

迭戈·米耶尔洪

我正在创建的服务之一需要当前主机名作为参数(不同的请求使用不同的主机名,这会影响我的服务使用的外部资源):

public class Foo
{
    public Foo(string host) {...}
}

我将其注册为范围:

public void ConfigureServices(IServiceCollection services)
{
    services.AddScoped(s => new Foo(/* get host name for the current request */));
}

此时获取主机名的最干净方法是什么?


更新:我想出了这个:

private static Foo GetFoo(IServiceProvider services)
{
    var contextAccessor = services.GetRequiredService<IHttpContextAccessor>();
    var host = contextAccessor.HttpContext.Request.Host.Value;
    return new Foo(host);
}

是好的/受支持的解决方案,还是黑客?

马特·德克莱

由于您已经正确地将其定义为作用域,因此可以IHttpContextAccessor直接在Foo的构造函数中使用:

public class Foo
{
    public Foo(IHttpContextAccessor contextAccessor) 
    {
        var host = contextAccessor.HttpContext.Request.Host.Value;
        // remainder of constructor logic here
    }
}

一些类似很多地方在GitHub的仓库; 它看起来像是遵循的完美模式。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从有作用域的服务工厂获取主机名

来自分类Dev

从域REGEX javascript获取主机名

来自分类Dev

如何从DHCP服务器获取主机名

来自分类Dev

如何从DHCP服务器获取主机名

来自分类Dev

获取DHCP主机名

来自分类Dev

从 IP 获取主机名

来自分类Dev

从主机名中提取子域

来自分类Dev

Javascript获取文件主机的主机名

来自分类Dev

Nginx服务器配置:主机名不在子域上解析

来自分类Dev

Kubernetes-解析服务的主机名

来自分类Dev

主机名:未知的名称或服务

来自分类Dev

无法解析 SOAP 服务的主机名

来自分类Dev

获取工作空间的主机名

来自分类Dev

转到:套接字库获取主机名

来自分类Dev

如何使用Qt获取主机名?

来自分类Dev

从请求中获取主机名

来自分类Dev

如何从IP(Linux)获取主机名?

来自分类Dev

从给定的URL获取主机名

来自分类Dev

如何通过Sanic获取主机名?

来自分类Dev

在bash中获取“漂亮的”主机名

来自分类Dev

如何从Android设备获取主机名

来自分类Dev

主机的主机名

来自分类Dev

主机的主机名

来自分类Dev

流星:如何获取主机名,服务器端

来自分类Dev

Java-从客户端获取服务器的主机名和/或IP地址

来自分类Dev

如何通过网络管理器从DHCP服务器获取主机名?

来自分类Dev

使用IP地址获取远程服务器的主机名的命令

来自分类Dev

使用IP地址获取远程服务器的主机名的命令

来自分类Dev

Java服务器-是否可以获取客户端用于连接的主机名?