【问题标题】:Can I save an object to the app.config file?我可以将对象保存到 app.config 文件吗?
【发布时间】:2011-05-21 22:23:21
【问题描述】:

我需要为我的应用程序使用一个配置文件,该文件将保存每个实体的详细信息列表: 例如-

<person A>
         <name= >
         <age= >
<person B>
         <name=>
         <age= >

设置类中是否有这种可能性,或者这需要使用 app.config 文件而没有设置类包装器?

编辑:我的应用程序曾经有一个实体,现在它应该支持多个实体,因此在一些配置中保存多个实体。

【问题讨论】:

  • 但是为什么要将它存储为 .config?您是否考虑过使用普通的 XML 文件?
  • 因为我想要设置的API。我希望它被生成并使用应用程序名称命名 - 即一个应用程序配置文件,这正是它的样子
  • 问题的改写 - 设置文件的值可以包含一个类吗?

标签: c# application-settings


【解决方案1】:

是的,您可以在 .config 文件中保存任何类型的信息(字符串)。然后,您将使用 ConfigurationManager 类通过 Key 访问保存的信息。

但是为什么要在 .config 中保存这样的信息呢?

我建议您为此使用 XML 文档。然后,您可以使用 XDocument 类对其进行解析。

编辑:

阅读您的评论后,我认为 app.config 文件无法保存对象。所以你可以在那里保存类对象。

【讨论】:

  • 我看不出你为什么不能使用 并在其中放置一个 xml 序列化对象(或可能是另一个简单的序列化程序)然后反序列化以后再说(除非别人知道得更好?
  • @Brad:我不知道你能做到。所以本质上你会序列化一个类并保存一些巫毒字符串?
  • 计划就是这样,斯坦。同样,不确定它是否可以,我只是不明白为什么它不会(鉴于我对 XML 的了解以及在其中存储抽象数据)。您可能可以创建对象并使用 XmlNodeAttibute 和 XmlElementAttribute 装饰它,将其序列化为文件,然后将其推送到 .config。在最坏的情况下,您使用 XmlDocument 并自己沿着树向下(绕过 ConfigurationManager)并反序列化结果。
【解决方案2】:

配置文件不是存储动态配置信息的好地方,它用于配置应用程序,而不是维护状态。

宁可使用单独的文件,或类似 SQLite 数据库的东西来存储动态数据。

【讨论】:

    【解决方案3】:

    好吧,您可以为此目的使用Serialization。但我仍然看不到将其存储在 .config 文件中的意义。无论如何,您可以将对象序列化为 XML 格式并将其存储在您将作为字符串添加到 .config 文件中的键中。我想这会解决它。

    如果您决定将其存储为简单的 XML 文件,请使用 XMLDocumentXMLNode 类。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-10-03
      • 1970-01-01
      • 2023-01-25
      • 2013-11-14
      • 1970-01-01
      • 2022-12-10
      • 1970-01-01
      相关资源
      最近更新 更多