29 lines
794 B
C#
29 lines
794 B
C#
|
|
using Newtonsoft.Json.Linq;
|
||
|
|
using Microsoft.Extensions.Configuration;
|
||
|
|
using Microsoft.Extensions.Primitives;
|
||
|
|
using System.Data;
|
||
|
|
|
||
|
|
namespace Core.Configurations.SmartConfiguration;
|
||
|
|
public class JsonConfiguration : IConfiguration
|
||
|
|
{
|
||
|
|
private readonly JObject _data;
|
||
|
|
|
||
|
|
public JsonConfiguration(JObject data)
|
||
|
|
{
|
||
|
|
_data = data;
|
||
|
|
}
|
||
|
|
|
||
|
|
public string this[string key]
|
||
|
|
{
|
||
|
|
get => _data.SelectToken(key.Replace(":", "."))?.ToString();
|
||
|
|
set => throw new NotImplementedException();
|
||
|
|
}
|
||
|
|
|
||
|
|
public IConfigurationSection GetSection(string key) =>
|
||
|
|
new JsonConfigurationSection(_data, key);
|
||
|
|
|
||
|
|
public IEnumerable<IConfigurationSection> GetChildren() =>
|
||
|
|
_data.Properties().Select(p => new JsonConfigurationSection(_data, p.Name));
|
||
|
|
|
||
|
|
public IChangeToken GetReloadToken() => throw new NotImplementedException();
|
||
|
|
}
|