У меня есть программа Visual Basic .Net 2.0. Я перемещаю настройки из старого файла настроек в файл настроек программы app.config. Я пытаюсь сделать это как можно лучше.
Итак, я добавил свою настройку , как показано на этом рисунке .
На нагрузке я делаю это:
If My.Settings.databaseConnectionSettings Is Nothing Then
My.Settings.databaseConnectionSettings = New ArrayList()
End If
Это мой пользовательский класс:
Imports System.Xml.Serialization
<Serializable()> Public Class DatabaseConnectionSettings
Private _nickname As String = String.Empty
Private _username As String = String.Empty
Private _password As String = String.Empty
Private _database As String = String.Empty
Private _server As String = String.Empty
Private _ssl As Boolean
Public Sub New()
_nickname = ""
_username = ""
_password = ""
_database = ""
_server = ""
_ssl = False
End Sub
Public Sub New(ByVal nickname As String, ByVal username As String, _
ByVal password As String, ByVal database As String, _
ByVal server As String, ByVal ssl As Boolean)
_nickname = nickname
_username = username
_password = password
_database = database
_server = server
_ssl = ssl
End Sub
Public Property nickname() As String
Get
Return _nickname
End Get
Set(ByVal Value As String)
_nickname = Value
End Set
End Property
Public Property username() As String
Get
Return _username
End Get
Set(ByVal Value As String)
_username = Value
End Set
End Property
Public Property password() As String
Get
Return _password
End Get
Set(ByVal Value As String)
_password = Value
End Set
End Property
Public Property database() As String
Get
Return _database
End Get
Set(ByVal Value As String)
_database = Value
End Set
End Property
Public Property server() As String
Get
Return _server
End Get
Set(ByVal Value As String)
_server = Value
End Set
End Property
<XmlElementAttribute(ElementName:="ssl")> Public Property ssl() As Boolean
Get
Return _ssl
End Get
Set(ByVal Value As Boolean)
_ssl = Value
End Set
End Property
End Class
И вот как я это использую:
Dim databaseSettings As New DatabaseConnectionSettings( _
Me.txtNickName.Text, Me.txtUser.Text, Me.txtPass.Text, Me.txtData.Text, _
Me.txtServer.Text, Me.chkSSL.Checked)
'This statement will increment the arraylist count'
My.Settings.databaseConnectionSettings.Add(databaseSettings)
'This statement will save everything but the array list'
My.Settings.Save()
'This statement reloads everything, but the array list. The array list count after this goes to zero.'
My.Settings.Reload() 'If I remove this, program works fine until next run.'
Итак, вопрос в том, как мне получить этот массив моих баз данных DatabaseConnectionSettings, сохраненных в постоянном хранилище? Я хочу сделать это самым чистым способом. То есть я не хочу преобразовывать его в строку или сохранять в отдельный файл каждый раз, когда я хочу его использовать. Я хотел бы иметь возможность использовать метод доступа My.Settings.
Обратите внимание, что он работает отлично, за исключением того, что он не сохраняется в хранилище.