Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP.NET 5-访问启动中的依赖项容器。配置_C#_Asp.net Core - Fatal编程技术网

C# ASP.NET 5-访问启动中的依赖项容器。配置

C# ASP.NET 5-访问启动中的依赖项容器。配置,c#,asp.net-core,C#,Asp.net Core,我想访问我的选项实例,该实例在配置服务中作为单例添加。这是我的密码: public class Startup { private IConfiguration Configuration { get; set; } public Startup(IHostingEnvironment env, IApplicationEnvironment appEnv) { var builder = new ConfigurationBuilder(appEnv.

我想访问我的
选项
实例,该实例在
配置服务
中作为单例添加。这是我的密码:

public class Startup
{
    private IConfiguration Configuration { get; set; }

    public Startup(IHostingEnvironment env, IApplicationEnvironment appEnv)
    {
        var builder = new ConfigurationBuilder(appEnv.ApplicationBasePath)
            .AddJsonFile("config.json")
            .AddEnvironmentVariables();

        Configuration = builder.Build();
    }
    public void ConfigureServices(IServiceCollection services)
    {
        services.AddSingleton((serviceProvider) => ConfigurationBinder.Bind<Options>(Configuration));
    }

    public void Configure(IApplicationBuilder app)
    {
        var root = ""; // I want to access my Options instance to get root from it
        var fileServerOptions = new FileServerOptions()
        {
            FileProvider = new PhysicalFileProvider(root)
        };
        app.UseFileServer(fileServerOptions);
    }
}
公共类启动
{
专用IConfiguration配置{get;set;}
公开启动(IHostingEnvironment env、IApplicationEnvironment appEnv)
{
var builder=新配置生成器(appEnv.ApplicationBasePath)
.AddJsonFile(“config.json”)
.AddenEnvironmentVariables();
Configuration=builder.Build();
}
public void配置服务(IServiceCollection服务)
{
services.AddSingleton((serviceProvider)=>ConfigurationBinder.Bind(Configuration));
}
公共void配置(IApplicationBuilder应用程序)
{
var root=”“;//我想访问我的选项实例以从中获取根
var fileServerOptions=newfileserveroptions()
{
FileProvider=新的物理FileProvider(根)
};
使用文件服务器(文件服务器选项);
}
}

我的问题是如何在
配置
方法中访问
选项的实例以设置根变量。

根据Joe Audette的评论,这是解决方案:

var options = app.ApplicationServices.GetService<Options>();
var options=app.ApplicationServices.GetService();
如中所建议,运行时可以将选项直接注入
配置方法:

public void Configure(IApplicationBuilder app, Options options)
{
    // do something with options
}

我在这里回答了一个类似的问题,谢谢。这就是我的答案。谢谢,这是一个很好的解决方案。