在 .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 文件来配置应用程序了

NET6 中Programcs文件配置yml 详细一点 记住是Net6中

原文地址: https://www.cveoy.top/t/topic/cpKZ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录