Index: TAOR rework/TAOR rework/Configuraties/IMapper.vb =================================================================== diff -u --- TAOR rework/TAOR rework/Configuraties/IMapper.vb (revision 0) +++ TAOR rework/TAOR rework/Configuraties/IMapper.vb (revision 2071) @@ -0,0 +1,4 @@ +Public Interface IMapper + Sub WriteData(Of T)(item As T) + Function GetData(Of T)() As T +End Interface Index: TAOR rework/TAOR rework/Configuraties/XmlMapper.vb =================================================================== diff -u --- TAOR rework/TAOR rework/Configuraties/XmlMapper.vb (revision 0) +++ TAOR rework/TAOR rework/Configuraties/XmlMapper.vb (revision 2071) @@ -0,0 +1,45 @@ +Imports System.IO +Imports System.Xml.Serialization + +'Robin De Bock Created:15/06/2021 +Public Interface IXmlMapper + Sub WriteData(Of T)(filestream As Stream, item As T) + Function GetData(Of T)(filestream As Stream) As T +End Interface + +Public Class XmlMapper + Implements IXmlMapper + ''' + ''' Write data to XML + ''' + ''' + ''' Created with New FileStream(pathToFile, FileMode.Create) + ''' + Public Sub WriteData(Of T)(writer As Stream, item As T) Implements IXmlMapper.WriteData + Try + Dim serializer As New XmlSerializer(GetType(T)) + serializer.Serialize(writer, item) + writer.Close() + Catch ex As Exception + Throw New Exception($"Er is iets foutgelopen bij serializeren van {NameOf(T)} naar xml{vbNewLine}{ex.Message}") + End Try + End Sub + + ''' + ''' Get data from XML + ''' + ''' + ''' Created with New FileStream(pathToFile, FileMode.Open, FileAccess.Read, FileShare.Read) + ''' + Public Function GetData(Of T)(stream As Stream) As T Implements IXmlMapper.GetData + Try + Dim serializer As New XmlSerializer(GetType(T)) + Dim deserialized As T = serializer.Deserialize(stream) + stream.Close() + Return deserialized + Catch ex As Exception + Throw New Exception($"Er is iets foutgelopen bij deserializeren van het .xml bestand naar {NameOf(T)}{vbNewLine}{ex.Message}") + End Try + End Function + +End Class \ No newline at end of file