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.Reflection
|
||||||
Imports System.Xml.Serialization
|
Imports System.Xml.Serialization
|
||||||
Imports DigitalData.Modules.Config
|
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 Class ConfigManager(Of T)
|
||||||
Public Const USER_CONFIG_NAME As String = "UserConfig.xml"
|
Public Const USER_CONFIG_NAME As String = "UserConfig.xml"
|
||||||
Public Const COMPUTER_CONFIG_NAME As String = "ComputerConfig.xml"
|
Public Const COMPUTER_CONFIG_NAME As String = "ComputerConfig.xml"
|
||||||
Public Const APP_CONFIG_NAME As String = "AppConfig.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 _Logger As Logger
|
||||||
Private ReadOnly _File As FilesystemEx
|
Private ReadOnly _File As FilesystemEx
|
||||||
|
|
||||||
@@ -24,6 +30,7 @@ Public Class ConfigManager(Of T)
|
|||||||
Private ReadOnly _Blueprint As T
|
Private ReadOnly _Blueprint As T
|
||||||
Private ReadOnly _BlueprintType As Type
|
Private ReadOnly _BlueprintType As Type
|
||||||
Private ReadOnly _Serializer As XmlSerializer
|
Private ReadOnly _Serializer As XmlSerializer
|
||||||
|
Private _Config As T
|
||||||
|
|
||||||
Private ReadOnly _ExcludedAttributes = New List(Of Type) From {
|
Private ReadOnly _ExcludedAttributes = New List(Of Type) From {
|
||||||
GetType(ConnectionStringAttribute),
|
GetType(ConnectionStringAttribute),
|
||||||
@@ -59,6 +66,10 @@ Public Class ConfigManager(Of T)
|
|||||||
''' </summary>
|
''' </summary>
|
||||||
''' <returns></returns>
|
''' <returns></returns>
|
||||||
Public ReadOnly Property Config As T
|
Public ReadOnly Property Config As T
|
||||||
|
Get
|
||||||
|
Return _Config
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
''' <summary>
|
''' <summary>
|
||||||
''' Path to the current user config.
|
''' 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="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>
|
''' <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)
|
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>
|
''' <summary>
|
||||||
''' Creates a new ConfigManager with a single (user)config path
|
''' Creates a new ConfigManager with a single (user)config path
|
||||||
|
|||||||
Reference in New Issue
Block a user