.Net Core 實踐 - 如何在控制檯應用(.Net Core)使用appsettings.json配置

新建控制檯應用(.Net Core)程序

添加json文件,命名爲appsettings.json,設置文件屬性 若是較新則複製。添加內容以下git

{
  "MyWords" : "Hello World!"   
}

nuget添加相關引用

依次添加如下引用github

Microsoft.Extensions.Configuration
Microsoft.Extensions.Configuration.FileExtensions
Microsoft.Extensions.Configuration.Json
Microsoft.Extensions.Hosting

實現思路

在看到《.NET 通用主機》的文章以後,認爲能夠嘗試藉助GenericHost更優雅的在Console項目中使用appsetings.json進行項目配置。
Main入口代碼以下:json

using System;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;

namespace ConsoleApp1
{
    class Program
    {
        private static IConfiguration _appConfiguration;
        static void Main(string[] args)
        {
            var hostBuilder = new HostBuilder().ConfigureAppConfiguration((hostContext, configApp) =>
            {
                var hostingEnvironment = hostContext.HostingEnvironment;
                _appConfiguration = AppConfigurations.Get(hostingEnvironment.ContentRootPath, hostingEnvironment.EnvironmentName);
            }).ConfigureServices((hostContext, services) =>
            {
                //注入IConfiguration到DI容器
                services.AddSingleton(_appConfiguration);

                //注入MyService到DI容器
                services.AddSingleton<IMyService, MyService>();
            });

            //初始化通用主機
            var host = hostBuilder.Build();

            //獲取MyService
            var myService = host.Services.GetService<IMyService>();

            //調用SayMyWords方法
            myService.SayMyWords();

            Console.ReadKey();
        }
    }
}

demo地址

https://github.com/PuzzledAlien/DotNetCore_Practice/tree/master/%E5%A6%82%E4%BD%95%E5%9C%A8%E6%8E%A7%E5%88%B6%E5%8F%B0%E5%BA%94%E7%94%A8(.Net%20Core)%E4%BD%BF%E7%94%A8appsetting.json%E9%85%8D%E7%BD%AEapp

參考文章與說明

說明:ui

相關文章
相關標籤/搜索