diff --git a/README.md b/README.md
index e5dec80..6278f40 100644
--- a/README.md
+++ b/README.md
@@ -174,4 +174,31 @@ oder nicht-normalen Parametern oder immer mit ausgegeben werden:
Die Markierung besonderer Parameter erfolgt in der Textdatei, aus der
das `zaaReloaded2.Thesaurus.Parameters` generiert wird (s.o.).
+
+## Serialisierung
+
+Um das Stil-Repositorium (`zaaReloaded2.Controller.SettingsRepository`)
+in den Assembly-Properties speichern zu können und für den Im- und
+Export von Stilen werden die in .NET eingebauten
+Serialisierungs-Strukturen genutzt. Weil es mit der Verwendung eines
+`XmlSerializer`s Probleme gab, weil der `XmlSerializer` nicht mit
+Interface-Eigenschaften umgehen kann, wurde zunächst für alle Klassen,
+die serialisiert werden müssen (`SettingsRepository`,
+`zaaReloaded2.Controller.Settings` und die von
+`zaaReloaded2.Controller.Elements.ElementBase` abgeleiteten Klassen) das
+Interface `ISerializable` implementiert. Das hat aber auch nicht dazu
+geführt, daß der `XmlSerializer` die Klassen serialisierte, so daß
+jetzt der `SoapFormatter` verwendet wird. Der stört sich nicht an
+Interface-Eigenschaften und produziert auch XML, wenngleich im etwas
+komplizierten [SOAP][]-Format.
+
+Um das `SettingsRepository` in den Assembly-Properties zu persistieren,
+muß das serialisierte XML noch in einen Base64-kodierten String
+umgewandelt werden, damit das SOAP-XML nicht mit dem XML der
+Assembly-Properties ins Gehege kommt (siehe
+`zaaReloaded2.Controller.SettingsRepository.Load()` und
+`zaaReloaded2.Controller.SettingsRepository.Store()`).
+
+[SOAP]: http://de.wikipedia.org/wiki/SOAP
+
diff --git a/zaaReloaded2/Controller/SettingsRepository.cs b/zaaReloaded2/Controller/SettingsRepository.cs
index 5f465f8..2bc9960 100755
--- a/zaaReloaded2/Controller/SettingsRepository.cs
+++ b/zaaReloaded2/Controller/SettingsRepository.cs
@@ -44,6 +44,19 @@ namespace zaaReloaded2.Controller
{
#region Properties persistence
+ ///
+ /// Loads the SettingsRepository instance that was persisted in
+ /// the assembly properties.
+ ///
+ /// SettingsRepository that was last stored in the
+ /// assembly properties, or a newly created SettingsRepository
+ /// if no previously stored exists.
+ ///
+ /// The SettingsRepository is serialized using a SoapFormatter, which
+ /// creates SOAP XML. Since the assembly properties are stored as
+ /// XML as well, the serialized SettingsRepository is converted to
+ /// a base-64 string, which does not mess with the properties XML.
+ ///
public static SettingsRepository Load()
{
string s = Properties.Settings.Default.SettingsRepository;
@@ -63,6 +76,15 @@ namespace zaaReloaded2.Controller
}
}
+ ///
+ /// Stores the SettingsRepository in the assembly properties.
+ ///
+ ///
+ /// The SettingsRepository is serialized using a SoapFormatter, which
+ /// creates SOAP XML. Since the assembly properties are stored as
+ /// XML as well, the serialized SettingsRepository is converted to
+ /// a base-64 string, which does not mess with the properties XML.
+ ///
public void Store()
{
MemoryStream stream = new MemoryStream();