diff --git a/Vocaluxe/Base/CConfig.cs b/Vocaluxe/Base/CConfig.cs
index 2c8cbd51..22e7286e 100644
--- a/Vocaluxe/Base/CConfig.cs
+++ b/Vocaluxe/Base/CConfig.cs
@@ -419,7 +419,7 @@ namespace Vocaluxe.Base
case "Language":
return "Game-Language";
case "SongFolder":
- return "SongFolder: SongFolder1, SongFolder2, SongFolder3, ...";
+ return "SongFolder: Add each song folder in a seperate SongFolder entry";
case "SongMenu":
return "SongMenu: " + CHelper.ListStrings(Enum.GetNames(typeof(ESongMenu)));
case "SongSorting":
diff --git a/VocaluxeLib/Xml/CXmlSerializer.cs b/VocaluxeLib/Xml/CXmlSerializer.cs
index c0db420d..c8ee2cc4 100644
--- a/VocaluxeLib/Xml/CXmlSerializer.cs
+++ b/VocaluxeLib/Xml/CXmlSerializer.cs
@@ -165,8 +165,14 @@ namespace VocaluxeLib.Xml
if (field.IsEmbeddedList)
{
IEnumerable values = (IEnumerable)value;
+ bool empty = true;
foreach (object subValue in values)
+ {
_WriteValue(writer, field.Name, field.SubType, subValue, field.IsAttribute);
+ empty = false;
+ }
+ if (empty && _WriteDefaults)
+ writer.WriteElementString(field.Name, "");
}
else if (field.IsByteArray)
writer.WriteElementString(field.Name, Convert.ToBase64String((byte[])value));
diff --git a/VocaluxeTests/XmlSerializerTest.cs b/VocaluxeTests/XmlSerializerTest.cs
index 56e45410..91605a7e 100644
--- a/VocaluxeTests/XmlSerializerTest.cs
+++ b/VocaluxeTests/XmlSerializerTest.cs
@@ -301,6 +301,11 @@ namespace VocaluxeTests
2
3
";
+ private const string _XmlListEmb4 = _Head + @"
+ 2
+
+ 3
+";
[TestMethod]
public void TestListEmbedded()
@@ -321,6 +326,10 @@ namespace VocaluxeTests
Assert.AreEqual(foo.Ints.Count, 0, "Deserialization failed");
res = ser.Serialize(foo);
Assert.AreEqual(_XmlListEmb3, res, "Serialization failed");
+ ser = new CXmlSerializer(true);
+ foo.Ints.Clear();
+ res = ser.Serialize(foo);
+ Assert.AreEqual(_XmlListEmb4, res, "Serialization failed");
_AssertFail(_Empty);
}
@@ -343,6 +352,10 @@ namespace VocaluxeTests
Assert.AreEqual(foo.Ints.Length, 0, "Deserialization failed");
res = ser.Serialize(foo);
Assert.AreEqual(_XmlListEmb3, res, "Serialization failed");
+ ser = new CXmlSerializer(true);
+ foo.Ints = new SEntry[0];
+ res = ser.Serialize(foo);
+ Assert.AreEqual(_XmlListEmb4, res, "Serialization failed");
_AssertFail(_Empty);
}