当前位置 : 主页 > 网页制作 > xml >

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

来源:互联网 收集:自由互联 发布时间:2021-06-13
我必须在应用程序设置中存储复杂类型.我认为将其存储为 XML将最有效. 问题是我不知道如何存储XML.我更喜欢将它存储为托管XML,而不是只使用一串原始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,请善待并投票!

网友评论