diff --git a/Doc/doc.content b/Doc/doc.content
index a146c946..991d7d78 100644
--- a/Doc/doc.content
+++ b/Doc/doc.content
@@ -92,7 +92,7 @@
-
+
@@ -164,4 +164,4 @@
-
\ No newline at end of file
+
diff --git a/Src/Newtonsoft.Json.Tests/Serialization/JsonSerializerTest.cs b/Src/Newtonsoft.Json.Tests/Serialization/JsonSerializerTest.cs
index 35a00c5b..401bf60c 100644
--- a/Src/Newtonsoft.Json.Tests/Serialization/JsonSerializerTest.cs
+++ b/Src/Newtonsoft.Json.Tests/Serialization/JsonSerializerTest.cs
@@ -1085,6 +1085,20 @@ namespace Newtonsoft.Json.Tests.Serialization
Assert.AreEqual("1", s[0]);
Assert.AreEqual("2", s[1]);
}
+
+ [Test]
+ public void SerializeObservableCollection()
+ {
+ ObservableCollection c1 = new ObservableCollection { "1", "2" };
+
+ string output = JsonConvert.SerializeObject(c1);
+ Assert.AreEqual("[\"1\",\"2\"]", output);
+
+ ObservableCollection c2 = JsonConvert.DeserializeObject>(output);
+ Assert.AreEqual(2, c2.Count);
+ Assert.AreEqual("1", c2[0]);
+ Assert.AreEqual("2", c2[1]);
+ }
#endif
[Test]
diff --git a/Src/Newtonsoft.Json/Serialization/DefaultContractResolver.cs b/Src/Newtonsoft.Json/Serialization/DefaultContractResolver.cs
index fdd241dd..3c8171a0 100644
--- a/Src/Newtonsoft.Json/Serialization/DefaultContractResolver.cs
+++ b/Src/Newtonsoft.Json/Serialization/DefaultContractResolver.cs
@@ -868,7 +868,7 @@ namespace Newtonsoft.Json.Serialization
}
}
- private static bool IsConcurrentCollection(Type t)
+ private static bool IsConcurrentOrObservableCollection(Type t)
{
if (t.IsGenericType())
{
@@ -880,6 +880,7 @@ namespace Newtonsoft.Json.Serialization
case "System.Collections.Concurrent.ConcurrentStack`1":
case "System.Collections.Concurrent.ConcurrentBag`1":
case "System.Collections.Concurrent.ConcurrentDictionary`2":
+ case "System.Collections.ObjectModel.ObservableCollection`1":
return true;
}
}
@@ -890,7 +891,7 @@ namespace Newtonsoft.Json.Serialization
private static bool ShouldSkipDeserialized(Type t)
{
// ConcurrentDictionary throws an error in its OnDeserialized so ignore - http://json.codeplex.com/discussions/257093
- if (IsConcurrentCollection(t))
+ if (IsConcurrentOrObservableCollection(t))
{
return true;
}
@@ -907,7 +908,7 @@ namespace Newtonsoft.Json.Serialization
private static bool ShouldSkipSerializing(Type t)
{
- if (IsConcurrentCollection(t))
+ if (IsConcurrentOrObservableCollection(t))
{
return true;
}