MST

星途 面试题库

面试题:C#中IConfiguration如何实现简单的自定义配置扩展

在C#项目中,已知使用IConfiguration来管理配置,要求你实现一个简单的自定义配置扩展,比如增加一个获取特定格式日期配置的方法,简述实现步骤并给出关键代码示例。
26.3万 热度难度
编程语言C#

知识考点

AI 面试

面试题答案

一键面试

实现步骤

  1. 创建一个静态类,用于存放扩展方法。
  2. 扩展方法的第一个参数使用 this IConfiguration,表示对 IConfiguration 进行扩展。
  3. 在方法内部通过 IConfiguration 的相关方法获取配置值,并进行日期格式的解析处理。

关键代码示例

using Microsoft.Extensions.Configuration;
using System;

public static class ConfigurationExtensions
{
    public static DateTime GetSpecificDateFormat(this IConfiguration configuration, string key)
    {
        var dateString = configuration[key];
        if (DateTime.TryParseExact(dateString, "yyyy-MM-dd", null, System.Globalization.DateTimeStyles.None, out var result))
        {
            return result;
        }
        throw new FormatException($"The configuration value for key '{key}' is not in the expected 'yyyy-MM-dd' format.");
    }
}

在使用时,假设在 appsettings.json 中有如下配置:

{
    "MyDate": "2023-10-01"
}

在代码中可以这样调用:

using Microsoft.Extensions.Configuration;
using System;

var builder = new ConfigurationBuilder()
    .SetBasePath(Directory.GetCurrentDirectory())
    .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true);
var configuration = builder.Build();

var date = configuration.GetSpecificDateFormat("MyDate");
Console.WriteLine(date);