NET6 中Programcs文件配置yml 详细一点 记住是Net6中
在 .NET6 中,可以通过在 Program.cs 文件中配置 Yaml 文件来实现配置应用程序的目的。下面是一份详细的示例:
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using YamlDotNet.Serialization;
using YamlDotNet.Serialization.NamingConventions;
namespace MyApp
{
public class Program
{
public static void Main(string[] args)
{
var configuration = new ConfigurationBuilder()
.AddYamlFile("appsettings.yml", optional: false, reloadOnChange: true)
.AddCommandLine(args)
.Build();
var host = Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>()
.UseConfiguration(configuration)
.ConfigureLogging(logging =>
{
logging.ClearProviders();
logging.AddConsole();
});
})
.Build();
host.Run();
}
}
public class AppSettings
{
public string ConnectionString { get; set; }
public int TimeoutSeconds { get; set; }
public bool IsEnabled { get; set; }
}
public static class ConfigurationExtensions
{
public static T GetConfig<T>(this IConfiguration configuration, string key)
{
var value = configuration[key];
var deserializer = new DeserializerBuilder()
.WithNamingConvention(CamelCaseNamingConvention.Instance)
.Build();
return deserializer.Deserialize<T>(value);
}
}
}
在上面的示例中,我们使用了 YamlDotNet 库来解析 Yaml 文件。我们首先定义了一个 AppSettings 类,其中包含了我们所需要的配置项。然后我们通过 ConfigurationExtensions 类来扩展 IConfiguration 接口,使其可以从 Yaml 文件中获取指定的配置项。最后,我们在 Main 方法中使用 ConfigurationBuilder 来读取 Yaml 文件,并将其传递给 WebHostBuilder 来配置应用程序。
appsettings.yml 文件的内容如下:
connectionString: "Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;"
timeoutSeconds: 30
isEnabled: true
在应用程序中,我们可以通过以下代码来读取这些配置项:
var connectionString = configuration.GetConfig<AppSettings>("connectionString");
var timeoutSeconds = configuration.GetConfig<AppSettings>("timeoutSeconds");
var isEnabled = configuration.GetConfig<AppSettings>("isEnabled");
这样,我们就可以在 .NET6 中使用 Yaml 文件来配置应用程序了
原文地址: https://www.cveoy.top/t/topic/cpKZ 著作权归作者所有。请勿转载和采集!