Imports System.Collections.Generic
Imports System.Collections
Imports System.Collections.ObjectModel
Imports System.Reflection
Imports System.Xml.Serialization
Imports System.Xml.Schema
Public Class CategoryInfo
Public Sub New(SearchTerm as String)
Me.SearchTerm = SearchTerm
Public Property SearchTerm As String
Public Class OptionsSerializable
Public Property Unsupported As List(Of XmlElement)
<System.Xml.Serialization.XmlElement(ElementName:="ListeCategoriesExt")>
Public ReadOnly Property Categories As List(Of CategoryInfo) = New List(Of CategoryInfo)
Public ReadOnly Property ListeCategories As EnumerableBridge(Of String, CategoryInfo) = New EnumerableBridge(Of String, CategoryInfo)(_categories, Function(s) New CategoryInfo(s), Function(c) c.SearchTerm)
Public Property ServeurExchangeUrl As String
Public Property VersionExchange As String
Public Property AdresseBoitePartager As New List(Of String)
Public Property GroupingMasks As New List(Of String)
Public Property EstAlertageActif As Boolean
Public Property Laps As Integer
Public Property NbErreursMaximum As Integer
Public Property DerniereVerification As Date
Public Property ListeEnvoi As String
Public Property DernierEnvoi As Date
Public Property LogonDernierEnvoi As String
Public Property IntervalEnvoiMinimum As Integer
Public Class EnumerableBridge(Of TSource, TTarget)
Implements IEnumerable(Of TSource)
Private _refCollection As IList(Of TTarget)
Private _converterTo As Func(Of TSource, TTarget)
Private _converterFrom As Func(Of TTarget, TSource)
Public Sub New(refCollection As IList(Of TTarget), converterTo As Func(Of TSource, TTarget), converterFrom As Func(Of TTarget, TSource))
_refCollection = refCollection
_converterTo = converterTo
_converterFrom = converterFrom
Public Sub Add(item As TSource)
_refCollection.Add(_converterTo(item))
Public Function GetEnumerator() As IEnumerator Implements IEnumerable.GetEnumerator
Public Function IEnumerableOfT_GetEnumerator() As IEnumerator(Of TSource) Implements IEnumerable(Of TSource).GetEnumerator
Return _refCollection.Select(_converterFrom).GetEnumerator()
Dim Root as OptionsSerializable = New OptionsSerializable() With { _
.ServeurExchangeUrl = "hello" _
Root.Categories.Add(New CategoryInfo("item 1"))
Public Module XmlSerializationHelper
<System.Runtime.CompilerServices.Extension> _
Public Function LoadFromXML(Of T)(xmlString As String) As T
Using reader As New StringReader(xmlString)
Return DirectCast(New XmlSerializer(GetType(T)).Deserialize(reader), T)
<System.Runtime.CompilerServices.Extension> _
Public Function GetXml(Of T)(obj As T, Optional omitStandardNamespaces As Boolean = False) As String
Dim ns As XmlSerializerNamespaces = Nothing
If omitStandardNamespaces Then
ns = New XmlSerializerNamespaces()
<System.Runtime.CompilerServices.Extension> _
Public Function GetXml(Of T)(obj As T, ns as XmlSerializerNamespaces) As String
Using textWriter = New StringWriter()
Dim settings = New XmlWriterSettings() With { _
Using xmlWriter = System.Xml.XmlWriter.Create(textWriter, settings)
Dim serializer as New XmlSerializer(obj.GetType())
serializer.Serialize(xmlWriter, obj, ns)
Return textWriter.ToString()
<System.Runtime.CompilerServices.Extension> _
Public Function GetOuterXml(node as XmlNode, Optional indent as Boolean = true) as String
Using textWriter = New StringWriter()
Dim settings = New XmlWriterSettings() With { _
.OmitXmlDeclaration = true _
Using xmlWriter = System.Xml.XmlWriter.Create(textWriter, settings)
Return textWriter.ToString()