Microsoft.Extensions.Configuration
Microsoft.Extensions.Configuration
一、MemoryConfigurationSource
Dictionary<string, string> source = new Dictionary<string, string> { ["longDatePattern"] = "dddd, MMMM d, yyyy", ["longTimePattern"] = "h:mm:ss tt", ["shortDatePattern"] = "M/d/yyyy", ["shortTimePattern"] = "h:mm tt" }; IConfiguration config = new ConfigurationBuilder() .Add(new MemoryConfigurationSource { InitialData = source }) .Build();
二、JsonConfigurationSource
Configuration = new ConfigurationBuilder() //.SetBasePath(Directory.GetCurrentDirectory()) //AppDomain.CurrentDomain.BaseDirectory是程序集基目录,所以appsettings.json,需要复制一份放在程序集目录下, .SetBasePath(AppDomain.CurrentDomain.BaseDirectory) .Add(new JsonConfigurationSource { Path ="Config\\appsettings.json", ReloadOnChange = true }) //ReloadOnChange = true 当appsettings.json被修改时重新加载 .Add(new JsonConfigurationSource { Path ="Config\\SuperSocket.json", ReloadOnChange = true }) //ReloadOnChange = true 当appsettings.json被修改时重新加载 .Build();
或
var executionFolder = Path.GetDirectoryName(typeof(Program).Assembly.Location); AssemblyLoadContext.Default.Resolving += (AssemblyLoadContext context, AssemblyName assembly) => context.LoadFromAssemblyPath(Path.Combine(executionFolder, $"{assembly.Name}.dll")); var config = new ConfigurationBuilder() .AddJsonFile("Config\\SuperSocket.json") .Build();
三、依赖注入
FormatOptions options2 = new ServiceCollection() .AddOptions() .Configure<FormatOptions>(config.GetSection("Format")) .BuildServiceProvider() .GetService<IOptions<FormatOptions>>() .Value;
标签:
Configuration
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现