1 新建1.properties文件
port=3306
host=127.0.0.1
2 新建provider類
using Microsoft.Extensions.Configuration;
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApp1
{
public class PropertiesConfigurationProvider : ConfigurationProvider
{
private string path = "";
public PropertiesConfigurationProvider(string path)
{
this.path = path;
}
/// <summary>
/// 用於解析1.properties
/// </summary>
public override void Load()
{
var lines = System.IO.File.ReadLines(path);
var dict = new Dictionary<string, string>();
foreach (var item in lines)
{
var items = item.Split("=");
dict.Add(items[0], items[1]);
}
Data = dict;
}
}
}
3 新建source類
using Microsoft.Extensions.Configuration;
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApp1
{
public class PropertiesConfigurationSource : IConfigurationSource
{
private string path = "";
public PropertiesConfigurationSource(string path)
{
this.path = path;
}
/// <summary>
/// 生成provider
/// </summary>
/// <param name="builder"></param>
/// <returns></returns>
public IConfigurationProvider Build(IConfigurationBuilder builder)
{
return new PropertiesConfigurationProvider(path);
}
}
}
4 新建擴展類
using Microsoft.Extensions.Configuration;
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApp1
{
public static class PropertiesConfigurationExtensions
{
public static IConfigurationBuilder AddPropertiesFile(this IConfigurationBuilder builder,string path)
{
builder.Add(new PropertiesConfigurationSource(path));
return builder;
}
}
}
5 調用
using Microsoft.Extensions.Configuration;
using System;
using System.Collections.Generic;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
IConfiguration configuration = new ConfigurationBuilder().AddPropertiesFile("1.properties").Build();
var info = configuration["host"];
Console.WriteLine(info);
}
}
}