新建控制台應用(.Net Core)程式 添加json文件,命名為 appsettings.json ,設置文件屬性 。添加內容如下 nuget添加相關引用 依次添加以下引用 實現思路 在看到《.NET 通用主機》的文章之後,認為可以嘗試藉助GenericHost更優雅的在Console項目中使用a ...
新建控制台應用(.Net Core)程式
添加json文件,命名為appsettings.json,設置文件屬性 如果較新則複製
。添加內容如下
{
"MyWords" : "Hello World!"
}
nuget添加相關引用
依次添加以下引用
Microsoft.Extensions.Configuration
Microsoft.Extensions.Configuration.FileExtensions
Microsoft.Extensions.Configuration.Json
Microsoft.Extensions.Hosting
實現思路
在看到《.NET 通用主機》的文章之後,認為可以嘗試藉助GenericHost更優雅的在Console項目中使用appsetings.json進行項目配置。
Main入口代碼如下:
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地址
參考文章與說明
說明:
- 通用主機Hosting的開源地址:https://github.com/aspnet/Extensions/tree/master/src/Hosting