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

.net 最佳实践:我应该如何以C#(格式/类型)存储设置?,.net,configuration,settings,.net,Configuration,Settings,现在我很好奇在.net中存储/加载设置的可能性。例如,我需要存储不同数据库的用户名/密码等,还需要存储一些选项等 我的想法是创建[Seriazable]类并将其保存到文件 你有什么建议?在.net等中有哪些可能性?存储和加载设置的最常见方法是使用某种XML数据,创建一个[Serializable]类并将序列化类输出到XML文件将是可行的,但您必须记住以下几点: 您将无法控制输入数据——因为XML文件可以在应用程序之外编辑,所以可能会加载完全没有意义的数据 当XML中缺少节点时,您需要有一个合理的

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

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


你有什么建议?在.net等中有哪些可能性?

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

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

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

    NET Framework提供了一些存储和加载应用程序和/或用户设置的机制。有关基本信息,请参见“”


    要加密配置文件中的一些合理数据,还可以使用.NET Framework的一些标准函数。有关简短的介绍,请查看“”和“”。

    如果要存储应用程序配置设置,可以利用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和实体框架即可。

    我建议在需要App.Config的地方存储一个Ini文件。。。然后使用libraryConfig.Net:这是一个易于使用且功能强大的综合性.Net配置库,全面包含单元测试,并在数千台服务器和应用程序上进行了野外测试。 在GitHub中找到它:


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

    是的,所有内容都会加密,这是肯定的;)是的,这是可能的。最后一篇文章“在…中加密密码”正好符合我的需要。谢谢+1我问了一个类似的问题,也许答案有帮助。。。