在.NET Core控制台应用程序中使用强类型配置
想象一下,你写一个控制台应用程序,你想要从配置文件中以强类型方式读取配置。
.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应用程序中使用强类型配置类非常容易!希望本文对你有所帮助~。
作者:smallprogram
感谢您的阅读。喜欢的、有用的就请大哥大嫂们高抬贵手"推荐一下"吧!你的精神支持是博主强大的写作动力。欢迎转载!另外,文章在表述和代码方面如有不妥之处,欢迎批评指正。留下你的脚印,欢迎评论!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?