.NET 2.0控制台应用 - 阅读应用设置

时间:2017-09-01 18:39:26

标签: .net-core .net-core-2.0

我正在尝试从appsetting.json文件中读取.NET控制台应用程序(Core 2.0)。我有一个webapi项目可以正常使用以下内容:

services.Configure<WebAppSettings>(Configuration.GetSection("WebAppSettings"));

但是在控制台应用程序中它说:

'ServiceCollection' does not contain a definition for 'Configure' and no extension method 'Configure' accepting a first argument of type 'ServiceCollection' could be found (are you missing a using directive or an assembly reference?)

我在控制台应用程序项目中安装了以下软件包:

<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();

        }

}
}

谢谢!

1 个答案:

答案 0 :(得分:2)

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