diff --git a/plist-cil.test/BinaryPropertyListWriterTests.cs b/plist-cil.test/BinaryPropertyListWriterTests.cs
index 5b6f9d0..22d54ac 100644
--- a/plist-cil.test/BinaryPropertyListWriterTests.cs
+++ b/plist-cil.test/BinaryPropertyListWriterTests.cs
@@ -53,5 +53,21 @@ namespace plistcil.test
writer.Write(root);
}
}
+
+ [Fact]
+ public void Roundtrip4Test()
+ {
+ byte[] data = File.ReadAllBytes("test-files/plist4.bin");
+ NSObject root = PropertyListParser.Parse(data);
+
+ using (MemoryStream actualOutput = new MemoryStream())
+ using (Stream expectedOutput = File.OpenRead("test-files/plist4.bin"))
+ using (ValidatingStream validatingStream = new ValidatingStream(actualOutput, expectedOutput))
+ {
+ BinaryPropertyListWriter writer = new BinaryPropertyListWriter(validatingStream);
+ writer.ReuseObjectIds = false;
+ writer.Write(root);
+ }
+ }
}
}
diff --git a/plist-cil.test/plist-cil.test.csproj b/plist-cil.test/plist-cil.test.csproj
index 72f6c01..cb0a71d 100644
--- a/plist-cil.test/plist-cil.test.csproj
+++ b/plist-cil.test/plist-cil.test.csproj
@@ -122,6 +122,9 @@
PreserveNewest
+
+ PreserveNewest
+
PreserveNewest
diff --git a/plist-cil.test/test-files/plist4.bin b/plist-cil.test/test-files/plist4.bin
new file mode 100644
index 0000000..0c1a127
Binary files /dev/null and b/plist-cil.test/test-files/plist4.bin differ
diff --git a/plist-cil/BinaryPropertyListWriter.cs b/plist-cil/BinaryPropertyListWriter.cs
index ceb24a9..4f14952 100644
--- a/plist-cil/BinaryPropertyListWriter.cs
+++ b/plist-cil/BinaryPropertyListWriter.cs
@@ -424,6 +424,7 @@ namespace Claunia.PropertyList
|| content == "NS.keys"
|| content == "NS.base"
|| content == "NS.relative"
+ || content == "NS.string"
|| content == "NSURL"
|| content == "NSDictionary"
|| content == "NSObject"