初始化项目
This commit is contained in:
71
BLV_Studio/Test/XmlSerializer.vb
Normal file
71
BLV_Studio/Test/XmlSerializer.vb
Normal file
@@ -0,0 +1,71 @@
|
||||
Imports System.IO
|
||||
Imports System.Text
|
||||
Imports System.Xml
|
||||
|
||||
Public Class XmlSerializer
|
||||
''' <summary>
|
||||
''' 将类对象序列化为xml文件
|
||||
''' </summary>
|
||||
''' <param name="path"></param>
|
||||
''' <param name="srcObject"></param>
|
||||
Public Shared Sub SerializeToXml(path As String, srcObject As Object)
|
||||
Dim serializer As New Xml.Serialization.XmlSerializer(srcObject.GetType)
|
||||
Dim xmlString As String = String.Empty
|
||||
|
||||
Using writer As New StringUTF8Writer()
|
||||
|
||||
serializer.Serialize(writer, srcObject)
|
||||
xmlString = writer.ToString()
|
||||
End Using
|
||||
|
||||
Using ws As New StreamWriter(path)
|
||||
ws.Write(xmlString)
|
||||
End Using
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' 将类对象序列化为xml文件
|
||||
''' </summary>
|
||||
''' <param name="path"></param>
|
||||
''' <param name="srcObject"></param>
|
||||
Public Shared Sub SerializeToXml(Of T)(path As String, srcObject As T)
|
||||
Dim serializer As New Xml.Serialization.XmlSerializer(GetType(T))
|
||||
Dim xmlString As String
|
||||
|
||||
|
||||
Using writer As New StringUTF8Writer()
|
||||
serializer.Serialize(writer, srcObject)
|
||||
xmlString = writer.ToString()
|
||||
End Using
|
||||
|
||||
Using ws As New StreamWriter(path)
|
||||
ws.Write(xmlString)
|
||||
End Using
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 从Xml文件中反序列化成指定类
|
||||
''' </summary>
|
||||
''' <typeparam name="T"></typeparam>
|
||||
''' <param name="path"></param>
|
||||
''' <returns></returns>
|
||||
Public Shared Function DeserializeFormXml(Of T)(path As String) As T
|
||||
Dim serializer As New Xml.Serialization.XmlSerializer(GetType(T))
|
||||
|
||||
Using reader As New StreamReader(path)
|
||||
Return CType(serializer.Deserialize(reader), T)
|
||||
End Using
|
||||
End Function
|
||||
|
||||
|
||||
Public Class StringUTF8Writer
|
||||
Inherits StringWriter
|
||||
|
||||
Public Overrides ReadOnly Property Encoding As Encoding
|
||||
Get
|
||||
Return Encoding.UTF8
|
||||
End Get
|
||||
End Property
|
||||
End Class
|
||||
End Class
|
||||
Reference in New Issue
Block a user