Endgültige Änderungen für Schritt „Upgrade Config\Config.vbproj“ speichern
This commit is contained in:
@@ -2,13 +2,19 @@
|
||||
Imports System.Reflection
|
||||
Imports System.Xml.Serialization
|
||||
Imports DigitalData.Modules.Config
|
||||
Imports DigitalData.Modules.Base
|
||||
Imports ConnectionStringAttribute = DigitalData.Modules.Config.ConfigAttributes.ConnectionStringAttribute
|
||||
Imports ConnectionStringAppServerAttribute = DigitalData.Modules.Config.ConfigAttributes.ConnectionStringAppServerAttribute
|
||||
Imports ConnectionStringTestAttribute = DigitalData.Modules.Config.ConfigAttributes.ConnectionStringTestAttribute
|
||||
Imports EDMIAppServerAttribute = DigitalData.Modules.Config.ConfigAttributes.EDMIAppServerAttribute
|
||||
Imports GlobalSettingAttribute = DigitalData.Modules.Config.ConfigAttributes.GlobalSettingAttribute
|
||||
|
||||
Public Class ConfigManager(Of T)
|
||||
Public Const USER_CONFIG_NAME As String = "UserConfig.xml"
|
||||
Public Const COMPUTER_CONFIG_NAME As String = "ComputerConfig.xml"
|
||||
Public Const APP_CONFIG_NAME As String = "AppConfig.xml"
|
||||
|
||||
' Private ReadOnly _LogConfig As LogConfig
|
||||
Private ReadOnly _LogConfig As LogConfig
|
||||
Private ReadOnly _Logger As Logger
|
||||
Private ReadOnly _File As FilesystemEx
|
||||
|
||||
@@ -24,6 +30,7 @@ Public Class ConfigManager(Of T)
|
||||
Private ReadOnly _Blueprint As T
|
||||
Private ReadOnly _BlueprintType As Type
|
||||
Private ReadOnly _Serializer As XmlSerializer
|
||||
Private _Config As T
|
||||
|
||||
Private ReadOnly _ExcludedAttributes = New List(Of Type) From {
|
||||
GetType(ConnectionStringAttribute),
|
||||
@@ -59,6 +66,10 @@ Public Class ConfigManager(Of T)
|
||||
''' </summary>
|
||||
''' <returns></returns>
|
||||
Public ReadOnly Property Config As T
|
||||
Get
|
||||
Return _Config
|
||||
End Get
|
||||
End Property
|
||||
|
||||
''' <summary>
|
||||
''' Path to the current user config.
|
||||
@@ -100,6 +111,38 @@ Public Class ConfigManager(Of T)
|
||||
''' <param name="ApplicationStartupPath">The path to check for a third config file. This is useful when running the Application in an environment where AppData/ProgramData directories are not available</param>
|
||||
''' <param name="ForceUserConfig">Override values from ComputerConfig with UserConfig</param>
|
||||
Public Sub New(LogConfig As LogConfig, UserConfigPath As String, ComputerConfigPath As String, Optional ApplicationStartupPath As String = "", Optional ForceUserConfig As Boolean = False)
|
||||
If LogConfig Is Nothing Then Throw New ArgumentNullException(NameOf(LogConfig))
|
||||
If String.IsNullOrWhiteSpace(UserConfigPath) Then Throw New ArgumentException("UserConfigPath must be provided", NameOf(UserConfigPath))
|
||||
|
||||
_LogConfig = LogConfig
|
||||
_Logger = LogConfig.GetLogger()
|
||||
_File = New FilesystemEx(_LogConfig)
|
||||
|
||||
_Blueprint = Activator.CreateInstance(Of T)()
|
||||
_BlueprintType = _Blueprint.GetType()
|
||||
_Serializer = New XmlSerializer(_BlueprintType)
|
||||
|
||||
_UserDirectory = _File.CreateDirectory(UserConfigPath)
|
||||
_UserConfigPath = Path.Combine(_UserDirectory, USER_CONFIG_NAME)
|
||||
|
||||
If Not String.IsNullOrWhiteSpace(ComputerConfigPath) Then
|
||||
If IO.File.Exists(ComputerConfigPath) Then
|
||||
_ComputerDirectory = _File.CreateDirectory(ComputerConfigPath, False)
|
||||
Else
|
||||
_ComputerDirectory = ComputerConfigPath
|
||||
End If
|
||||
_ComputerConfigPath = Path.Combine(_ComputerDirectory, COMPUTER_CONFIG_NAME)
|
||||
End If
|
||||
|
||||
_AppConfigDirectory = ApplicationStartupPath
|
||||
If Not String.IsNullOrWhiteSpace(ApplicationStartupPath) Then
|
||||
_AppConfigPath = Path.Combine(ApplicationStartupPath, APP_CONFIG_NAME)
|
||||
End If
|
||||
|
||||
_WriteAllValuesToUserConfig = ForceUserConfig
|
||||
|
||||
_Config = LoadConfig()
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' Creates a new ConfigManager with a single (user)config path
|
||||
|
||||
Reference in New Issue
Block a user