面试题答案
一键面试实现步骤
- 创建一个静态类,用于存放扩展方法。
- 扩展方法的第一个参数使用
this IConfiguration
,表示对IConfiguration
进行扩展。 - 在方法内部通过
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);