.net core .NET 2.0控制台应用程序-阅读应用程序设置

.net core .NET 2.0控制台应用程序-阅读应用程序设置,.net-core,.net-core-2.0,.net Core,.net Core 2.0,我正在尝试获取一个.NET控制台应用程序(Core2.0)来读取appsetting.json文件。我有一个webapi项目,可以很好地处理以下内容: services.Configure<WebAppSettings>(Configuration.GetSection("WebAppSettings")); 我在console应用程序项目中安装了以下软件包: <PackageReference Include="Microsoft.Extensions.Configurat

我正在尝试获取一个.NET控制台应用程序(Core2.0)来读取appsetting.json文件。我有一个webapi项目,可以很好地处理以下内容:

services.Configure<WebAppSettings>(Configuration.GetSection("WebAppSettings"));
我在console应用程序项目中安装了以下软件包:

<PackageReference Include="Microsoft.Extensions.Configuration" Version="2.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.FileExtensions" Version="2.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="2.0.0" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="2.0.0" />

以下是完整的Program.cs课程:

using System;
using System.IO;
using Cam.Checker.Services;
using Cam.Common;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;

namespace Cam.Checker
{
    class Program
    {
        public static IConfigurationRoot Configuration { get; set; }
        static void Main(string[] args)
        {
            var builder = new ConfigurationBuilder()
                .SetBasePath(Directory.GetCurrentDirectory())
                .AddJsonFile("appsettings.json");
                //.AddJsonFile($"appsettings.{env.EnvironmentName}.json", true, true);

            Configuration = builder.Build();

            var services = new ServiceCollection();
            services.AddTransient<ICheckerService, CheckerService>();
            // app settings
            services.Configure<WebAppSettings>(Configuration.GetSection("WebAppSettings"));
            var provider = services.BuildServiceProvider();

        }

}
}
使用系统;
使用System.IO;
使用Cam.Checker.Services;
使用Cam.Common;
使用Microsoft.Extensions.Configuration;
使用Microsoft.Extensions.DependencyInjection;
名称空间Cam.Checker
{
班级计划
{
公共静态IConfigurationRoot配置{get;set;}
静态void Main(字符串[]参数)
{
var builder=new ConfigurationBuilder()
.SetBasePath(目录.GetCurrentDirectory())
.AddJsonFile(“appsettings.json”);
//.AddJsonFile($“appsettings.{env.EnvironmentName}.json”,true,true);
Configuration=builder.Build();
var services=newservicecolection();
services.AddTransient();
//应用程序设置
services.Configure(Configuration.GetSection(“WebAppSettings”);
var provider=services.BuildServiceProvider();
}
}
}

谢谢大家!

您需要添加NuGet软件包Microsoft.Extensions.Options.ConfigurationExtensions以获得配置扩展方法。

谢谢!这就是问题所在。
using System;
using System.IO;
using Cam.Checker.Services;
using Cam.Common;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;

namespace Cam.Checker
{
    class Program
    {
        public static IConfigurationRoot Configuration { get; set; }
        static void Main(string[] args)
        {
            var builder = new ConfigurationBuilder()
                .SetBasePath(Directory.GetCurrentDirectory())
                .AddJsonFile("appsettings.json");
                //.AddJsonFile($"appsettings.{env.EnvironmentName}.json", true, true);

            Configuration = builder.Build();

            var services = new ServiceCollection();
            services.AddTransient<ICheckerService, CheckerService>();
            // app settings
            services.Configure<WebAppSettings>(Configuration.GetSection("WebAppSettings"));
            var provider = services.BuildServiceProvider();

        }

}
}