我正在处理一个 C# 项目,我想将管理员的设置存储在设置文件(不是 app.config)中,我想知道这个设置文件是否可以存储在远程位置,如服务器数据库或另一台计算机同一个局域网,这实际上是最好的事情,因为我想将管理员的设置推送到所有计算机,所以一个文件是必不可少的。这甚至可能吗?如果是,请有人指出我正确的方向(教程、链接、文档等)如何创建设置文件以及如何建立与它的远程连接。
我考虑过使用数据库,但我没有看到使用它来存储设置的便利。你们怎么看/建议?
我正在处理一个 C# 项目,我想将管理员的设置存储在设置文件(不是 app.config)中,我想知道这个设置文件是否可以存储在远程位置,如服务器数据库或另一台计算机同一个局域网,这实际上是最好的事情,因为我想将管理员的设置推送到所有计算机,所以一个文件是必不可少的。这甚至可能吗?如果是,请有人指出我正确的方向(教程、链接、文档等)如何创建设置文件以及如何建立与它的远程连接。
我考虑过使用数据库,但我没有看到使用它来存储设置的便利。你们怎么看/建议?
Visual Studio / .NET 中没有远程应用程序设置文件的概念。但是,您可以通过多种方式存储和使用远程设置,无论是通过文件还是数据库。
你需要问自己的几个问题是......
它是否在本地网络上,并且仅由本地网络上的客户端软件使用?例如,如果您在公司网络上编写 Intranet 应用程序,就会出现这种情况。
如果是这样,那么您可以使用共享驱动器来托管文件,并从具有相同确切文件路径的任何客户端读取它。
如果您打算在互联网上使用它,您可以创建某种类型的服务,该服务在调用时会返回一个文件。如果它是从 Apache 或 IIS 等 Web 服务器提供的,则类似于 Web 服务。
如果它通过互联网,我只建议使用数据库。仅仅因为它已经设置为通过网络使用数据,并且您的记录只是一个数据结构,它可以存储在具有 x 个字段的文件中,也可以存储在具有 x 个字段的数据库表记录中,付出相同的努力。
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace TestAsync.Services
{
public static class AppSettings
{
public static string SettingsFileLocation {get; set;}
public static string Setting1 { get; set; }
public static string Setting2 { get; set; }
public static DateTime Setting3 { get; set; }
static AppSettings()
{
SettingsFileLocation = @"C:\Wherever\Whatever.config";
LoadConfiguration();
}
public static void LoadConfiguration()
{
using(var fs = new StreamReader(File.OpenRead(SettingsFileLocation)))
{
Setting1 = fs.ReadLine();
Setting2 = fs.ReadLine();
Setting3 = DateTime.Parse(fs.ReadLine());
fs.Close();
}
}
public static void SaveConfiguration()
{
using (var fs = new StreamWriter(File.OpenWrite(SettingsFileLocation)))
{
fs.WriteLine(Setting1);
fs.WriteLine(Setting2);
fs.WriteLine(Setting3.ToShortDateString());
fs.Flush();
fs.Close();
}
}
}
}