ok
8f50e6565f4db49d08f65e193d2e92f057b2c74a
4 files changed
RedisGui/App.configRedisGui/FormMain.csRedisGui/RedisGui.csprojRedisGui/appsettings.json
diff --git a/RedisGui/App.config b/RedisGui/App.config
deleted file mode 100644
index 49cc43e..0000000
--- a/RedisGui/App.config
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8" ?>
-<configuration>
-</configuration>
\ No newline at end of file
diff --git a/RedisGui/FormMain.cs b/RedisGui/FormMain.cs
index 26db1b3..8e2eb44 100644
--- a/RedisGui/FormMain.cs
+++ b/RedisGui/FormMain.cs
@@ -1,14 +1,18 @@
+using Microsoft.Extensions.Configuration;
+
using RedisGui.Properties;
using StackExchange.Redis;
using System.Diagnostics;
using System.Net;
+using System.Collections.Generic;
namespace RedisGui;
public partial class FormMain : Form
{
- private const string CONNECTION = "127.0.0.1:6379";
+ private readonly IConfiguration configuration;
+
private ConnectionMultiplexer? connection;
private IServer? server;
private IDatabase? db;
@@ -17,6 +21,10 @@ public partial class FormMain : Form
{
InitializeComponent();
+ var builder = new ConfigurationBuilder()
+ .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true);
+ configuration = builder.Build();
+
imageList1.Images.Add(SystemIcons.GetStockIcon(StockIconId.World, 24));
imageList1.Images.Add(SystemIcons.GetStockIcon(StockIconId.NetworkConnect, 24));
imageList1.Images.Add(SystemIcons.GetStockIcon(StockIconId.Key, 24));
@@ -24,16 +32,23 @@ public partial class FormMain : Form
private async void Form_Load(object sender, EventArgs e)
{
- await MakeConnectionAsync(CONNECTION);
+ await MakeConnectionAsync();
}
private async void AddConnectionToolStripMenuItem_Click(object sender, EventArgs e)
{
- await MakeConnectionAsync(CONNECTION);
+ await MakeConnectionAsync();
}
- private async Task MakeConnectionAsync(string ConnectionString)
+ private async Task MakeConnectionAsync()
{
+
+ List<string> connectionStrings = configuration
+ .GetSection("AppSettings:ConnectionStrings")
+ .Get<List<string>>() ?? [];
+
+ var ConnectionString = connectionStrings[0];
+
this.connection = ConnectionMultiplexer.Connect(ConnectionString, x => x.AllowAdmin = true);
EndPoint endPoint = connection.GetEndPoints().First();
diff --git a/RedisGui/RedisGui.csproj b/RedisGui/RedisGui.csproj
index e57bd68..0bc011d 100644
--- a/RedisGui/RedisGui.csproj
+++ b/RedisGui/RedisGui.csproj
@@ -9,6 +9,8 @@
</PropertyGroup>
<ItemGroup>
+ <PackageReference Include="Microsoft.Extensions.Configuration.Binder" Version="8.0.2" />
+ <PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="8.0.1" />
<PackageReference Include="StackExchange.Redis" Version="2.8.24" />
</ItemGroup>
diff --git a/RedisGui/appsettings.json b/RedisGui/appsettings.json
new file mode 100644
index 0000000..e10879b
--- /dev/null
+++ b/RedisGui/appsettings.json
@@ -0,0 +1,8 @@
+{
+ "AppSettings": {
+ "ConnectionStrings": [
+ "127.0.0.1:6379"
+ ]
+
+ }
+}
\ No newline at end of file