@@ -23,8 +23,20 @@ public static class UserProfile
2323 Serializable ,
2424 XmlRoot ( "UserProfile" )
2525 ]
26- private class Persistence
26+ public class Persisted
2727 {
28+ /// <summary>
29+ /// Die alte Art der Darstellung.
30+ /// </summary>
31+ [ Serializable ]
32+ public class Legacy
33+ {
34+ /// <summary>
35+ /// Der Name des Geräteprofils.
36+ /// </summary>
37+ public string ProfileName { get ; set ; }
38+ }
39+
2840 /// <summary>
2941 /// Der XML Namensraum, der für die serialisierte Form verwendet wird.
3042 /// </summary>
@@ -43,7 +55,32 @@ private class Persistence
4355 /// <summary>
4456 /// Das zugehörige Geräteprofil.
4557 /// </summary>
46- public string ProfileName { get ; set ; }
58+ public Legacy Profile { get ; set ; }
59+
60+ /// <summary>
61+ /// Der Name des zugehörigen Geräteprofils.
62+ /// </summary>
63+ [ XmlIgnore ]
64+ public string ProfileName
65+ {
66+ get
67+ {
68+ // Check profile
69+ var profile = Profile ;
70+ if ( profile == null )
71+ return null ;
72+ else
73+ return profile . ProfileName ;
74+ }
75+ set
76+ {
77+ // Update
78+ if ( string . IsNullOrEmpty ( value ) )
79+ Profile = null ;
80+ else
81+ Profile = new Legacy { ProfileName = value } ;
82+ }
83+ }
4784
4885 /// <summary>
4986 /// Meldet oder legt fest, ob die Auswahl des Geräteprofils immer angezeigt werden soll.
@@ -74,7 +111,7 @@ public void Save()
74111 /// Lädt die Vorgaben des aktuellen Anwenders.
75112 /// </summary>
76113 /// <returns>Die Vorgaben für diesen Anwender.</returns>
77- public static Persistence Load ( )
114+ public static Persisted Load ( )
78115 {
79116 // Get the user profile directory
80117 var profileDir = new DirectoryInfo ( Path . Combine ( Environment . GetFolderPath ( Environment . SpecialFolder . LocalApplicationData ) , "DVBNETProfiles" ) ) ;
@@ -86,26 +123,20 @@ public static Persistence Load()
86123 var profile = new FileInfo ( Path . Combine ( profileDir . FullName , "UserProfile.dup" ) ) ;
87124
88125 // The new profile
89- Persistence settings ;
126+ Persisted settings ;
90127
91128 // Load or create
92- if ( profile . Exists )
93- {
94- // Open
129+ if ( ! profile . Exists )
130+ settings = new Persisted ( ) ;
131+ else
95132 using ( var stream = new FileStream ( profile . FullName , FileMode . Open , FileAccess . Read , FileShare . Read ) )
96133 {
97134 // Create serializer
98- var serializer = new XmlSerializer ( typeof ( UserProfile ) , ProfileNamespace ) ;
135+ var serializer = new XmlSerializer ( typeof ( Persisted ) , ProfileNamespace ) ;
99136
100137 // Process
101- settings = ( Persistence ) serializer . Deserialize ( stream ) ;
138+ settings = ( Persisted ) serializer . Deserialize ( stream ) ;
102139 }
103- }
104- else
105- {
106- // Create new
107- settings = new Persistence ( ) ;
108- }
109140
110141 // Remember root
111142 settings . m_File = profile ;
@@ -118,7 +149,7 @@ public static Persistence Load()
118149 /// <summary>
119150 /// Die aktuelle Konfiguration.
120151 /// </summary>
121- private static Persistence m_Settings = Persistence . Load ( ) ;
152+ private static Persisted m_Settings = Persisted . Load ( ) ;
122153
123154 /// <summary>
124155 /// Speichert die Einstellungen des aktuellen Anwenders.
0 commit comments