| |

VB.NET - Ein- und UmsteigerUser-Settings in XML schreiben | |  | Autor: Schü | Datum: 02.02.10 09:49 |
| Hallo!
Habe ein kleines Problem: Ich habe eine Klasse SettingManager, die mir Programmeinstellungen in eine XML-Datei sichern soll. siehe http://msdn.microsoft.com/de-de/library/bb979386.aspx
Dabei war mein Hintergedanke, dass natürlich gewisse Voreinstellungen der Variablen (wie seinerzeit beim Lesen aus Ini-Dateien) vorgegeben werden sollen, falls die Setting.Xml noch nicht existiert, oder weitere Optionen hinzukommen.
Hier das Listing:
Imports System.IO
Imports System.Xml.Serialization
Imports System.Environment
Imports Microsoft.Win32
<Serializable()> Public Class UserSettings
Public Oberfläche As optOberfläche
Public Benennung As optBenennung
Public DBPrüfen As Boolean = True
Public Sub New()
Oberfläche = New optOberfläche
Benennung = New optBenennung
Edit = New optEdit
End Sub
End Class
Public Class SettingManager
Public Shared Function Save(ByVal mySettings As UserSettings, ByVal _
FileName As String) As Boolean
Dim configFile As Stream = Nothing
Try
'Verzeichnis erstellen, falls nicht vorhanden...
Dim d As New DirectoryInfo(Path.GetDirectoryName(FileName))
d.Create()
Dim xs As New XmlSerializer(GetType(UserSettings))
If IO.File.Exists(FileName) Then IO.File.Delete(FileName)
configFile = IO.File.Open(FileName, FileMode.Create, _
FileAccess.Write)
xs.Serialize(configFile, mySettings)
Return True
Catch ex As Exception
Return False
Finally
If Not IsNothing(configFile) Then configFile.Close()
End Try
End Function
Public Shared Function Load(ByVal FileName As String) As UserSettings
Dim configFile As Stream = Nothing
Dim mSetting As UserSettings = Nothing
Try
'Verzeichnis erstellen, falls nicht vorhanden...
Dim d As New DirectoryInfo(Path.GetDirectoryName(FileName))
d.Create()
If IO.File.Exists(FileName) Then
Dim xs As New XmlSerializer(GetType(UserSettings))
configFile = IO.File.Open(FileName, FileMode.Open, _
FileAccess.Read)
mSetting = DirectCast(xs.Deserialize(configFile), UserSettings)
Else
mSetting = New UserSettings
End If
Return mSetting
Catch ex As Exception
mSetting = New UserSettings
Return mSetting
Finally
If Not IsNothing(configFile) Then configFile.Close()
End Try
End Function
End Class
Public Class optBenennung
Public Files() As String
Public iFiles As Integer = 0
Public Splitter As List(Of String)
Friend Sub Reset()
ReDim Files(0 To 8)
Files(0) = "%i - %t"
Files(1) = "%i - %r - %t"
Files(2) = "%cd%r - %i - %t"
Files(3) = "%r - %t"
Files(4) = "%i - %lfdnr %t"
Files(5) = "%i - %t %lfdnr"
Files(6) = "%i - %r %t"
Files(7) = "%i - %cd%r %t"
Files(8) = "%cd%r %i - %t"
iFiles = 9
Splitter = New List(Of String)
With Splitter
.Clear()
.Add(" CD")
.Add(" DVD")
.Add(" Disk")
.Add(" Disc")
End With
End Sub
Public Sub New()
Reset()
End Sub
End Class
Public Class optOberfläche
Public Color_Found_DB As Integer = Color.Green.ToArgb
Public Color_Not_Found_DB As Integer = Color.Red.ToArgb
End Class Das geht soweit ganz gut.
Leider wird bei mir bei jedem Lade/Speichervorgang die Variable Splitter in UserSettings.Benennung
um 4 Strings erhöht. Das sieht dann in der XML-Datei etwa so aus:
<Splitter>
<string> CD</string>
<string> DVD</string>
<string> Disk</string>
<string> Disc</string>
<string> CD</string>
<string> DVD</string>
<string> Disk</string>
<string> Disc</string>
<string> CD</string>
<string> DVD</string>
<string> Disk</string>
<string> Disc</string>
<string> CD</string>
<string> DVD</string>
<string> Disk</string>
<string> Disc</string>
<string> CD</string>
<string> DVD</string>
<string> Disk</string>
<string> Disc</string>
<string> CD</string>
<string> DVD</string>
<string> Disk</string>
<string> Disc</string>
<string> CD</string>
<string> DVD</string>
<string> Disk</string>
<string> Disc</string>
</Splitter>
Ich kann das irgendwie nicht abstellen.
Was mache ich falsch?
Schü |  |
 | Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
  |
|
Neu! sevEingabe 3.0 
Einfach stark!
Ein einziges Eingabe-Control für alle benötigten Eingabetypen und -formate, inkl. Kalender-, Taschenrechner und Floskelfunktion, mehrspaltige ComboBox mit DB-Anbindung, ImageComboBox u.v.m. Weitere InfosTipp des Monats Oktober 2025 Matthias KozlowskiUmlaute konvertierenErsetzt die Umlaute in einer Zeichenkette durch die entsprechenden Doppelbuchstaben (aus ä wird ae, usw.) Access-Tools Vol.1 
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|
|
|
Copyright ©2000-2025 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|