1

XMLデシリアライズを使用して、呼び出しているAPIからのXML応答を処理しています。返されるプロパティの1つは、クラス内の別のプロパティに応じて変更する必要があります。例:

<XmlRoot("Foot")> _
Public Class Foo
    Private m_bar1 As String
    Private m_bar2 As String
    Private m_rawbar2 As String

    <XmlAttribute("Bar1")> _
    Public Property Bar1() As String
        Get
            return m_bar1
        End Get
        Set(value As String)
            m_bar1 = value
        End Set
    End Property

    <XmlAttribute("Bar2")> _
    Public Property RawBar2() As String
        Get
            return m_rawbar2
        End Get
        Set(value As String)
            m_rawbar2= value

            'This won't (always) work because the order in which the 
            'properties are deserialized is unknown
            'm_bar2 = m_bar1 & m_rawbar2 
        End Set
    End Property

    <XmlIgnore()> _
    Public ReadOnly Property Bar2() As String
        Get
            return m_bar2
        End Get
    End Property
End Class

私の場合、bar1はURLになり、bar2は同じドメインの相対パスになります。m_bar2を設定できるのは、順序が不明なためにすべてのプロパティが逆シリアル化されるときだけです。これを行うための最良の方法は何でしょうか?

4

0 に答える 0