想象一下,你写一个控制台应用程序,你想要从配置文件中以强类型方式读取配置。
.NET Core 可以帮助我们解决。 通常我会在ASP.NET Core MVC中演示,但简单起见,只在控制台应用程序中演示。
让我们创建两个配置类,用于保存应用程序和模块名称。
public class MySettings { public string ApplicationName { get; set; } } public class MyModuleSettings { public string ModuleName { get; set; } }
应用程序配置文件如下所示:
{ "ApplicationName": "My sample application", "SectionA": { "ModuleName": "My sample module" } }
最后,让我们在应用程序中使用它。
public class Program { public static void Main(string[] args) { var builder = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true) .AddEnvironmentVariables(); IConfigurationRoot configuration = builder.Build(); var settings = new MySettings(); configuration.Bind(settings); var moduleSettings = new MyModuleSettings(); configuration.GetSection("SectionA").Bind(moduleSettings); Console.WriteLine($"My application name is '{settings.ApplicationName}'"); Console.WriteLine($"My module name is '{moduleSettings.ModuleName}'"); Console.ReadLine(); } }
所有的实现都是通过“Bind”方法。
不要忘记添加所需的依赖关系。 project.json应该包含以下内容:
{ "version": "1.0.0-*", "buildOptions": { "emitEntryPoint": true }, "dependencies": { "Microsoft.Extensions.Configuration": "1.1.0", "Microsoft.Extensions.Configuration.Binder": "1.1.0", "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.1.0", "Microsoft.Extensions.Configuration.FileExtensions": "1.1.0", "Microsoft.Extensions.Configuration.Json": "1.1.0", "Microsoft.NETCore.App": { "type": "platform", "version": "1.0.1" } }, "frameworks": { "netcoreapp1.0": { "imports": "dnxcore50" } } }
运行结果:
在.NET Core应用程序中使用强类型配置类非常容易!希望本文对你有所帮助~。