List Of(EigeneKlasse) in My.Settings abspeichern

18/12/2008 - 10:16 von Frank Müller | Report spam
Hallo,

wie kann man eine Liste von eigenen Objekten (List Of(Klasse)) in
My.Settings (Benutzereinstellungen) abspeichern und wieder laden?

Ich bin auf das Beispiel unter http://dzaebel.net/SettingsExample2.htm
in C# gestoßen, nur bekomme ich das nicht in VB.NET hin.

Kann jemand weiterhelfen?

Danke.

Frank
 

Lesen sie die antworten

#1 Elmar Boye
18/12/2008 - 11:59 | Warnen spam
Hallo Frank,

Frank Müller schrieb:
wie kann man eine Liste von eigenen Objekten (List Of(Klasse)) in
My.Settings (Benutzereinstellungen) abspeichern und wieder laden?

Ich bin auf das Beispiel unter http://dzaebel.net/SettingsExample2.htm
in C# gestoßen, nur bekomme ich das nicht in VB.NET hin.



Gehen tut es schon.
Nur ist die Lösung von Frank IMHO auch unter C# etwas fragil -
hier vergaß er nach einer Kompilierung, das List<> Element,
wie Frank das eingeben konnte, ist mir etwas schleierhaft
(richtiger wàre mindestens System.Collections.Generic.List<...>

Eine stabilere Lösung wàre eine eigene Collection anstatt
List(Of Daten) zu verwenden, unten exemplarisch gezeigt.

Wenn Du die Auflistung im gleichen Projekt hast, mußt Du sie
ggf. einmal entladen, da sonst der Designer die Klasse nicht
findet. Besser ist es, sie in ein eigene Assembly zu legen.

Danach sollte das von Frank beschriebene Vorgehen klappen,
wenn man bei Typ eingibt
<Namespace im Projekt>.DatenCollection
(auswàhlen kann man es anfangs nicht)

Beim Rest des Beispiels ist zu beachten, dass C# als
Namespace RootNamespace.Properties verwendet,
wohingegen VB My.Settings verwendet.

Ein alternativer Ansatz wàre
<URL:http://www.codinghorror.com/blog/ar...1.html>
oder das dort auch erwàhnte
<URL:http://weblogs.asp.net/sweinstein/a...9.aspx>
wenn man keinen eigenen ConfigurationSectionHandler schreiben
will.


Gruß Elmar

<Serializable()> _
Public Class DatenCollection
Inherits System.Collections.ObjectModel.Collection(Of Daten)
End Class

<Serializable()> _
Public Class Daten
Private _id As Integer
Private _value As String

Public Property Id() As Integer
Get
Return _id
End Get
Set(ByVal value As Integer)
_id = value
End Set
End Property

Public Property Value() As String
Get
Return _value
End Get
Set(ByVal value As String)
_value = value
End Set
End Property

Public Overrides Function ToString() As String
Return "[Id=" & Me.Id & ", Value=" & Me.Value & "]"
End Function
End Class

Ähnliche fragen