using System.IO; using System.Net; using System.Text; using System.Threading; using System.Threading.Tasks; using Tommy; namespace FastGithub.DomainResolve { /// /// doml配置工具 /// static class TomlUtil { /// /// 设置监听地址 /// /// /// /// public static Task SetListensAsync(string tomlPath, IPEndPoint endpoint, CancellationToken cancellationToken = default) { var value = new TomlArray { endpoint.ToString() }; return SetAsync(tomlPath, "listen_addresses", value, cancellationToken); } /// /// 设置指定键的值 /// /// /// /// public static async Task SetAsync(string tomlPath, string key, TomlNode value, CancellationToken cancellationToken = default) { var toml = await File.ReadAllTextAsync(tomlPath, cancellationToken); var reader = new StringReader(toml); var tomlTable = TOML.Parse(reader); tomlTable[key] = value; var builder = new StringBuilder(); var writer = new StringWriter(builder); tomlTable.WriteTo(writer); toml = builder.ToString(); await File.WriteAllTextAsync(tomlPath, toml, cancellationToken); } } }