Files
Pilz/Pilz.Configuration/ConfigurationSerializer.vb
2020-07-14 09:35:49 +02:00

56 lines
1.9 KiB
VB.net

Imports System.IO
Imports Newtonsoft.Json
Friend Module ConfigurationSerializer
''' <summary>
''' Writes the given instance to a string and return it.
''' </summary>
''' <param name="instance"></param>
''' <returns></returns>
Public Function WriteToString(instance As SimpleConfiguration) As String
Return JsonConvert.SerializeObject(instance)
End Function
''' <summary>
''' Write the given instance to a given stream.
''' </summary>
''' <param name="instance"></param>
''' <param name="stream"></param>
Public Sub WriteToStream(instance As SimpleConfiguration, stream As Stream)
Dim sr As New StreamWriter(stream)
sr.Write(WriteToString(instance))
End Sub
''' <summary>
''' Writes the given instance to the given filePath as text file.
''' </summary>
''' <param name="instance"></param>
''' <param name="filePath"></param>
Public Sub WriteToFile(instance As SimpleConfiguration, filePath As String)
Dim fs As New FileStream(filePath, FileMode.Create)
WriteToStream(instance, fs)
fs.Close()
End Sub
''' <summary>
''' Reads a configuratin from the given string and returns an instance of it.
''' </summary>
''' <typeparam name="T"></typeparam>
''' <param name="content"></param>
''' <returns></returns>
Public Function ReadFromString(Of T As SimpleConfiguration)(content As String) As T
Return JsonConvert.DeserializeObject(Of T)(content)
End Function
''' <summary>
''' Read a configuration from the given string and put them to the given instance.
''' </summary>
''' <param name="instance"></param>
''' <param name="content"></param>
Public Sub ReadFromString(instance As SimpleConfiguration, content As String)
JsonConvert.PopulateObject(content, instance)
End Sub
End Module