starting with new configuration class model

This commit is contained in:
schedpas
2020-07-14 09:35:49 +02:00
parent e31827642e
commit dc933f2a27
4 changed files with 82 additions and 0 deletions

View File

@@ -0,0 +1,55 @@
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