代码之家  ›  专栏  ›  技术社区  ›  Lukas Å alkauskas

最佳实践:我应该如何以C#(格式/类型)存储设置?

  •  11
  • Lukas Å alkauskas  · 技术社区  · 17 年前

    现在我很好奇在.net中存储/加载设置的可能性。例如,我需要存储不同数据库的用户名/密码等,还需要存储一些选项等。

    我的想法是创建[Seriazable]类并将其保存到文件。。。

    5 回复  |  直到 17 年前
        1
  •  17
  •   Alexander    17 年前

    NET Framework提供了一些用于存储和加载应用程序和/或用户设置的机制。见“ MSDN: Using Settings in C# “最基本的。

    Encrypting Configuration Information Using Protected Configuration “和” Encrypting Passwords in a .NET app.config File ".

        2
  •  4
  •   scwagner    17 年前

    存储和加载设置的最常见方法是使用某种XML数据,创建[Serializable]类并将序列化类输出到XML文件将起作用,但您必须记住以下几点:

    1. 您将无法控制输入数据——因为XML文件可以在应用程序之外编辑,所以可能会加载完全没有意义的数据
    2. 当XML中缺少节点时,您需要有一个合理的默认值。这可能是由手动编辑或将旧版本的类加载到新版本中引起的。
    3. 我个人会非常犹豫在配置文件中的任何位置存储任何密码,而不使用某种非对称加密算法。如果我发现一个程序将我的密码以明文形式存储在XML文件中,我将停止使用该程序。
        3
  •  2
  •   TJB    17 年前

    应用程序配置设置 ,您可以利用App.Config或Web.Config文件中的“AppSettings”,具体取决于它是windows还是Web应用程序。 我相信读取配置值的语法是

    string configValue = Configuration.AppSettings["ConfigValueName"];
    

    配置文件如下所示

    <configuration> 
      <appSettings>
        <add key="ConfigValueName" value="ABC"/>
      </appSettings>
    </configuration>
    

    如果您需要存储 关于用户的信息 或系统中的其他重复实体,则需要构建一个数据库并编写代码以将数据持久化/读取到数据库中或从数据库中读取数据。

    可以使类可序列化并自动将其序列化为XML或二进制,也可以使用SQL数据库。有许多.net技术可以访问数据库,只需查看ADO.net、LINQ和实体框架即可。

        4
  •  1
  •   Adrian Toman Duncan_m    14 年前

    您可以使用资源文件获取不太敏感的信息。对于用户名/密码,您需要使用加密文本文件,或使用 CSPs .

        5
  •  0
  •   Gabrielizalo    8 年前

    我建议在需要App.Config的地方存储一个Ini文件。。。然后使用图书馆 Config.Net : . 在GitHub中找到它: https://github.com/aloneguid/config

    因此,您可以将设置放在某个位置,然后,如果需要,可以移动到另一个位置。