3

我正在处理一个 C# 项目,我想将管理员的设置存储在设置文件(不是 app.config)中,我想知道这个设置文件是否可以存储在远程位置,如服务器数据库或另一台计算机同一个局域网,这实际上是最好的事情,因为我想将管理员的设置推送到所有计算机,所以一个文件是必不可少的。这甚至可能吗?如果是,请有人指出我正确的方向(教程、链接、文档等)如何创建设置文件以及如何建立与它的远程连接。

我考虑过使用数据库,但我没有看到使用它来存储设置的便利。你们怎么看/建议?

4

1 回答 1

2

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();
            }
        }
    }
}
于 2013-02-15T20:54:21.863 回答