微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

有没有办法在应用程序设置中使用字典或xml?

我必须在应用程序设置中存储复杂类型.我认为将其存储为 XML将最有效.

问题是我不知道如何存储XML.我更喜欢将它存储为托管XML,而不是只使用一串原始XML,必须在每次访问时解析它.我设法将设置的Type列设置为XDocument,但我无法设置其值.

有没有办法在应用程序设置中使用XDocument或XML?

更新

我找到了一种方法,只需使用xml编辑器编辑.settings文件即可.

我将其更改为custom serializable dictionary,但是当我尝试访问setting-property时,我收到以下错误(我将其设置为认值的序列化表示).

The property 'Setting' Could not be created from it's default value.
Error message: There is an error in XML document (1,41).

任何想法将不胜感激.

解决方法

我做了什么(即使我不喜欢这么多 – 但有效)是:

我创建了我的值的简单可序列化类:

<Xml.Serialization.XmlRoot("Rooms")> _
Public Class Rooms : Inherits List(Of Room)
End Class

<Serializable()> _
Public Class Room
    Private m_Room As String
    Public Property Room() As String
        Get
            Return m_Room
        End Get
        Set(ByVal value As String)
            m_Room = value
        End Set
    End Property

    Private m_Sections As New List(Of Section)
    Public ReadOnly Property Sections() As List(Of Section)
        Get
            Return m_Sections
        End Get
    End Property
End Class

<Serializable()> _
Public Class Section
    Private m_Section As String
    Public Property Section() As String
        Get
            Return m_Section
        End Get
        Set(ByVal value As String)
            m_Section = value
        End Set
    End Property
End Class

然后在.settings文件中,我将设置的类型(使用xml编辑器打开的.setting文件)编辑为Rooms的全名(即MyProject.Rooms).
然后我自己做了一个反序列化的示例样本,并将其复制到.settings编辑器中的value字段,以获得认值.它很棒.
它确实不是字典,但我仍然可以在Rooms类和内部字典中实现(返回Room.Room的Sections.

任何好的想法仍然很好,我仍然在寻找一种方法,可以在.settings文件中使用IDictinoarys.

此外,我为它开了一个connection,请善待并投票!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。