Hallo
ich habe eine Klasse, die ein Settings-XML repräsentiert. In dieser Klasse sind alle Standardwerte für die EInstellungen definiert. Der Sinn der Sache ist, dass beim Initialisieren erstmal alle Settings ihren Standardwert erhalten, die dann durch die Werte in der XML beim Lesen der XML ersetzt werden. Wenn ein neues Setting hinzugekommen ist, das in der XML noch nicht vorhanden ist, dann soll der Standardwert verwendet werden. Das funktioniert eigentlich genauso wie geplant, ausser für List(Of). Wenn die Liste in der XML leer ist wird diese nicht verwendet, sprich die Standardeinstellunge nicht überschrieben.
Beim Lesen der XML wird nach oberem Beispiel nun
Warum ist das so?
EDIT: Mir ist gerade aufgefallen, dass es mit
ich habe eine Klasse, die ein Settings-XML repräsentiert. In dieser Klasse sind alle Standardwerte für die EInstellungen definiert. Der Sinn der Sache ist, dass beim Initialisieren erstmal alle Settings ihren Standardwert erhalten, die dann durch die Werte in der XML beim Lesen der XML ersetzt werden. Wenn ein neues Setting hinzugekommen ist, das in der XML noch nicht vorhanden ist, dann soll der Standardwert verwendet werden. Das funktioniert eigentlich genauso wie geplant, ausser für List(Of). Wenn die Liste in der XML leer ist wird diese nicht verwendet, sprich die Standardeinstellunge nicht überschrieben.
Dim test As New Settings()
erstellt nun das Objekt mit den Standardwerten.Beim Lesen der XML wird nach oberem Beispiel nun
ShowImage
auf false
gestellt, ImageCount
auf 2
, Language
bleibt "English_(en_US)"
da in der XML nicht definiert, aber ProfileList
wird nicht mir der leeren Liste überschrieben und die Standardwerte bleiben erhalten.Warum ist das so?
EDIT: Mir ist gerade aufgefallen, dass es mit
String()
anstelle von List(Of String)
funktionieren würde. Warum gibt es ein unterschiedliches Verhalten zwischen einem Array und einer List?Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „DanCooper“ ()