diff --git a/Pilz.Configuration/ConfigurationSerializer.vb b/Pilz.Configuration/ConfigurationSerializer.vb new file mode 100644 index 0000000..dfeaded --- /dev/null +++ b/Pilz.Configuration/ConfigurationSerializer.vb @@ -0,0 +1,55 @@ +Imports System.IO +Imports Newtonsoft.Json + +Friend Module ConfigurationSerializer + + ''' + ''' Writes the given instance to a string and return it. + ''' + ''' + ''' + Public Function WriteToString(instance As SimpleConfiguration) As String + Return JsonConvert.SerializeObject(instance) + End Function + + ''' + ''' Write the given instance to a given stream. + ''' + ''' + ''' + Public Sub WriteToStream(instance As SimpleConfiguration, stream As Stream) + Dim sr As New StreamWriter(stream) + sr.Write(WriteToString(instance)) + End Sub + + ''' + ''' Writes the given instance to the given filePath as text file. + ''' + ''' + ''' + Public Sub WriteToFile(instance As SimpleConfiguration, filePath As String) + Dim fs As New FileStream(filePath, FileMode.Create) + WriteToStream(instance, fs) + fs.Close() + End Sub + + ''' + ''' Reads a configuratin from the given string and returns an instance of it. + ''' + ''' + ''' + ''' + Public Function ReadFromString(Of T As SimpleConfiguration)(content As String) As T + Return JsonConvert.DeserializeObject(Of T)(content) + End Function + + ''' + ''' Read a configuration from the given string and put them to the given instance. + ''' + ''' + ''' + Public Sub ReadFromString(instance As SimpleConfiguration, content As String) + JsonConvert.PopulateObject(content, instance) + End Sub + +End Module diff --git a/Pilz.Configuration/Pilz.Configuration.vbproj b/Pilz.Configuration/Pilz.Configuration.vbproj index 6508ba4..3252bbf 100644 --- a/Pilz.Configuration/Pilz.Configuration.vbproj +++ b/Pilz.Configuration/Pilz.Configuration.vbproj @@ -69,6 +69,9 @@ + + + diff --git a/Pilz.Configuration/SimpleConfiguration.vb b/Pilz.Configuration/SimpleConfiguration.vb new file mode 100644 index 0000000..7cc5042 --- /dev/null +++ b/Pilz.Configuration/SimpleConfiguration.vb @@ -0,0 +1,19 @@ +Imports System.IO + +Public Class SimpleConfiguration + + + + Public Function WriteToString() As String + Return ConfigurationSerializer.WriteToString(Me) + End Function + + Public Sub WriteToStream(stream As Stream) + ConfigurationSerializer.WriteToStream(Me, stream) + End Sub + + Public Sub WriteToFile(filePath As String) + ConfigurationSerializer.WriteToFile(Me, filePath) + End Sub + +End Class diff --git a/Pilz.Configuration/SingleInstanceConfiguration.vb b/Pilz.Configuration/SingleInstanceConfiguration.vb new file mode 100644 index 0000000..9678fe1 --- /dev/null +++ b/Pilz.Configuration/SingleInstanceConfiguration.vb @@ -0,0 +1,5 @@ +Public Class SingleInstanceConfiguration + Inherits SimpleConfiguration + + +End Class