Imports System.Xml.Serialization Imports DigitalData.Modules.Config.ConfigAttributes ''' ''' --- User Config for EDMI --- ''' ''' All settings are simple properties that should have a default value where possible ''' ''' More complex properties (for example, ServiceConnection) are built from simple ones, ''' should be readonly and have an `XmlIgnore` Attribute to prevent them from being saved to the config file. ''' ''' They can make saving and loading complex properties more easy. ''' ''' The config is loaded with `ConfigManager` which is initialized in ApplicationEvents ''' to ensure that the config is loaded before any of the forms (that might need a config) ''' ''' The config object can be accessed in two ways: ''' ''' - My.ConfigManager.Config ''' - My.Config (which simply points to My.ConfigManager.Config) ''' ''' After changing a config value, My.ConfigManager.Save() must be called to persist the change in the config file ''' Public Class ClassConfig ' === Complex/Readonly Config Properties Public ReadOnly Property ServiceConnection As String Get If ServiceIP = String.Empty Or ServicePort = -1 Then Return String.Empty Else Return $"net.tcp://{ServiceIP}:{ServicePort}/DigitalData/Services/Main" End If End Get End Property ' === Simple/Actual Config Properties === ' === Service Configuration === Public Property ServiceIP As String = String.Empty Public Property ServicePort As Integer = -1 Public Property HeartbeatInterval As Integer = 5000 ' === Logging Configuration Public Property LogDebug As Boolean = False ' === User Configuration === Public Property UserLanguage As String = "de-DE" End Class