XML إلغاء التسلسل لم يحدد القيم الفئة
-
05-07-2019 - |
سؤال
وأنا لا نرى ما أقوم به خطأ. لمعرفة ما يجري القيام به، لقد غيرت القيم منشئ إلى "اختبار"، بعد يحصل قراءة 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 سمات مقابل ممتلكاتي. لم أكن أعتقد أن هذه الاشياء القضية الحساسة؟ ولكن عندما تغيرت بحيث قضاياهم الملائمة، وأنها تعمل، حتى تغييره ذهابا وإيابا إلى تأكيد.
وغريب؟
لا تنتمي إلى StackOverflow