Klasse Serialisieren aber nicht alles (Laufzeitvariablen)

20/04/2009 - 08:47 von Thomas Huebner | Report spam
Hi NG,

Ich habe irgendwie eine Blockade. Der untenstehende Code funktioniert
soweit. In der XML landet eine Auflistung von Variable1-3 (den
Serialisierungscode habe ich im Beispiel weggelassen)

Mein Problem ist nun, das ich in clsSetting Public Variablen oder
Properties brauche die _nicht_ serialisiert werden sollen. Diese
Variablen sollen nur zur Laufzeit benutzt und nicht im XML gespeichert
werden. <NonSerialized()> als Tag für die Laufzeitvariablen funktioniert
nicht, da clsSetting selbst nicht <Serializable()> ist. Wenn ich in
clsSetting über inherit eine clsRuntimeSetting Klasse einbinde wird
diese auch mit serialisiert.

Sicher gibt es eine einfache Lösung dafür - ich find sie blos nicht.

Danke für jeden Tipp,
Thomas


<Serializable()> Public Class clsAllSettings

Public Class clsSetting
Public Variable1 As String
Public Variable2 As String
Public Variable3 As String
End Class

Public Class clsSettings
Inherits CollectionBase

Default Public Property Item(ByVal index As Integer) _
As clsSetting
Get
Return CType(List(index), clsSetting)
End Get
Set(ByVal Value As clsSetting)
List(index) = Value
End Set
End Property

End Class

Private _Settings As New clsSettings
Public Property Settings() As clsSettings
Get
Return _Settings
End Get
Set(ByVal value As clsSettings)
_Settings = value
End Set
End Property
End Class
 

Lesen sie die antworten

#1 Thomas Hübner
20/04/2009 - 11:18 | Warnen spam
On 20 Apr., 09:08, Thorsten Doerfler
wrote:

Ich vermute, Du serialisierst über den XmlSerializer? In diesem Fall
müsstest Du m.W. das XmlIgnore Attribut für Eigenschaften/Felder
festlegen, die nicht serialisiert werden sollen.

Thorsten Dörfler



Danke Thorsten - funktioniert:

code:

Public Class clsSetting
Public Variable1 As String = "1"
Public Variable2 As String = "2"
Public Variable3 As String = "3"
<XmlIgnore()> Public Variable4 As String = "4"
End Class

erzeugt:

<?xml version="1.0"?>
<clsAllSettings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Settings>
<clsSetting>
<Variable1>1</Variable1>
<Variable2>2</Variable2>
<Variable3>3</Variable3>
</clsSetting>
</Settings>
</clsAllSettings>

Danke und Gruß,
Thomas

Ähnliche fragen