當前位置: 首頁>>代碼示例>>VB.NET>>正文


VB.NET OnSerializedAttribute類代碼示例

本文整理匯總了VB.NET中System.Runtime.Serialization.OnSerializedAttribute的典型用法代碼示例。如果您正苦於以下問題:VB.NET OnSerializedAttribute類的具體用法?VB.NET OnSerializedAttribute怎麽用?VB.NET OnSerializedAttribute使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。


在下文中一共展示了OnSerializedAttribute類的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的VB.NET代碼示例。

示例1: Test

' 導入命名空間
Imports System.IO
Imports System.Runtime.Serialization
Imports System.Runtime.Serialization.Formatters.Binary

Public Class Test
    Public Shared Sub Main()
        ' Create a new TestSimpleObject object.
        Dim obj As New TestSimpleObject()

        Console.WriteLine(vbLf + " Before serialization the object contains: ")
        obj.Print()

        ' Open a file and serialize the object into binary format.
        Dim stream As Stream = File.Open("DataFile.dat", FileMode.Create)
        Dim formatter As New BinaryFormatter()

        Try
            formatter.Serialize(stream, obj)

            ' Print the object again to see the effect of the 
            'OnSerializedAttribute.
            Console.WriteLine(vbLf + " After serialization the object contains: ")
            obj.Print()

            ' Set the original variable to null.
            obj = Nothing
            stream.Close()

            ' Open the file "DataFile.dat" and deserialize the object from it.
            stream = File.Open("DataFile.dat", FileMode.Open)

            ' Deserialize the object from the data file.
            obj = CType(formatter.Deserialize(stream), TestSimpleObject)

            Console.WriteLine(vbLf + " After deserialization the object contains: ")
            obj.Print()
            Console.ReadLine()
        Catch se As SerializationException
            Console.WriteLine("Failed to serialize. Reason: " + se.Message)
            Throw
        Catch exc As Exception
            Console.WriteLine("An exception occurred. Reason: " + exc.Message)
            Throw
        Finally
            stream.Close()
            obj = Nothing
            formatter = Nothing
        End Try
    End Sub
End Class


' This is the object that will be serialized and deserialized.
<Serializable()> _
Public Class TestSimpleObject
    ' This member is serialized and deserialized with no change.
    Public member1 As Integer

    ' The value of this field is set and reset during and 
    ' after serialization.
    Private member2 As String

    ' This field is not serialized. The OnDeserializedAttribute 
    ' is used to set the member value after serialization.
    <NonSerialized()> _
    Public member3 As String

    ' This field is set to null, but populated after deserialization.
    Private member4 As String

    ' Constructor for the class.
    Public Sub New()
        member1 = 11
        member2 = "Hello World!"
        member3 = "This is a nonserialized value"
        member4 = Nothing
    End Sub

    Public Sub Print()
        Console.WriteLine("member1 = '{0}'", member1)
        Console.WriteLine("member2 = '{0}'", member2)
        Console.WriteLine("member3 = '{0}'", member3)
        Console.WriteLine("member4 = '{0}'", member4)
    End Sub

    <OnSerializing()> _
    Friend Sub OnSerializingMethod(ByVal context As StreamingContext)
        member2 = "This value went into the data file during serialization."
    End Sub

    <OnSerialized()> _
    Friend Sub OnSerializedMethod(ByVal context As StreamingContext)
        member2 = "This value was reset after serialization."
    End Sub

    <OnDeserializing()> _
    Friend Sub OnDeserializingMethod(ByVal context As StreamingContext)
        member3 = "This value was set during deserialization"
    End Sub

    <OnDeserialized()> _
    Friend Sub OnDeserializedMethod(ByVal context As StreamingContext)
        member4 = "This value was set after deserialization."
    End Sub
End Class

' Output:
'  Before serialization the object contains: 
' member1 = '11'
' member2 = 'Hello World!'
' member3 = 'This is a nonserialized value'
' member4 = ''
'
'  After serialization the object contains: 
' member1 = '11'
' member2 = 'This value was reset after serialization.'
' member3 = 'This is a nonserialized value'
' member4 = ''
'
'  After deserialization the object contains: 
' member1 = '11'
' member2 = 'This value went into the data file during serialization.'
' member3 = 'This value was set during deserialization'
' member4 = 'This value was set after deserialization.'
開發者ID:VB.NET開發者,項目名稱:System.Runtime.Serialization,代碼行數:125,代碼來源:OnSerializedAttribute

示例2: SetValuesOnSerialized

<OnSerialized()> _
Private Sub SetValuesOnSerialized(ByVal context As StreamingContext)
    ' Code not shown.
End Sub
開發者ID:VB.NET開發者,項目名稱:System.Runtime.Serialization,代碼行數:4,代碼來源:OnSerializedAttribute


注:本文中的System.Runtime.Serialization.OnSerializedAttribute類示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。