سؤال

وأنا لا نرى ما أقوم به خطأ. لمعرفة ما يجري القيام به، لقد غيرت القيم منشئ إلى "اختبار"، بعد يحصل قراءة XML في (I تحقق ما هو XML)، وقيم الطبقة لا تزال عالقة إلى "اختبار". أي مزيد من أفكار؟ أنا أفعل هذه العملية بالفعل في فئة أخرى أن يعمل بشكل جيد، لا لي ولا بعض زملاء العمل يمكن أن تجد الفرق.

وXML:

<IntervalTranslatorScrubberSetting>
  <LINEINDICATOR_USAGE>USG</LINEINDICATOR_USAGE>
  <FILETYPE>867</FILETYPE>
  <ESIDUNS>8417397824</ESIDUNS>
</IntervalTranslatorScrubberSetting>

والدرجة: (حاول دون XMLElement، وحاول استخدام XMLAttribute لمجرد أن نرى، لا تغيير)

Imports System.Xml.Serialization

Namespace Workers.Scrubber
    <Serializable()> _
    Public Class IntervalTranslatorScrubberSetting

#Region "Private Variables"
        Private _ESIDuns As String
        Private _FileType As String
        Private _LineIndicator_Usage As String
#End Region

#Region "Constructors"
        Sub New()
            Me.ESIDuns = "TEST"
            Me.FileType = "TEST"
            Me.LineIndicator_Usage = "TEST"
        End Sub
#End Region

#Region "Serialization"
        Private _SerializMe As New XML(Of IntervalTranslatorScrubberSetting)

        Public Function Serialize(ByVal XMLObject As IntervalTranslatorScrubberSetting) As String
            Return _SerializMe.Serialize(XMLObject)
        End Function

        Public Function Deserialize(ByVal XML As String) As IntervalTranslatorScrubberSetting
            Return _SerializMe.Deserialize(XML)
        End Function
#End Region

#Region "Properties"
        <XmlElement()> _
        Public Property ESIDuns() As String
            Get
                Return _ESIDuns
            End Get
            Set(ByVal value As String)
                _ESIDuns = value
            End Set
        End Property

        <XmlElement()> _
        Public Property FileType() As String
            Get
                Return _FileType
            End Get
            Set(ByVal value As String)
                _FileType = value
            End Set
        End Property

        <XmlElement()> _
        Public Property LineIndicator_Usage() As String
            Get
                Return _LineIndicator_Usage
            End Get
            Set(ByVal value As String)
                _LineIndicator_Usage = value
            End Set
        End Property
#End Region
    End Class
End Namespace

والتعامل مع XML الدرجة:

Imports System.IO
Imports System.Xml

Public Class XML(Of T)
    Private _serializer As New System.Xml.Serialization.XmlSerializer(GetType(T))

    Public Function Serialize(ByVal myobject As T) As String
        'serialise to a memory stream, then read into a string
        Try
            Dim result As String = Nothing
            If myobject IsNot Nothing Then
                Using ms As New MemoryStream
                    Using xtw As New XmlTextWriter(ms, System.Text.Encoding.UTF8)
                        xtw.Formatting = Formatting.Indented
                        _serializer.Serialize(xtw, myobject)
                        'rewind
                        ms.Seek(0, System.IO.SeekOrigin.Begin)
                        Using reader As New StreamReader(ms, Text.Encoding.UTF8)
                            result = reader.ReadToEnd()
                            xtw.Close()
                            reader.Close()
                        End Using
                    End Using
                End Using
            End If
            Return result

        Catch ex As Exception
            Throw
        End Try
    End Function

    Public Function Deserialize(ByVal xml As String) As T
        Try
            'default to no object
            If Not String.IsNullOrEmpty(xml) Then
                Using sr As New StringReader(xml)
                    Return CType(_serializer.Deserialize(sr), T)
                End Using
            Else
                Return Nothing
            End If

        Catch ex As Exception
            Throw
        End Try
    End Function
End Class
هل كانت مفيدة؟

المحلول

وحسنا اقتراح باستخدامmaxc الصورة، حاولت التسلسل الطبقة، ورأيت شيئا مختلفا باستثناء رسملة بلدي XML سمات مقابل ممتلكاتي. لم أكن أعتقد أن هذه الاشياء القضية الحساسة؟ ولكن عندما تغيرت بحيث قضاياهم الملائمة، وأنها تعمل، حتى تغييره ذهابا وإيابا إلى تأكيد.

وغريب؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top