13

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

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

你有什么建议?.net 等有什么可能性?

4

5 回答 5

17

.NET Framework 提供了一些用于存储和加载应用程序和/或用户设置的机制。有关基础知识,请参阅“ MSDN:使用 C# 中的设置”。

要加密配置文件中的一些敏感数据,您还可以使用 .NET Framework 的一些标准功能。有关简短介绍,请查看“使用受保护的配置加密配置信息”和“在 .NET app.config 文件中加密密码”。

于 2009-02-11T08:00:27.430 回答
4

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

  1. 您将无法控制输入数据——因为 XML 文件可以在您的应用程序之外进行编辑,所以可能会加载完全无意义的数据
  2. 当 XML 中缺少节点时,您会希望有合理的默认值。这可能是由手动编辑或将旧版本的类加载到新版本中引起的。
  3. 如果不使用某种非对称加密算法,我个人会非常犹豫将任何密码存储在配置文件中的任何位置。如果我发现一个程序将我的密码以纯文本形式存储在 XML 文件中,我将停止使用该程序。
于 2009-02-11T06:48:08.977 回答
2

如果要存储应用程序配置设置,可以利用 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 和 Entity Framework。

于 2009-02-11T08:13:48.117 回答
1

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

于 2009-02-11T07:12:54.923 回答
0

我建议在你需要的地方存储 App.Config,一个 Ini 文件......然后使用库Config.Net一个全面的易于使用且功能强大的 .NET 配置库,完全覆盖了单元测试并在数千个野外测试服务器和应用程序。在 GitHub 中找到它:https ://github.com/aloneguid/config

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

于 2018-07-25T16:10:08.380 回答