Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/329.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# Can';t获得依赖注入';s配置<&燃气轮机;在.net核心控制台应用程序中工作_C#_Dependency Injection_.net Core_Console Application - Fatal编程技术网

C# Can';t获得依赖注入';s配置<&燃气轮机;在.net核心控制台应用程序中工作

C# Can';t获得依赖注入';s配置<&燃气轮机;在.net核心控制台应用程序中工作,c#,dependency-injection,.net-core,console-application,C#,Dependency Injection,.net Core,Console Application,我试图在.net核心控制台应用程序中实现依赖项注入,但我无法配置MySettings public static class Program { public static IConfigurationRoot Configuration { get; private set; } public static void Main(string[] args) { var builder = new ConfigurationBuilder()

我试图在.net核心控制台应用程序中实现依赖项注入,但我无法配置MySettings

public static class Program
{
    public static IConfigurationRoot Configuration { get; private set; }

    public static void Main(string[] args)
    {
        var builder = new ConfigurationBuilder()
           .AddJsonFile("appsettings.json", true, true)               
        Configuration = builder.Build();

        var serviceProvider = BuildDi(Configuration);

        serviceProvider.GetRequiredService<Bootstrapper>().DoThings();
    }

    private static IServiceProvider BuildDi(IConfigurationRoot configuration)
    {
        var services = new ServiceCollection();
        services.Configure<MySettings>(configuration.GetSection("MySettings"));
        services.AddSingleton<Bootstrapper>();

        return services.BuildServiceProvider();            
    }
}
而appsettings.json是

{
  "MySettings": {
    "MyVariable": "test"
  }
}
而引导者是

public class Bootstrapper
{
    private readonly MySettings _settings;

    public Bootstrapper(IOptions<MySettings> settings)
    {
        _settings = settings.Value;
    }

    public void DoThings()
    {
        Console.WriteLine(_settings.MyVariable);
    }
}
公共类引导程序
{
私人只读MySettings\u设置;
公共引导程序(IOptions设置)
{
_设置=设置.值;
}
公共无效DoThings()
{
Console.WriteLine(_settings.MyVariable);
}
}
但是,当我试图访问Mysettings.MyVariable时,我得到null

我不明白我遗漏了什么,因为我在asp.net核心类型项目中做同样的事情没有问题


(是的,有点像,但还有一些步骤)

控制台应用程序在运行时是否可以访问您的“appsettings.json”,请检查它是否复制到/bin文件夹中?:v我只需将appsettings.json设置为“始终复制”。。。谢谢@DarjanBogdan
public class Bootstrapper
{
    private readonly MySettings _settings;

    public Bootstrapper(IOptions<MySettings> settings)
    {
        _settings = settings.Value;
    }

    public void DoThings()
    {
        Console.WriteLine(_settings.MyVariable);
    }
}