为什么我在序列化对象后得到这些数据 [英] Why i get the this data after serialize an object

查看:84
本文介绍了为什么我在序列化对象后得到这些数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好,

我想知道为什么我在数据集合中得到最后一个值。我在一个由两个成员组成的对象中进行了序列化。这是代码



  Imports  System.Xml.Serialization 
' < XmlRoot(AuditLogiciel)>
< serializable()>
公开 DataAcquisition
公开 Sub ()
' Rienàfaire。
结束 Sub
#RegionDéclaration
Public DateData 作为 日期
公共 MesureCapteur 作为 字符串

#End Region

#RegionPropiétés

' < XmlAttribute(Dates)>
公共 属性日期()正如 日期
获取
返回 DateData
结束 获取
设置 ByVal 日期
DateData = value

结束 设置
结束 属性
' < XmlAttribute(CapteurMesure)>
公众 属性上尉eurMesure()作为 字符串
获取
返回 MesureCapteur
结束 获取
设置 ByVal 作为 字符串
MesureCapteur = value

结束 设置
结束 属性

#End Region

#RegionMétodes


#End Region


结束 Class





在另一堂课:



 私有  Sub  MainWindow_Closing( ByVal  sender  As  System。 Object  ByVal  e  As  System.ComponentModel.CancelEventArgs)句柄  MyBase  .Closing 


Dim xSerializer As XmlSerializer = XmlSerializer( GetType (DataAcquisition))
Dim writer As TextWriter = StreamWriter( nomFichierC onfigXml.XML
xSerializer.Serialize(writer,Config)
writer.Close()

End Sub





属性日期中包含许多信息。儿子,当我进行序列化时,我在日期内获得该信息的最后价值。



结果如下:

 <?  xml     version   =  1.0 < span class =code-summarycomment>   encoding   =  UTF-8  >  
- < DataMesuresCapteur xmlns:xsd = http://www.w3.org/2001/XMLSchema xmlns:xsi = http://www.w3。 org / 2001 / XMLSchema-instance > - < AcquisiMesur > - < DataAcquisition > < 日期 > 2013-09-23T17:25:35 < /日期 > < CapteurMesure > 0,4 < / CapteurMesure > < / DataAcquisition > - < DataAcquisition > < ; 日期 > 2013-09-23T17:25:35 < / Dates > < CapteurMesure > 0,4 < / CapteurMesure > < / DataAcquisition > - < DataAcquisition > < 日期 > 2013-09-23T17:25:35 < / Dates > < CapteurMesure < span class =code-keyword>> 0,4 < / CapteurMesure > < / DataAcquisition > - < DataAcquisition > < 日期 > 2013-09-23T17:25:35 < /日期 > < CapteurMesure > 0,4 < / CapteurMesure > < / DataAcquisition > - < DataAcquisition > < 日期 > 2013-09-23T17:25:35 < /日期 > < CapteurMesure > 0,4 < span class =code-keyword>< / CapteurMesure > < / DataAcquisition > - < DataAcquisition > < 日期 > 2013-09-23T17:25:35 < span class =code-keyword>< / Dates > < CapteurMesure > 0,4 < / CapteurMesure > < / DataAcquisi >



正如你所看到的那样总是相同的值(最后一个值)我的日期)。

注意:日期中包含很多值。



为什么我只得到一个值,而不是所有值。





谢谢

解决方案

你必须序列化一个对象集合一个实例(在你的情况下配置)



试试这个:



 ' < XmlRoot(AuditLogiciel)>  
< Serializable()> ;
公开 DataAcquisition
< NonSerialized()>
公开 共享列表作为列表( DataAcquisition)= 列表( DataAcquisition)
公共 Sub ()
' Rienàfaire。
List.Add(
结束 Sub
#RegionDéclaration
公共 DateData 作为 日期
公开 MesureCapteur 作为 字符串

#End Region

#RegionPropiétés

' < XmlAttribute(Dates)>
公共 属性日期() As 日期
获取
返回 DateData
结束 获取
设置 ByVal 作为 日期
DateData = value

结束 设置
结束 属性
' < XmlAttribute(CapteurMesure)> ;
公共 属性 CapteurMesure()作为 字符串
获取
返回 MesureCapteur
结束 获取
< span class =code-keyword>设置( ByVal 字符串
MesureCapteur = value

结束 设置
结束 物业

< span class =code-preprocessor> #End Regi on

#RegionMétodes


#End Region


结束 Class







  Dim  test  As  DataAcquisition =  DataAcquisition()使用 {.CapteurMesure =   5,。日期= 日期。现在} 
Dim test2 作为 DataAcquisition = DataAcquisition()使用 {.CapteurMesure = 7,。日期= 日期 .Today}
私有 Sub Button2_Click(发件人作为系统。对象,e As System.EventArgs)句柄 Button2。点击
Dim xSerializer 作为 XmlSerializer = XmlSerializer( GetType (List( of DataAcquisition)))
Dim writer As TextWriter = StreamWriter( nomFichierConfigXml.XML
xSerializer.Serialize(writer,DataAcquisition.List)
writer。关闭()
结束 Sub


Hi everybody,
I want to know why i get de last value in a collection of data. I made the serialization in an object which is composed by two members. Here is the code

Imports System.Xml.Serialization
'<XmlRoot("AuditLogiciel")> 
<serializable()>
Public Class DataAcquisition
    Public Sub New()
        ' Rien à faire.
    End Sub
#Region "Déclaration"
    Public DateData As Date
    Public MesureCapteur As String
 
#End Region
 
#Region "Propiétés"
 
    '<XmlAttribute("Dates")>
    Public Property Dates() As Date
        Get
            Return DateData
        End Get
        Set(ByVal value As Date)
            DateData = value
 
        End Set
    End Property
    ' <XmlAttribute("CapteurMesure")>
    Public Property CapteurMesure() As String
        Get
            Return MesureCapteur
        End Get
        Set(ByVal value As String)
            MesureCapteur = value
 
        End Set
    End Property
 
#End Region
 
#Region "Métodes"
 
  
#End Region
 

End Class



In another class:

Private Sub MainWindow_Closing(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing


        Dim xSerializer As XmlSerializer = New XmlSerializer(GetType(DataAcquisition))
        Dim writer As TextWriter = New StreamWriter("nomFichierConfigXml.XML")
        xSerializer.Serialize(writer, Config)
        writer.Close()

    End Sub



The property Dates is fill with many information. Son when i made the serialisation, i get just de last value of that information within Dates.

Here is the result:

<?xml version="1.0" encoding="UTF-8"?>
-<DataMesuresCapteur xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">-<AcquisiMesur>-<DataAcquisition><Dates>2013-09-23T17:25:35</Dates><CapteurMesure>0,4</CapteurMesure></DataAcquisition>-<DataAcquisition><Dates>2013-09-23T17:25:35</Dates><CapteurMesure>0,4</CapteurMesure></DataAcquisition>-<DataAcquisition><Dates>2013-09-23T17:25:35</Dates><CapteurMesure>0,4</CapteurMesure></DataAcquisition>-<DataAcquisition><Dates>2013-09-23T17:25:35</Dates><CapteurMesure>0,4</CapteurMesure></DataAcquisition>-<DataAcquisition><Dates>2013-09-23T17:25:35</Dates><CapteurMesure>0,4</CapteurMesure></DataAcquisition>-<DataAcquisition><Dates>2013-09-23T17:25:35</Dates><CapteurMesure>0,4</CapteurMesure></DataAcquisition>


As you can see is always the same value (the last value of my dates).
Note: Dates is fill with many values.

Why i get just one value and not ALL VALUES.


Thanks

解决方案

You have to serialize a collection of object not only one instance (Config in your case)

Try this :

'<XmlRoot("AuditLogiciel")>
<Serializable()>
Public Class DataAcquisition
    <NonSerialized()>
    Public Shared List As List(Of DataAcquisition) = New List(Of DataAcquisition)
    Public Sub New()
        ' Rien à faire.
        List.Add(Me)
    End Sub
#Region "Déclaration"
    Public DateData As Date
    Public MesureCapteur As String

#End Region

#Region "Propiétés"
 
    '<XmlAttribute("Dates")>
    Public Property Dates() As Date
        Get
            Return DateData
        End Get
        Set(ByVal value As Date)
            DateData = value

        End Set
    End Property
    ' <XmlAttribute("CapteurMesure")>
    Public Property CapteurMesure() As String
        Get
            Return MesureCapteur
        End Get
        Set(ByVal value As String)
            MesureCapteur = value

        End Set
    End Property

#End Region

#Region "Métodes"
 

#End Region


End Class




Dim test As DataAcquisition = New DataAcquisition() With {.CapteurMesure = "5", .Dates = Date.Now}
   Dim test2 As DataAcquisition = New DataAcquisition() With {.CapteurMesure = "7", .Dates = Date.Today}
   Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
       Dim xSerializer As XmlSerializer = New XmlSerializer(GetType(List(Of DataAcquisition)))
       Dim writer As TextWriter = New StreamWriter("nomFichierConfigXml.XML")
       xSerializer.Serialize(writer, DataAcquisition.List)
       writer.Close()
   End Sub


这篇关于为什么我在序列化对象后得到这些数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆