diff --git a/Build/build.ps1 b/Build/build.ps1 index 02e306af..a5161547 100644 --- a/Build/build.ps1 +++ b/Build/build.ps1 @@ -19,9 +19,10 @@ $builds = @( @{Name = "Newtonsoft.Json"; TestsName = "Newtonsoft.Json.Tests"; Constants=""; FinalDir="Net45"; NuGetDir = "net45"; Framework="net-4.0"; Sign=$true}, @{Name = "Newtonsoft.Json.Portable"; TestsName = "Newtonsoft.Json.Tests.Portable"; Constants="PORTABLE"; FinalDir="Portable"; NuGetDir = "portable-net45+sl5+windowsphone8+win8"; Framework="net-4.0"; Sign=$true}, + @{Name = "Newtonsoft.Json.Portable40"; TestsName = "Newtonsoft.Json.Tests.Portable40"; Constants="PORTABLE40"; FinalDir="Portable40"; NuGetDir = "portable-net40+sl4+wp7+win8"; Framework="net-4.0"; Sign=$true}, @{Name = "Newtonsoft.Json.WinRT"; TestsName = $null; Constants="NETFX_CORE"; FinalDir="WinRT"; NuGetDir = "netcore45"; Framework="net-4.5"; Sign=$true}, @{Name = "Newtonsoft.Json.WindowsPhone"; TestsName = $null; Constants="SILVERLIGHT;WINDOWS_PHONE"; FinalDir="WindowsPhone"; NuGetDir = "windowsphone8"; Framework="net-4.0"; Sign=$true}, - @{Name = "Newtonsoft.Json.Silverlight"; TestsName = "Newtonsoft.Json.Tests.Silverlight"; Constants="SILVERLIGHT"; FinalDir="Silverlight"; NuGetDir = "sl5"; Framework="net-4.0"; Sign=$true}, + #@{Name = "Newtonsoft.Json.Silverlight"; TestsName = "Newtonsoft.Json.Tests.Silverlight"; Constants="SILVERLIGHT"; FinalDir="Silverlight"; NuGetDir = "sl5"; Framework="net-4.0"; Sign=$true}, @{Name = "Newtonsoft.Json.Net40"; TestsName = "Newtonsoft.Json.Tests.Net40"; Constants="NET40"; FinalDir="Net40"; NuGetDir = "net40"; Framework="net-4.0"; Sign=$true}, @{Name = "Newtonsoft.Json.Net35"; TestsName = "Newtonsoft.Json.Tests.Net35"; Constants="NET35"; FinalDir="Net35"; NuGetDir = "net35"; Framework="net-2.0"; Sign=$true}, @{Name = "Newtonsoft.Json.Net20"; TestsName = "Newtonsoft.Json.Tests.Net20"; Constants="NET20"; FinalDir="Net20"; NuGetDir = "net20"; Framework="net-2.0"; Sign=$true} diff --git a/Doc/versions.txt b/Doc/versions.txt index 7ecb9e25..cc0a32f0 100644 --- a/Doc/versions.txt +++ b/Doc/versions.txt @@ -2,33 +2,33 @@ Versions: Json.NET comes in different versions for the various .NET frameworks. +-Net45: + .NET latest (4.5) + -Net40: - .NET latest (4.0 & 4.5) + .NET 4.0 -Net35: - .NET 3.5 SP1 + .NET 3.5 -Net20: .NET 2.0 --Silverlight: - Silverlight 4 & 5 - -WindowsPhone: - Windows Phone 7 & 7.1 + Windows Phone 8 -WinRT: - Windows 8 Store, WinRT 4.5 + Windows 8 Store --Portable: - .NET 4.0, Silverlight 4, Windows Phone 7, WinRT 4.5 +-Portable45: + .NET 4.5, Windows Phone 8, Windows 8 Store + +-Portable40: + .NET 4.0, Windows Phone 7, Windows 8 Store, Silverlight 4 Notes: -The Silverlight and Windows Phone builds are not strong-named. -Use the assemblies in the Signed sub-directories for the strong-named versions. - Microsoft stopped support for the Compact Framework in Visual Studio 2010. For a Compact Framework 3.5 build download Json.NET 3.5. diff --git a/Src/Newtonsoft.Json.Tests/Bson/BsonReaderTests.cs b/Src/Newtonsoft.Json.Tests/Bson/BsonReaderTests.cs index 3c4aba94..068489f0 100644 --- a/Src/Newtonsoft.Json.Tests/Bson/BsonReaderTests.cs +++ b/Src/Newtonsoft.Json.Tests/Bson/BsonReaderTests.cs @@ -1365,7 +1365,7 @@ namespace Newtonsoft.Json.Tests.Bson } #endif -#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE) +#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE || PORTABLE40) public class BigIntegerTestClass { public BigInteger Blah { get; set; } diff --git a/Src/Newtonsoft.Json.Tests/Bson/BsonWriterTests.cs b/Src/Newtonsoft.Json.Tests/Bson/BsonWriterTests.cs index 67ecc15b..159c3de9 100644 --- a/Src/Newtonsoft.Json.Tests/Bson/BsonWriterTests.cs +++ b/Src/Newtonsoft.Json.Tests/Bson/BsonWriterTests.cs @@ -698,7 +698,7 @@ namespace Newtonsoft.Json.Tests.Bson Assert.AreEqual("10-00-00-00-09-30-00-C8-88-07-6B-DC-00-00-00-00", (BitConverter.ToString(ms.ToArray()))); } -#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE) +#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE || PORTABLE40) [Test] public void WriteBigInteger() { diff --git a/Src/Newtonsoft.Json.Tests/Converters/BinaryConverterTests.cs b/Src/Newtonsoft.Json.Tests/Converters/BinaryConverterTests.cs index b0ce3553..4e784976 100644 --- a/Src/Newtonsoft.Json.Tests/Converters/BinaryConverterTests.cs +++ b/Src/Newtonsoft.Json.Tests/Converters/BinaryConverterTests.cs @@ -54,7 +54,7 @@ namespace Newtonsoft.Json.Tests.Converters public byte[] NullByteArray { get; set; } } -#if !(SILVERLIGHT || NET20 || NETFX_CORE || PORTABLE) +#if !(SILVERLIGHT || NET20 || NETFX_CORE || PORTABLE || PORTABLE40) [Test] public void DeserializeBinaryClass() { @@ -120,7 +120,7 @@ namespace Newtonsoft.Json.Tests.Converters }", json); } -#if !(SILVERLIGHT || NETFX_CORE || PORTABLE) +#if !(SILVERLIGHT || NETFX_CORE || PORTABLE || PORTABLE40) public class SqlBinaryClass { public SqlBinary SqlBinary { get; set; } diff --git a/Src/Newtonsoft.Json.Tests/Converters/DataSetConverterTests.cs b/Src/Newtonsoft.Json.Tests/Converters/DataSetConverterTests.cs index 9811095e..340281d6 100644 --- a/Src/Newtonsoft.Json.Tests/Converters/DataSetConverterTests.cs +++ b/Src/Newtonsoft.Json.Tests/Converters/DataSetConverterTests.cs @@ -23,7 +23,7 @@ // OTHER DEALINGS IN THE SOFTWARE. #endregion -#if !(SILVERLIGHT || NETFX_CORE || PORTABLE) +#if !(SILVERLIGHT || NETFX_CORE || PORTABLE || PORTABLE40) using System; using Newtonsoft.Json.Converters; #if !NETFX_CORE diff --git a/Src/Newtonsoft.Json.Tests/Converters/DataTableConverterTests.cs b/Src/Newtonsoft.Json.Tests/Converters/DataTableConverterTests.cs index f223a6cb..69220af7 100644 --- a/Src/Newtonsoft.Json.Tests/Converters/DataTableConverterTests.cs +++ b/Src/Newtonsoft.Json.Tests/Converters/DataTableConverterTests.cs @@ -23,7 +23,7 @@ // OTHER DEALINGS IN THE SOFTWARE. #endregion -#if !(SILVERLIGHT || NETFX_CORE || PORTABLE) +#if !(SILVERLIGHT || NETFX_CORE || PORTABLE || PORTABLE40) using System; #if !NETFX_CORE using System.Collections.Generic; diff --git a/Src/Newtonsoft.Json.Tests/Converters/ExpandoObjectConverterTests.cs b/Src/Newtonsoft.Json.Tests/Converters/ExpandoObjectConverterTests.cs index 2d328f49..41c3f26e 100644 --- a/Src/Newtonsoft.Json.Tests/Converters/ExpandoObjectConverterTests.cs +++ b/Src/Newtonsoft.Json.Tests/Converters/ExpandoObjectConverterTests.cs @@ -23,7 +23,7 @@ // OTHER DEALINGS IN THE SOFTWARE. #endregion -#if !(NET35 || NET20) +#if !(NET35 || NET20 || PORTABLE40) using System; using System.Collections.Generic; diff --git a/Src/Newtonsoft.Json.Tests/Converters/XmlNodeConverterTest.cs b/Src/Newtonsoft.Json.Tests/Converters/XmlNodeConverterTest.cs index 3f386471..c6278a2f 100644 --- a/Src/Newtonsoft.Json.Tests/Converters/XmlNodeConverterTest.cs +++ b/Src/Newtonsoft.Json.Tests/Converters/XmlNodeConverterTest.cs @@ -23,7 +23,7 @@ // OTHER DEALINGS IN THE SOFTWARE. #endregion -#if !(SILVERLIGHT || NETFX_CORE || PORTABLE) +#if !(SILVERLIGHT || NETFX_CORE || PORTABLE || PORTABLE40) using System; using System.Collections.Generic; using Newtonsoft.Json.Tests.Serialization; diff --git a/Src/Newtonsoft.Json.Tests/JsonConvertTest.cs b/Src/Newtonsoft.Json.Tests/JsonConvertTest.cs index 03ffaca1..b8f30e51 100644 --- a/Src/Newtonsoft.Json.Tests/JsonConvertTest.cs +++ b/Src/Newtonsoft.Json.Tests/JsonConvertTest.cs @@ -242,7 +242,7 @@ now brown cow?", '"', true); value = null; Assert.AreEqual("null", JsonConvert.ToString(value)); -#if !(NETFX_CORE || PORTABLE) +#if !(NETFX_CORE || PORTABLE || PORTABLE40) value = DBNull.Value; Assert.AreEqual("null", JsonConvert.ToString(value)); #endif @@ -636,7 +636,7 @@ now brown cow?", '"', true); return (T)converter.ReadJson(reader, typeof(T), null, null); } -#if !(NET20 || NET35 || SILVERLIGHT) +#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE40) [Test] public void Async() { diff --git a/Src/Newtonsoft.Json.Tests/JsonValidatingReaderTests.cs b/Src/Newtonsoft.Json.Tests/JsonValidatingReaderTests.cs index 07d684fe..7167adf6 100644 --- a/Src/Newtonsoft.Json.Tests/JsonValidatingReaderTests.cs +++ b/Src/Newtonsoft.Json.Tests/JsonValidatingReaderTests.cs @@ -352,7 +352,7 @@ namespace Newtonsoft.Json.Tests Assert.IsNotNull(validationEventArgs); } -#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE) +#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE || PORTABLE40) [Test] public void IntegerGreaterThanMaximumValue_BigInteger() { @@ -606,7 +606,7 @@ namespace Newtonsoft.Json.Tests Assert.IsNotNull(validationEventArgs); } -#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE) +#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE || PORTABLE40) [Test] public void BigIntegerDivisibleBy_Success() { diff --git a/Src/Newtonsoft.Json.Tests/Linq/ComponentModel/BindingTests.cs b/Src/Newtonsoft.Json.Tests/Linq/ComponentModel/BindingTests.cs index 1e22addf..3fd6268d 100644 --- a/Src/Newtonsoft.Json.Tests/Linq/ComponentModel/BindingTests.cs +++ b/Src/Newtonsoft.Json.Tests/Linq/ComponentModel/BindingTests.cs @@ -23,7 +23,7 @@ // OTHER DEALINGS IN THE SOFTWARE. #endregion -#if !(SILVERLIGHT || NETFX_CORE || PORTABLE) +#if !(SILVERLIGHT || NETFX_CORE || PORTABLE || PORTABLE40) using NUnit.Framework; using System.Web.UI; using Newtonsoft.Json.Linq; diff --git a/Src/Newtonsoft.Json.Tests/Linq/ComponentModel/JPropertyDescriptorTests.cs b/Src/Newtonsoft.Json.Tests/Linq/ComponentModel/JPropertyDescriptorTests.cs index 41aaf4b4..eaec5565 100644 --- a/Src/Newtonsoft.Json.Tests/Linq/ComponentModel/JPropertyDescriptorTests.cs +++ b/Src/Newtonsoft.Json.Tests/Linq/ComponentModel/JPropertyDescriptorTests.cs @@ -23,7 +23,7 @@ // OTHER DEALINGS IN THE SOFTWARE. #endregion -#if !(SILVERLIGHT || NETFX_CORE || PORTABLE) +#if !(SILVERLIGHT || NETFX_CORE || PORTABLE || PORTABLE40) using NUnit.Framework; using Newtonsoft.Json.Linq; diff --git a/Src/Newtonsoft.Json.Tests/Linq/DynamicTests.cs b/Src/Newtonsoft.Json.Tests/Linq/DynamicTests.cs index 70c4a6be..a8ca0041 100644 --- a/Src/Newtonsoft.Json.Tests/Linq/DynamicTests.cs +++ b/Src/Newtonsoft.Json.Tests/Linq/DynamicTests.cs @@ -23,7 +23,7 @@ // OTHER DEALINGS IN THE SOFTWARE. #endregion -#if !(NET35 || NET20) +#if !(NET35 || NET20 || PORTABLE40) using System; using System.Collections.Generic; using System.Dynamic; diff --git a/Src/Newtonsoft.Json.Tests/Linq/JArrayTests.cs b/Src/Newtonsoft.Json.Tests/Linq/JArrayTests.cs index eefff4f4..54bee3ef 100644 --- a/Src/Newtonsoft.Json.Tests/Linq/JArrayTests.cs +++ b/Src/Newtonsoft.Json.Tests/Linq/JArrayTests.cs @@ -477,7 +477,7 @@ Parameter name: index", } -#if !(SILVERLIGHT || NETFX_CORE || PORTABLE) +#if !(SILVERLIGHT || NETFX_CORE || PORTABLE || PORTABLE40) [Test] public void ITypedListGetItemProperties() { diff --git a/Src/Newtonsoft.Json.Tests/Linq/JObjectTests.cs b/Src/Newtonsoft.Json.Tests/Linq/JObjectTests.cs index 4df563d6..90578582 100644 --- a/Src/Newtonsoft.Json.Tests/Linq/JObjectTests.cs +++ b/Src/Newtonsoft.Json.Tests/Linq/JObjectTests.cs @@ -686,7 +686,7 @@ Parameter name: arrayIndex", Assert.AreEqual(p4, l[1]); } -#if !(SILVERLIGHT || NET20 || NETFX_CORE || PORTABLE) +#if !(SILVERLIGHT || NET20 || NETFX_CORE || PORTABLE || PORTABLE40) [Test] public void PropertyChanging() { @@ -1243,7 +1243,7 @@ Parameter name: arrayIndex", }); } -#if !(SILVERLIGHT || NETFX_CORE || PORTABLE) +#if !(SILVERLIGHT || NETFX_CORE || PORTABLE || PORTABLE40) [Test] public void IBindingListSortDirection() { @@ -1446,7 +1446,7 @@ Parameter name: arrayIndex", } #endif -#if SILVERLIGHT || !(NET20 || NET35) +#if SILVERLIGHT || !(NET20 || NET35 || PORTABLE40) [Test] public void CollectionChanged() { @@ -1576,7 +1576,7 @@ Parameter name: arrayIndex", Assert.AreEqual("Name2", value); } -#if !(NETFX_CORE || PORTABLE) +#if !(NETFX_CORE || PORTABLE || PORTABLE40) [Test] public void WriteObjectNullDBNullValue() { @@ -1632,7 +1632,7 @@ Parameter name: arrayIndex", }); } -#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE) +#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE || PORTABLE40) [Test] public void NumberTooBigForInt64() { @@ -1707,7 +1707,7 @@ Parameter name: arrayIndex", }); } -#if !(SILVERLIGHT || NETFX_CORE || PORTABLE) +#if !(SILVERLIGHT || NETFX_CORE || PORTABLE || PORTABLE40) [Test] public void GetProperties() { diff --git a/Src/Newtonsoft.Json.Tests/Linq/JPropertyTests.cs b/Src/Newtonsoft.Json.Tests/Linq/JPropertyTests.cs index 724f97ab..1d5365e7 100644 --- a/Src/Newtonsoft.Json.Tests/Linq/JPropertyTests.cs +++ b/Src/Newtonsoft.Json.Tests/Linq/JPropertyTests.cs @@ -56,7 +56,7 @@ namespace Newtonsoft.Json.Tests.Linq Assert.AreEqual(p, p.Value.Parent); } -#if !(SILVERLIGHT || NETFX_CORE || PORTABLE) +#if !(SILVERLIGHT || NETFX_CORE || PORTABLE || PORTABLE40) [Test] public void ListChanged() { diff --git a/Src/Newtonsoft.Json.Tests/Linq/JTokenTests.cs b/Src/Newtonsoft.Json.Tests/Linq/JTokenTests.cs index 762f23c5..1221ee31 100644 --- a/Src/Newtonsoft.Json.Tests/Linq/JTokenTests.cs +++ b/Src/Newtonsoft.Json.Tests/Linq/JTokenTests.cs @@ -348,7 +348,7 @@ namespace Newtonsoft.Json.Tests.Linq Assert.AreEqual(5, (int)(new JValue(StringComparison.OrdinalIgnoreCase))); -#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE) +#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE || PORTABLE40) string bigIntegerText = "1234567899999999999999999999999999999999999999999999999999999999999990"; Assert.AreEqual(BigInteger.Parse(bigIntegerText), (BigInteger)(new JValue(bigIntegerText))); @@ -424,7 +424,7 @@ namespace Newtonsoft.Json.Tests.Linq #endif ExceptionAssert.Throws("Can not convert Boolean to Uri.", () => { var i = (Uri)new JValue(true); }); -#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE) +#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE || PORTABLE40) ExceptionAssert.Throws("Can not convert Uri to BigInteger.", () => { var i = (BigInteger)new JValue(new Uri("http://www.google.com")); }); ExceptionAssert.Throws("Can not convert Null to BigInteger.", () => { var i = (BigInteger)new JValue((object)null); }); ExceptionAssert.Throws("Can not convert Guid to BigInteger.", () => { var i = (BigInteger)new JValue(Guid.NewGuid()); }); @@ -488,7 +488,7 @@ namespace Newtonsoft.Json.Tests.Linq Assert.IsTrue(JToken.DeepEquals(new JValue((DateTimeOffset?)null), (JValue)(DateTimeOffset?)null)); #endif -#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE) +#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE || PORTABLE40) Assert.IsTrue(JToken.DeepEquals(new JValue(new BigInteger(1)), (JValue)new BigInteger(1))); Assert.IsTrue(JToken.DeepEquals(new JValue((BigInteger?)null), (JValue)(BigInteger?)null)); #endif @@ -926,7 +926,7 @@ namespace Newtonsoft.Json.Tests.Linq Assert.IsTrue(a.DeepEquals(a2)); } -#if !(SILVERLIGHT || NETFX_CORE || PORTABLE) +#if !(SILVERLIGHT || NETFX_CORE || PORTABLE || PORTABLE40) [Test] public void Clone() { diff --git a/Src/Newtonsoft.Json.Tests/Linq/JValueTests.cs b/Src/Newtonsoft.Json.Tests/Linq/JValueTests.cs index 4d2f36cf..96c0ae9b 100644 --- a/Src/Newtonsoft.Json.Tests/Linq/JValueTests.cs +++ b/Src/Newtonsoft.Json.Tests/Linq/JValueTests.cs @@ -86,7 +86,7 @@ namespace Newtonsoft.Json.Tests.Linq Assert.AreEqual("Pie", v.Value); Assert.AreEqual(JTokenType.String, v.Type); -#if !(NETFX_CORE || PORTABLE) +#if !(NETFX_CORE || PORTABLE || PORTABLE40) v.Value = DBNull.Value; Assert.AreEqual(DBNull.Value, v.Value); Assert.AreEqual(JTokenType.Null, v.Type); @@ -115,7 +115,7 @@ namespace Newtonsoft.Json.Tests.Linq Assert.AreEqual(g, v.Value); Assert.AreEqual(JTokenType.Guid, v.Type); -#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE) +#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE || PORTABLE40) BigInteger i = BigInteger.Parse("123456789999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999990"); v.Value = i; Assert.AreEqual(i, v.Value); @@ -175,13 +175,13 @@ namespace Newtonsoft.Json.Tests.Linq v = new JValue(new Guid("B282ADE7-C520-496C-A448-4084F6803DE5")); Assert.AreEqual("b282ade7-c520-496c-a448-4084f6803de5", v.ToString(null, CultureInfo.InvariantCulture)); -#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE) +#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE || PORTABLE40) v = new JValue(BigInteger.Parse("123456789999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999990")); Assert.AreEqual("123456789999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999990", v.ToString(null, CultureInfo.InvariantCulture)); #endif } -#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE) +#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE || PORTABLE40) [Test] public void JValueParse() { @@ -456,7 +456,7 @@ namespace Newtonsoft.Json.Tests.Linq Assert.AreEqual(Int32.MaxValue, Convert.ToInt32(new JValue(Int32.MaxValue))); } -#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE) +#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE || PORTABLE40) [Test] public void ConvertsToInt32_BigInteger() { @@ -593,7 +593,7 @@ namespace Newtonsoft.Json.Tests.Linq v = new JValue(new Uri("http://www.google.com")); Assert.AreEqual(TypeCode.Object, v.GetTypeCode()); -#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE) +#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE || PORTABLE40) v = new JValue(new BigInteger(3)); Assert.AreEqual(TypeCode.Object, v.GetTypeCode()); #endif @@ -622,7 +622,7 @@ namespace Newtonsoft.Json.Tests.Linq Assert.AreEqual("2013", v.ToString("yyyy")); } -#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE) +#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE || PORTABLE40) [Test] public void ToStringNewTypes() { diff --git a/Src/Newtonsoft.Json.Tests/Linq/LinqToJsonTest.cs b/Src/Newtonsoft.Json.Tests/Linq/LinqToJsonTest.cs index dc701a11..1a6362d5 100644 --- a/Src/Newtonsoft.Json.Tests/Linq/LinqToJsonTest.cs +++ b/Src/Newtonsoft.Json.Tests/Linq/LinqToJsonTest.cs @@ -718,7 +718,7 @@ keyword such as type of business."" Assert.AreEqual(new DateTime(2000, 10, 15, 5, 5, 5, DateTimeKind.Utc), d); } -#if !(NET20 || NET35 || SILVERLIGHT) +#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE40) [Test] public void CovariantIJEnumerable() { @@ -733,6 +733,19 @@ keyword such as type of business."" } #endif +#if !NET20 + [Test] + public void LinqCast() + { + JToken olist = JArray.Parse("[12,55]"); + + List list1 = olist.AsEnumerable().Values().ToList(); + + Assert.AreEqual(12, list1[0]); + Assert.AreEqual(55, list1[1]); + } +#endif + [Test] public void ChildrenExtension() { diff --git a/Src/Newtonsoft.Json.Tests/Properties/AssemblyInfo.cs b/Src/Newtonsoft.Json.Tests/Properties/AssemblyInfo.cs index d07ad717..08e05f16 100644 --- a/Src/Newtonsoft.Json.Tests/Properties/AssemblyInfo.cs +++ b/Src/Newtonsoft.Json.Tests/Properties/AssemblyInfo.cs @@ -75,4 +75,4 @@ using System.Security; // You can specify all the values or you can default the Revision and Build Numbers // by using the '*' as shown below: [assembly: AssemblyVersion("4.5.0.0")] -[assembly: AssemblyFileVersion("5.0.1.16001")] +[assembly: AssemblyFileVersion("5.0.1.16006")] diff --git a/Src/Newtonsoft.Json.Tests/Schema/ExtensionsTests.cs b/Src/Newtonsoft.Json.Tests/Schema/ExtensionsTests.cs index 7f2b4aba..6ecc7d58 100644 --- a/Src/Newtonsoft.Json.Tests/Schema/ExtensionsTests.cs +++ b/Src/Newtonsoft.Json.Tests/Schema/ExtensionsTests.cs @@ -202,7 +202,7 @@ namespace Newtonsoft.Json.Tests.Schema #if !NET20 GenerateSchemaAndSerializeFromType(new NullableDateTimeTestClass()); #endif -#if !(SILVERLIGHT || NETFX_CORE || PORTABLE) +#if !(SILVERLIGHT || NETFX_CORE || PORTABLE || PORTABLE40) GenerateSchemaAndSerializeFromType(new DataSet()); #endif GenerateSchemaAndSerializeFromType(new object()); @@ -210,7 +210,7 @@ namespace Newtonsoft.Json.Tests.Schema GenerateSchemaAndSerializeFromType("Hi"); GenerateSchemaAndSerializeFromType(new DateTime(2000, 12, 29, 23, 59, 0, DateTimeKind.Utc)); GenerateSchemaAndSerializeFromType(TimeSpan.FromTicks(1000000)); -#if !(NETFX_CORE || PORTABLE) +#if !(NETFX_CORE || PORTABLE || PORTABLE40) GenerateSchemaAndSerializeFromType(DBNull.Value); #endif GenerateSchemaAndSerializeFromType(new JsonPropertyWithHandlingValues()); diff --git a/Src/Newtonsoft.Json.Tests/Schema/JsonSchemaGeneratorTests.cs b/Src/Newtonsoft.Json.Tests/Schema/JsonSchemaGeneratorTests.cs index 5932cfc3..9403a6e7 100644 --- a/Src/Newtonsoft.Json.Tests/Schema/JsonSchemaGeneratorTests.cs +++ b/Src/Newtonsoft.Json.Tests/Schema/JsonSchemaGeneratorTests.cs @@ -90,7 +90,7 @@ namespace Newtonsoft.Json.Tests.Schema Assert.IsTrue(o.IsValid(schema)); } -#if !(NETFX_CORE || PORTABLE) +#if !(NETFX_CORE || PORTABLE || PORTABLE40) [Test] public void Generate_DefaultValueAttributeTestClass() { @@ -310,7 +310,7 @@ namespace Newtonsoft.Json.Tests.Schema Assert.IsTrue(v.IsValid(schema)); } -#if !(SILVERLIGHT || NETFX_CORE || PORTABLE) +#if !(SILVERLIGHT || NETFX_CORE || PORTABLE || PORTABLE40) [Test] public void GenerateSchemaForISerializable() { @@ -325,7 +325,7 @@ namespace Newtonsoft.Json.Tests.Schema } #endif -#if !(NETFX_CORE || PORTABLE) +#if !(NETFX_CORE || PORTABLE || PORTABLE40) [Test] public void GenerateSchemaForDBNull() { @@ -519,7 +519,7 @@ namespace Newtonsoft.Json.Tests.Schema }", json); } -#if !(SILVERLIGHT || NETFX_CORE || PORTABLE) +#if !(SILVERLIGHT || NETFX_CORE || PORTABLE || PORTABLE40) [Test] public void GenerateSchemaSerializable() { diff --git a/Src/Newtonsoft.Json.Tests/Serialization/CamelCasePropertyNamesContractResolverTests.cs b/Src/Newtonsoft.Json.Tests/Serialization/CamelCasePropertyNamesContractResolverTests.cs index 0fffcc10..aaec1787 100644 --- a/Src/Newtonsoft.Json.Tests/Serialization/CamelCasePropertyNamesContractResolverTests.cs +++ b/Src/Newtonsoft.Json.Tests/Serialization/CamelCasePropertyNamesContractResolverTests.cs @@ -102,7 +102,7 @@ namespace Newtonsoft.Json.Tests.Serialization string json = o.ToString(); } -#if !(NETFX_CORE || PORTABLE) +#if !(NETFX_CORE || PORTABLE || PORTABLE40) [Test] public void MemberSearchFlags() { @@ -177,7 +177,7 @@ namespace Newtonsoft.Json.Tests.Serialization }", json); } -#if !(NET35 || NET20) +#if !(NET35 || NET20 || PORTABLE40) [Test] public void DynamicCamelCasePropertyNames() { diff --git a/Src/Newtonsoft.Json.Tests/Serialization/ContractResolverTests.cs b/Src/Newtonsoft.Json.Tests/Serialization/ContractResolverTests.cs index eb98a2b7..01650813 100644 --- a/Src/Newtonsoft.Json.Tests/Serialization/ContractResolverTests.cs +++ b/Src/Newtonsoft.Json.Tests/Serialization/ContractResolverTests.cs @@ -182,7 +182,7 @@ namespace Newtonsoft.Json.Tests.Serialization }", startingWithB); } -#if !(NETFX_CORE || PORTABLE) +#if !(NETFX_CORE || PORTABLE || PORTABLE40) [Test] public void SerializeCompilerGeneratedMembers() { diff --git a/Src/Newtonsoft.Json.Tests/Serialization/DynamicTests.cs b/Src/Newtonsoft.Json.Tests/Serialization/DynamicTests.cs index 4bfb1403..5b0aaa66 100644 --- a/Src/Newtonsoft.Json.Tests/Serialization/DynamicTests.cs +++ b/Src/Newtonsoft.Json.Tests/Serialization/DynamicTests.cs @@ -23,7 +23,7 @@ // OTHER DEALINGS IN THE SOFTWARE. #endregion -#if !(NET35 || NET20) +#if !(NET35 || NET20 || PORTABLE40) using System; using System.Collections; using System.Collections.Generic; @@ -100,7 +100,7 @@ namespace Newtonsoft.Json.Tests.Serialization Assert.AreEqual(dynamicObject.ChildObject.Text, d.ChildObject.Text); } -#if !PORTABLE +#if !(PORTABLE || PORTABLE40) [Test] public void SerializeDynamicObjectWithObjectTracking() { diff --git a/Src/Newtonsoft.Json.Tests/Serialization/EntitiesSerializationTests.cs b/Src/Newtonsoft.Json.Tests/Serialization/EntitiesSerializationTests.cs index ff958d49..7e946d99 100644 --- a/Src/Newtonsoft.Json.Tests/Serialization/EntitiesSerializationTests.cs +++ b/Src/Newtonsoft.Json.Tests/Serialization/EntitiesSerializationTests.cs @@ -23,7 +23,7 @@ // OTHER DEALINGS IN THE SOFTWARE. #endregion -#if !(NET35 || NET20 || SILVERLIGHT || NETFX_CORE || PORTABLE) +#if !(NET35 || NET20 || SILVERLIGHT || NETFX_CORE || PORTABLE || PORTABLE40) using System; using System.Collections.Generic; using System.Data; diff --git a/Src/Newtonsoft.Json.Tests/Serialization/JsonSerializerTest.cs b/Src/Newtonsoft.Json.Tests/Serialization/JsonSerializerTest.cs index e224a18d..22b6b773 100644 --- a/Src/Newtonsoft.Json.Tests/Serialization/JsonSerializerTest.cs +++ b/Src/Newtonsoft.Json.Tests/Serialization/JsonSerializerTest.cs @@ -792,7 +792,7 @@ keyword such as type of business."" ConverableMembers c = JsonConvert.DeserializeObject(json); Assert.AreEqual("string", c.String); Assert.AreEqual(double.MaxValue, c.Double); -#if !(NETFX_CORE || PORTABLE) +#if !(NETFX_CORE || PORTABLE || PORTABLE40) Assert.AreEqual(DBNull.Value, c.DBNull); #endif } @@ -1611,7 +1611,7 @@ keyword such as type of business."" Assert.AreEqual("titleId", n.FidOrder[n.FidOrder.Count - 1]); } -#if !(SILVERLIGHT || NET20 || NETFX_CORE || PORTABLE) +#if !(SILVERLIGHT || NET20 || NETFX_CORE || PORTABLE || PORTABLE40) [MetadataType(typeof(OptInClassMetadata))] public class OptInClass { @@ -2162,7 +2162,7 @@ Path '', line 1, position 1.", }); } -#if !(NET35 || NET20) +#if !(NET35 || NET20 || PORTABLE40) [Test] public void CannotDeserializeArrayIntoDynamic() { @@ -3007,7 +3007,7 @@ Path '', line 1, position 2.", Assert.AreEqual("value", newModelStateDictionary["key"]); } -#if !(SILVERLIGHT || NETFX_CORE || PORTABLE) +#if !(SILVERLIGHT || NETFX_CORE || PORTABLE || PORTABLE40) public class ISerializableTestObject : ISerializable { internal string _stringValue; @@ -3504,7 +3504,7 @@ To fix this error either change the environment to be fully trusted, change the } #endif -#if !(NET20 || SILVERLIGHT) +#if !(NET20 || SILVERLIGHT || PORTABLE40) [Test] public void SerializeDeserializeXNodeProperties() { @@ -3535,7 +3535,7 @@ To fix this error either change the environment to be fully trusted, change the } #endif -#if !(SILVERLIGHT || NETFX_CORE || PORTABLE) +#if !(SILVERLIGHT || NETFX_CORE || PORTABLE || PORTABLE40) [Test] public void SerializeDeserializeXmlNodeProperties() { @@ -4391,7 +4391,7 @@ To fix this error either change the environment to be fully trusted, change the }", json); } -#if !(NET35 || NET20) +#if !(NET35 || NET20 || PORTABLE40) [Test] public void SerializeExpandoObject() { @@ -5396,7 +5396,7 @@ To fix this error either change the environment to be fully trusted, change the } } -#if !(SILVERLIGHT || WINDOWS_PHONE || NETFX_CORE || PORTABLE) +#if !(SILVERLIGHT || WINDOWS_PHONE || NETFX_CORE || PORTABLE || PORTABLE40) [Test] public void SerializeException1() { @@ -5526,7 +5526,7 @@ To fix this error either change the environment to be fully trusted, change the } } -#if !(NET35 || NET20 || SILVERLIGHT || WINDOWS_PHONE || PORTABLE) +#if !(NET35 || NET20 || SILVERLIGHT || WINDOWS_PHONE || PORTABLE || PORTABLE40) [Test] public void DeserializeConcurrentDictionary() { @@ -6474,7 +6474,7 @@ Parameter name: value", Assert.AreEqual("", s); } -#if !(SILVERLIGHT || NETFX_CORE || PORTABLE) +#if !(SILVERLIGHT || NETFX_CORE || PORTABLE || PORTABLE40) [Test] public void SerializeAndDeserializeWithAttributes() { @@ -6640,7 +6640,7 @@ Parameter name: value", }); } - #if !(SILVERLIGHT || NETFX_CORE || PORTABLE) +#if !(SILVERLIGHT || NETFX_CORE || PORTABLE || PORTABLE40) [Test] public void DeserializeException() { @@ -6678,7 +6678,7 @@ Parameter name: value", } #endif - [Test] + [Test] public void AdditionalContentAfterFinish() { ExceptionAssert.Throws( @@ -6896,7 +6896,7 @@ Parameter name: value", Assert.AreEqual("[1.1,0.0,0.0]", json); } -#if !(NET20 || NET35 || NET40 || SILVERLIGHT) +#if !(NET20 || NET35 || NET40 || SILVERLIGHT || PORTABLE40) #if !PORTABLE [Test] public void DeserializeReadOnlyListWithBigInteger() @@ -6958,7 +6958,7 @@ Parameter name: value", obj = JsonConvert.DeserializeObject>(json); }; -#if !(SILVERLIGHT || NETFX_CORE || PORTABLE) +#if !(SILVERLIGHT || NETFX_CORE || PORTABLE || PORTABLE40) doStuff(); Assert.AreEqual(500, obj.Item1); #else @@ -6991,7 +6991,7 @@ Parameter name: value", } #endif -#if !(SILVERLIGHT || NETFX_CORE || PORTABLE || NET35 || NET20) +#if !(SILVERLIGHT || NETFX_CORE || PORTABLE || NET35 || NET20 || PORTABLE40) [Test] public void SerializeTupleWithSerializableAttribute() { @@ -7679,7 +7679,7 @@ Parameter name: value", }", json); } -#if !(PORTABLE || NET35 || NET20 || SILVERLIGHT) +#if !(PORTABLE || NET35 || NET20 || SILVERLIGHT || PORTABLE40) [Test] public void ReadTooLargeInteger() { @@ -7773,7 +7773,7 @@ Parameter name: value", } #endif -#if !(PORTABLE || NET20 || NET35) +#if !(NET20 || NET35 || PORTABLE40) [Test] public void HashSetInterface() { @@ -7846,7 +7846,7 @@ Parameter name: value", Assert.AreEqual(1234567890.123456m, d); } -#if !(PORTABLE || SILVERLIGHT || NETFX_CORE || WINDOWS_PHONE) +#if !(PORTABLE || SILVERLIGHT || NETFX_CORE || WINDOWS_PHONE || PORTABLE40) [Test] public void DontSerializeStaticFields() { @@ -7880,7 +7880,7 @@ Parameter name: value", Assert.AreEqual("string!", l[0]); } -#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE) +#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE || PORTABLE40) [Test] public void SerializeBigInteger() { @@ -7894,7 +7894,7 @@ Parameter name: value", } #endif -#if !(NET40 || NET35 || NET20 || SILVERLIGHT || WINDOWS_PHONE) +#if !(NET40 || NET35 || NET20 || SILVERLIGHT || WINDOWS_PHONE || PORTABLE40) [Test] public void DeserializeReadOnlyListInterface() { diff --git a/Src/Newtonsoft.Json.Tests/Serialization/ReferenceLoopHandlingTests.cs b/Src/Newtonsoft.Json.Tests/Serialization/ReferenceLoopHandlingTests.cs index 4b68ca00..0a4f3557 100644 --- a/Src/Newtonsoft.Json.Tests/Serialization/ReferenceLoopHandlingTests.cs +++ b/Src/Newtonsoft.Json.Tests/Serialization/ReferenceLoopHandlingTests.cs @@ -149,7 +149,7 @@ namespace Newtonsoft.Json.Tests.Serialization }", json); } -#if !(PORTABLE || SILVERLIGHT || NETFX_CORE) +#if !(PORTABLE || SILVERLIGHT || NETFX_CORE || PORTABLE40) public class MainClass : ISerializable { public ChildClass Child { get; set; } @@ -210,7 +210,7 @@ namespace Newtonsoft.Json.Tests.Serialization } #endif -#if !(NET20 || NET35) +#if !(NET20 || NET35 || PORTABLE40) public class DictionaryDynamicObject : DynamicObject { public IDictionary Values { get; private set; } diff --git a/Src/Newtonsoft.Json.Tests/Serialization/SerializationErrorHandlingTests.cs b/Src/Newtonsoft.Json.Tests/Serialization/SerializationErrorHandlingTests.cs index 092816ca..9f4c8273 100644 --- a/Src/Newtonsoft.Json.Tests/Serialization/SerializationErrorHandlingTests.cs +++ b/Src/Newtonsoft.Json.Tests/Serialization/SerializationErrorHandlingTests.cs @@ -612,7 +612,7 @@ namespace Newtonsoft.Json.Tests.Serialization Assert.AreEqual(@"Unexpected end when deserializing object. Path 'events2.code', line 1, position 49.", errors[1]); } -#if !(NET35 || NET20) +#if !(NET35 || NET20 || PORTABLE40) [Test] public void ErrorHandlingEndOfContentDynamic() { diff --git a/Src/Newtonsoft.Json.Tests/Serialization/TraceWriterTests.cs b/Src/Newtonsoft.Json.Tests/Serialization/TraceWriterTests.cs index 5523938a..93a33dd9 100644 --- a/Src/Newtonsoft.Json.Tests/Serialization/TraceWriterTests.cs +++ b/Src/Newtonsoft.Json.Tests/Serialization/TraceWriterTests.cs @@ -34,7 +34,7 @@ namespace Newtonsoft.Json.Tests.Serialization [TestFixture] public class TraceWriterTests : TestFixtureBase { -#if !(SILVERLIGHT || PORTABLE || NETFX_CORE) +#if !(SILVERLIGHT || PORTABLE || NETFX_CORE || PORTABLE40) [Test] public void DiagnosticsTraceWriterTest() { @@ -458,7 +458,7 @@ Newtonsoft.Json Error: 0 : Error! Assert.AreEqual("Finished deserializing System.Collections.Generic.List`1[System.Object]. Path '$values', line 17, position 4.", traceWriter.TraceRecords[9].Message); } -#if !(NETFX_CORE || PORTABLE || SILVERLIGHT) +#if !(NETFX_CORE || PORTABLE || SILVERLIGHT || PORTABLE40) [Test] public void DeserializeISerializable() { diff --git a/Src/Newtonsoft.Json.Tests/Serialization/TypeNameHandlingTests.cs b/Src/Newtonsoft.Json.Tests/Serialization/TypeNameHandlingTests.cs index e6486457..702f6fae 100644 --- a/Src/Newtonsoft.Json.Tests/Serialization/TypeNameHandlingTests.cs +++ b/Src/Newtonsoft.Json.Tests/Serialization/TypeNameHandlingTests.cs @@ -23,7 +23,7 @@ // OTHER DEALINGS IN THE SOFTWARE. #endregion -#if !PORTABLE +#if !(PORTABLE || PORTABLE40) #if !(NET35 || NET20 || PORTABLE) using System.Dynamic; #endif @@ -1445,7 +1445,7 @@ namespace Newtonsoft.Json.Tests.Serialization Assert.AreEqual(1, (int)j["MyProperty"]); } -#if !(NET35 || NET20) +#if !(NET35 || NET20 || PORTABLE40) [Test] public void PropertyItemTypeNameHandlingDynamic() { @@ -1651,7 +1651,7 @@ namespace Newtonsoft.Json.Tests.Serialization public TypeNameHandlingTestObject Data { get; set; } } -#if !(NET35 || NET20) +#if !(NET35 || NET20 || PORTABLE40) public class PropertyItemTypeNameHandlingDynamic { [JsonProperty(ItemTypeNameHandling = TypeNameHandling.All)] diff --git a/Src/Newtonsoft.Json.Tests/Serialization/WebApiIntegrationTests.cs b/Src/Newtonsoft.Json.Tests/Serialization/WebApiIntegrationTests.cs index 014081f9..936cd0db 100644 --- a/Src/Newtonsoft.Json.Tests/Serialization/WebApiIntegrationTests.cs +++ b/Src/Newtonsoft.Json.Tests/Serialization/WebApiIntegrationTests.cs @@ -59,7 +59,7 @@ namespace Newtonsoft.Json.Tests.Serialization nonSerializedField = "Error" }; -#if !(SILVERLIGHT || NETFX_CORE || NET20 || PORTABLE) +#if !(SILVERLIGHT || NETFX_CORE || NET20 || PORTABLE || PORTABLE40) MemoryStream ms = new MemoryStream(); DataContractJsonSerializer dataContractJsonSerializer = new DataContractJsonSerializer(typeof(SerializableType)); dataContractJsonSerializer.WriteObject(ms, serializableType); @@ -74,17 +74,17 @@ namespace Newtonsoft.Json.Tests.Serialization string json = JsonConvert.SerializeObject(serializableType, new JsonSerializerSettings { ContractResolver = new DefaultContractResolver - { -#if !(SILVERLIGHT || NETFX_CORE || PORTABLE) + { +#if !(SILVERLIGHT || NETFX_CORE || PORTABLE || PORTABLE40) IgnoreSerializableAttribute = false #endif - } + } }); Assert.AreEqual(expected, json); } -#if !(SILVERLIGHT || NETFX_CORE || PORTABLE) +#if !(SILVERLIGHT || NETFX_CORE || PORTABLE || PORTABLE40) [Test] public void SerializeInheritedType() { @@ -114,7 +114,7 @@ namespace Newtonsoft.Json.Tests.Serialization } } -#if !(SILVERLIGHT || NETFX_CORE || PORTABLE) +#if !(SILVERLIGHT || NETFX_CORE || PORTABLE || PORTABLE40) [Serializable] #else [JsonObject(MemberSerialization.Fields)] @@ -144,7 +144,7 @@ namespace Newtonsoft.Json.Tests.Serialization } } -#if !(SILVERLIGHT || NETFX_CORE || PORTABLE) +#if !(SILVERLIGHT || NETFX_CORE || PORTABLE || PORTABLE40) [NonSerialized] #else [JsonIgnore] diff --git a/Src/Newtonsoft.Json.Tests/Utilities/DynamicReflectionDelegateFactoryTests.cs b/Src/Newtonsoft.Json.Tests/Utilities/DynamicReflectionDelegateFactoryTests.cs index 4cf32aa3..0a36100f 100644 --- a/Src/Newtonsoft.Json.Tests/Utilities/DynamicReflectionDelegateFactoryTests.cs +++ b/Src/Newtonsoft.Json.Tests/Utilities/DynamicReflectionDelegateFactoryTests.cs @@ -23,7 +23,7 @@ // OTHER DEALINGS IN THE SOFTWARE. #endregion -#if !(SILVERLIGHT || PORTABLE || NETFX_CORE) +#if !(SILVERLIGHT || PORTABLE || NETFX_CORE || PORTABLE40) using System; using System.Reflection; #if !NETFX_CORE diff --git a/Src/Newtonsoft.Json.Tests/Utilities/ReflectionUtilsTests.cs b/Src/Newtonsoft.Json.Tests/Utilities/ReflectionUtilsTests.cs index f8510d32..2bac182e 100644 --- a/Src/Newtonsoft.Json.Tests/Utilities/ReflectionUtilsTests.cs +++ b/Src/Newtonsoft.Json.Tests/Utilities/ReflectionUtilsTests.cs @@ -23,7 +23,7 @@ // OTHER DEALINGS IN THE SOFTWARE. #endregion -#if !PORTABLE +#if !(PORTABLE || PORTABLE40) using global::System; using global::System.Collections.Generic; using global::System.Runtime.Serialization.Formatters; diff --git a/Src/Newtonsoft.Json/Bson/BsonBinaryWriter.cs b/Src/Newtonsoft.Json/Bson/BsonBinaryWriter.cs index 2775c52e..aa931a5b 100644 --- a/Src/Newtonsoft.Json/Bson/BsonBinaryWriter.cs +++ b/Src/Newtonsoft.Json/Bson/BsonBinaryWriter.cs @@ -54,7 +54,7 @@ namespace Newtonsoft.Json.Bson public void Close() { -#if !(NETFX_CORE || PORTABLE) +#if !(NETFX_CORE || PORTABLE40 || PORTABLE) _writer.Close(); #else _writer.Dispose(); diff --git a/Src/Newtonsoft.Json/Bson/BsonReader.cs b/Src/Newtonsoft.Json/Bson/BsonReader.cs index 16207dbe..2d73bc72 100644 --- a/Src/Newtonsoft.Json/Bson/BsonReader.cs +++ b/Src/Newtonsoft.Json/Bson/BsonReader.cs @@ -295,7 +295,7 @@ namespace Newtonsoft.Json.Bson base.Close(); if (CloseInput && _reader != null) -#if !(NETFX_CORE || PORTABLE) +#if !(NETFX_CORE || PORTABLE40 || PORTABLE) _reader.Close(); #else _reader.Dispose(); diff --git a/Src/Newtonsoft.Json/Bson/BsonWriter.cs b/Src/Newtonsoft.Json/Bson/BsonWriter.cs index 7259fd18..0ef86b64 100644 --- a/Src/Newtonsoft.Json/Bson/BsonWriter.cs +++ b/Src/Newtonsoft.Json/Bson/BsonWriter.cs @@ -27,7 +27,7 @@ using System; using System.Collections; using System.Collections.Generic; using System.IO; -#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE) +#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE40 || PORTABLE) using System.Numerics; #endif using System.Text; @@ -360,7 +360,7 @@ namespace Newtonsoft.Json.Bson { base.WriteValue(value); string s = null; -#if !(NETFX_CORE || PORTABLE) +#if !(NETFX_CORE || PORTABLE40 || PORTABLE) s = value.ToString(CultureInfo.InvariantCulture); #else s = value.ToString(); @@ -462,7 +462,7 @@ namespace Newtonsoft.Json.Bson AddToken(new BsonString(value.ToString(), true)); } -#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE) +#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE40 || PORTABLE) /// /// Writes a value. /// diff --git a/Src/Newtonsoft.Json/Converters/BinaryConverter.cs b/Src/Newtonsoft.Json/Converters/BinaryConverter.cs index f0ed62eb..0da426d4 100644 --- a/Src/Newtonsoft.Json/Converters/BinaryConverter.cs +++ b/Src/Newtonsoft.Json/Converters/BinaryConverter.cs @@ -23,7 +23,7 @@ // OTHER DEALINGS IN THE SOFTWARE. #endregion -#if !(SILVERLIGHT || NETFX_CORE || PORTABLE) +#if !(SILVERLIGHT || NETFX_CORE || PORTABLE40 || PORTABLE) using System; using System.Data.SqlTypes; using System.Globalization; diff --git a/Src/Newtonsoft.Json/Converters/DataSetConverter.cs b/Src/Newtonsoft.Json/Converters/DataSetConverter.cs index 4f74b5dc..abed0d63 100644 --- a/Src/Newtonsoft.Json/Converters/DataSetConverter.cs +++ b/Src/Newtonsoft.Json/Converters/DataSetConverter.cs @@ -23,7 +23,7 @@ // OTHER DEALINGS IN THE SOFTWARE. #endregion -#if !(SILVERLIGHT || NETFX_CORE || PORTABLE) +#if !(SILVERLIGHT || NETFX_CORE || PORTABLE40 || PORTABLE) using System; using System.Data; using Newtonsoft.Json.Serialization; diff --git a/Src/Newtonsoft.Json/Converters/DataTableConverter.cs b/Src/Newtonsoft.Json/Converters/DataTableConverter.cs index 0670a4e9..8c77d30f 100644 --- a/Src/Newtonsoft.Json/Converters/DataTableConverter.cs +++ b/Src/Newtonsoft.Json/Converters/DataTableConverter.cs @@ -23,7 +23,7 @@ // OTHER DEALINGS IN THE SOFTWARE. #endregion -#if !(SILVERLIGHT || NETFX_CORE || PORTABLE) +#if !(SILVERLIGHT || NETFX_CORE || PORTABLE40 || PORTABLE) using System; using System.Data; using Newtonsoft.Json.Serialization; diff --git a/Src/Newtonsoft.Json/Converters/EntityKeyMemberConverter.cs b/Src/Newtonsoft.Json/Converters/EntityKeyMemberConverter.cs index 9e7ecd56..44b92307 100644 --- a/Src/Newtonsoft.Json/Converters/EntityKeyMemberConverter.cs +++ b/Src/Newtonsoft.Json/Converters/EntityKeyMemberConverter.cs @@ -23,7 +23,7 @@ // OTHER DEALINGS IN THE SOFTWARE. #endregion -#if !(SILVERLIGHT || NET20 || NETFX_CORE || PORTABLE) +#if !(SILVERLIGHT || NET20 || NETFX_CORE || PORTABLE40 || PORTABLE) using System; using Newtonsoft.Json.Serialization; using System.Globalization; diff --git a/Src/Newtonsoft.Json/Converters/ExpandoObjectConverter.cs b/Src/Newtonsoft.Json/Converters/ExpandoObjectConverter.cs index 653cc56d..76754794 100644 --- a/Src/Newtonsoft.Json/Converters/ExpandoObjectConverter.cs +++ b/Src/Newtonsoft.Json/Converters/ExpandoObjectConverter.cs @@ -23,7 +23,7 @@ // OTHER DEALINGS IN THE SOFTWARE. #endregion -#if !(NET35 || NET20) +#if !(NET35 || NET20 || PORTABLE40) using System; using System.Collections.Generic; diff --git a/Src/Newtonsoft.Json/Converters/XmlNodeConverter.cs b/Src/Newtonsoft.Json/Converters/XmlNodeConverter.cs index 682cbdd1..34a26f0d 100644 --- a/Src/Newtonsoft.Json/Converters/XmlNodeConverter.cs +++ b/Src/Newtonsoft.Json/Converters/XmlNodeConverter.cs @@ -23,12 +23,12 @@ // OTHER DEALINGS IN THE SOFTWARE. #endregion -#if (!(SILVERLIGHT) || WINDOWS_PHONE) +#if (!(SILVERLIGHT) || WINDOWS_PHONE) && !PORTABLE40 using System; using System.Collections.Generic; using System.Globalization; using System.Xml; -#if !NET20 +#if !(NET20 || PORTABLE40) using System.Xml.Linq; #endif using Newtonsoft.Json.Utilities; @@ -41,7 +41,7 @@ using System.Linq; namespace Newtonsoft.Json.Converters { #region XmlNodeWrappers -#if !SILVERLIGHT && !NETFX_CORE && !PORTABLE +#if !SILVERLIGHT && !NETFX_CORE && !PORTABLE && !PORTABLE40 internal class XmlDocumentWrapper : XmlNodeWrapper, IXmlDocument { private readonly XmlDocument _document; diff --git a/Src/Newtonsoft.Json/FormatterAssemblyStyle.cs b/Src/Newtonsoft.Json/FormatterAssemblyStyle.cs index 215e866b..c2c3e443 100644 --- a/Src/Newtonsoft.Json/FormatterAssemblyStyle.cs +++ b/Src/Newtonsoft.Json/FormatterAssemblyStyle.cs @@ -1,4 +1,4 @@ -#if SILVERLIGHT || PocketPC || NETFX_CORE || PORTABLE +#if SILVERLIGHT || PocketPC || NETFX_CORE || PORTABLE40 || PORTABLE namespace System.Runtime.Serialization.Formatters { /// diff --git a/Src/Newtonsoft.Json/JsonConvert.cs b/Src/Newtonsoft.Json/JsonConvert.cs index 035d68dd..a873e00f 100644 --- a/Src/Newtonsoft.Json/JsonConvert.cs +++ b/Src/Newtonsoft.Json/JsonConvert.cs @@ -26,10 +26,10 @@ using System; using System.IO; using System.Globalization; -#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE) +#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE40 || PORTABLE) using System.Numerics; #endif -#if !(NET20 || NET35 || SILVERLIGHT) +#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE40) using System.Threading.Tasks; #endif using Newtonsoft.Json.Linq; @@ -37,7 +37,7 @@ using Newtonsoft.Json.Utilities; using System.Xml; using Newtonsoft.Json.Converters; using System.Text; -#if !NET20 && (!SILVERLIGHT || WINDOWS_PHONE) +#if !NET20 && (!SILVERLIGHT || WINDOWS_PHONE) && !PORTABLE40 using System.Xml.Linq; #endif @@ -422,7 +422,7 @@ namespace Newtonsoft.Json return value.ToString(null, CultureInfo.InvariantCulture); } -#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE) +#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE40 || PORTABLE) /// /// Converts the to its JSON string representation. /// @@ -547,7 +547,7 @@ namespace Newtonsoft.Json { string text = null; -#if !(NETFX_CORE || PORTABLE) +#if !(NETFX_CORE || PORTABLE40 || PORTABLE) text = value.ToString("D", CultureInfo.InvariantCulture); #else text = value.ToString("D"); @@ -671,7 +671,7 @@ namespace Newtonsoft.Json return ToString((Uri) value); case PrimitiveTypeCode.TimeSpan: return ToString((TimeSpan) value); -#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE) +#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE40 || PORTABLE) case PrimitiveTypeCode.BigInteger: return ToString((BigInteger) value); #endif @@ -929,7 +929,7 @@ namespace Newtonsoft.Json return sw.ToString(); } -#if !(NET20 || NET35 || SILVERLIGHT) +#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE40) /// /// Asynchronously serializes the specified object to a JSON string using a collection of . /// @@ -1122,7 +1122,7 @@ namespace Newtonsoft.Json return jsonSerializer.Deserialize(new JsonTextReader(sr), type); } -#if !(NET20 || NET35 || SILVERLIGHT) +#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE40) /// /// Asynchronously deserializes the JSON to the specified .NET type. /// @@ -1217,7 +1217,7 @@ namespace Newtonsoft.Json } } -#if !(NET20 || NET35 || SILVERLIGHT) +#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE40) /// /// Asynchronously populates the object with values from the JSON string. /// @@ -1236,7 +1236,7 @@ namespace Newtonsoft.Json } #endif -#if !(SILVERLIGHT || PORTABLE || NETFX_CORE) +#if !(SILVERLIGHT || PORTABLE40 || PORTABLE || NETFX_CORE) /// /// Serializes the XML node to a JSON string. /// @@ -1315,7 +1315,7 @@ namespace Newtonsoft.Json } #endif -#if !NET20 && (!(SILVERLIGHT) || WINDOWS_PHONE) +#if !NET20 && (!(SILVERLIGHT) || WINDOWS_PHONE) && !PORTABLE40 /// /// Serializes the to a JSON string. /// diff --git a/Src/Newtonsoft.Json/JsonException.cs b/Src/Newtonsoft.Json/JsonException.cs index 5a901967..ad4cdf15 100644 --- a/Src/Newtonsoft.Json/JsonException.cs +++ b/Src/Newtonsoft.Json/JsonException.cs @@ -35,7 +35,7 @@ namespace Newtonsoft.Json /// /// The exception thrown when an error occurs during Json serialization or deserialization. /// -#if !(SILVERLIGHT || WINDOWS_PHONE || NETFX_CORE || PORTABLE) +#if !(SILVERLIGHT || WINDOWS_PHONE || NETFX_CORE || PORTABLE40 || PORTABLE) [Serializable] #endif public class JsonException : Exception @@ -68,7 +68,7 @@ namespace Newtonsoft.Json { } -#if !(WINDOWS_PHONE || SILVERLIGHT || NETFX_CORE || PORTABLE) +#if !(WINDOWS_PHONE || SILVERLIGHT || NETFX_CORE || PORTABLE40 || PORTABLE) /// /// Initializes a new instance of the class. /// diff --git a/Src/Newtonsoft.Json/JsonReaderException.cs b/Src/Newtonsoft.Json/JsonReaderException.cs index 9aefd25d..e842f381 100644 --- a/Src/Newtonsoft.Json/JsonReaderException.cs +++ b/Src/Newtonsoft.Json/JsonReaderException.cs @@ -33,7 +33,7 @@ namespace Newtonsoft.Json /// /// The exception thrown when an error occurs while reading Json text. /// -#if !(SILVERLIGHT || WINDOWS_PHONE || NETFX_CORE || PORTABLE) +#if !(SILVERLIGHT || WINDOWS_PHONE || NETFX_CORE || PORTABLE || PORTABLE40) [Serializable] #endif public class JsonReaderException : JsonException @@ -84,7 +84,7 @@ namespace Newtonsoft.Json { } -#if !(WINDOWS_PHONE || SILVERLIGHT || NETFX_CORE || PORTABLE) +#if !(WINDOWS_PHONE || SILVERLIGHT || NETFX_CORE || PORTABLE40 || PORTABLE) /// /// Initializes a new instance of the class. /// diff --git a/Src/Newtonsoft.Json/JsonSerializationException.cs b/Src/Newtonsoft.Json/JsonSerializationException.cs index 3d132ddc..40cfdc00 100644 --- a/Src/Newtonsoft.Json/JsonSerializationException.cs +++ b/Src/Newtonsoft.Json/JsonSerializationException.cs @@ -33,7 +33,7 @@ namespace Newtonsoft.Json /// /// The exception thrown when an error occurs during Json serialization or deserialization. /// -#if !(SILVERLIGHT || WINDOWS_PHONE || NETFX_CORE || PORTABLE) +#if !(SILVERLIGHT || WINDOWS_PHONE || NETFX_CORE || PORTABLE40 || PORTABLE) [Serializable] #endif public class JsonSerializationException : JsonException @@ -66,7 +66,7 @@ namespace Newtonsoft.Json { } -#if !(WINDOWS_PHONE || SILVERLIGHT || NETFX_CORE || PORTABLE) +#if !(WINDOWS_PHONE || SILVERLIGHT || NETFX_CORE || PORTABLE40 || PORTABLE) /// /// Initializes a new instance of the class. /// diff --git a/Src/Newtonsoft.Json/JsonTextReader.cs b/Src/Newtonsoft.Json/JsonTextReader.cs index ab4d9196..29c98a3d 100644 --- a/Src/Newtonsoft.Json/JsonTextReader.cs +++ b/Src/Newtonsoft.Json/JsonTextReader.cs @@ -26,7 +26,7 @@ using System; using System.Collections.Generic; using System.Diagnostics; -#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE) +#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE40 || PORTABLE) using System.Numerics; #endif using System.Text; @@ -1257,7 +1257,7 @@ namespace Newtonsoft.Json } else { -#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE) +#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE40 || PORTABLE) numberValue = BigInteger.Parse(number, CultureInfo.InvariantCulture); #else // todo - validate number was a valid integer to make sure overflow was the reason for failure @@ -1503,7 +1503,7 @@ namespace Newtonsoft.Json base.Close(); if (CloseInput && _reader != null) -#if !(NETFX_CORE || PORTABLE) +#if !(NETFX_CORE || PORTABLE40 || PORTABLE) _reader.Close(); #else _reader.Dispose(); diff --git a/Src/Newtonsoft.Json/JsonTextWriter.cs b/Src/Newtonsoft.Json/JsonTextWriter.cs index 62505d9c..801c8437 100644 --- a/Src/Newtonsoft.Json/JsonTextWriter.cs +++ b/Src/Newtonsoft.Json/JsonTextWriter.cs @@ -26,7 +26,7 @@ using System; using System.Collections.Generic; using System.Globalization; -#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE) +#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE40 || PORTABLE) using System.Numerics; #endif using System.Text; @@ -143,7 +143,7 @@ namespace Newtonsoft.Json base.Close(); if (CloseOutput && _writer != null) -#if !(NETFX_CORE || PORTABLE) +#if !(NETFX_CORE || PORTABLE40 || PORTABLE) _writer.Close(); #else _writer.Dispose(); @@ -598,7 +598,7 @@ namespace Newtonsoft.Json } } -#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE) +#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE40 || PORTABLE) /// /// Writes a value. /// diff --git a/Src/Newtonsoft.Json/JsonValidatingReader.cs b/Src/Newtonsoft.Json/JsonValidatingReader.cs index f43da0af..a2926218 100644 --- a/Src/Newtonsoft.Json/JsonValidatingReader.cs +++ b/Src/Newtonsoft.Json/JsonValidatingReader.cs @@ -25,7 +25,7 @@ using System; using System.Collections.Generic; -#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE) +#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE40 || PORTABLE) using System.Numerics; #endif using Newtonsoft.Json.Linq; @@ -735,7 +735,7 @@ namespace Newtonsoft.Json if (schema.DivisibleBy != null) { bool notDivisible; -#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE) +#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE40 || PORTABLE) if (value is BigInteger) { // not that this will lose any decimal point on DivisibleBy @@ -749,7 +749,7 @@ namespace Newtonsoft.Json } else #endif - notDivisible = !IsZero(Convert.ToInt64(value, CultureInfo.InvariantCulture) % schema.DivisibleBy.Value); + notDivisible = !IsZero(Convert.ToInt64(value, CultureInfo.InvariantCulture) % schema.DivisibleBy.Value); if (notDivisible) RaiseError("Integer {0} is not evenly divisible by {1}.".FormatWith(CultureInfo.InvariantCulture, JsonConvert.ToString(value), schema.DivisibleBy), schema); diff --git a/Src/Newtonsoft.Json/JsonWriter.cs b/Src/Newtonsoft.Json/JsonWriter.cs index d5f390ff..98144ec8 100644 --- a/Src/Newtonsoft.Json/JsonWriter.cs +++ b/Src/Newtonsoft.Json/JsonWriter.cs @@ -26,7 +26,7 @@ using System; using System.Collections.Generic; using System.IO; -#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE) +#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE40 || PORTABLE) using System.Numerics; #endif using Newtonsoft.Json.Utilities; @@ -1231,7 +1231,7 @@ namespace Newtonsoft.Json InternalWriteValue(JsonToken.String); } -#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE) +#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE40 || PORTABLE) /// /// Writes a value. /// @@ -1419,7 +1419,7 @@ namespace Newtonsoft.Json case PrimitiveTypeCode.TimeSpanNullable: writer.WriteValue((value == null) ? (TimeSpan?)null : (TimeSpan)value); break; -#if !(PORTABLE || NET35 || NET20 || WINDOWS_PHONE || SILVERLIGHT) +#if !(PORTABLE || PORTABLE40 || NET35 || NET20 || WINDOWS_PHONE || SILVERLIGHT) case PrimitiveTypeCode.BigInteger: writer.WriteValue((BigInteger)value); break; diff --git a/Src/Newtonsoft.Json/JsonWriterException.cs b/Src/Newtonsoft.Json/JsonWriterException.cs index fdccc546..6c34172f 100644 --- a/Src/Newtonsoft.Json/JsonWriterException.cs +++ b/Src/Newtonsoft.Json/JsonWriterException.cs @@ -33,7 +33,7 @@ namespace Newtonsoft.Json /// /// The exception thrown when an error occurs while reading Json text. /// -#if !(SILVERLIGHT || WINDOWS_PHONE || NETFX_CORE || PORTABLE) +#if !(SILVERLIGHT || WINDOWS_PHONE || NETFX_CORE || PORTABLE40 || PORTABLE) [Serializable] #endif public class JsonWriterException : JsonException @@ -72,7 +72,7 @@ namespace Newtonsoft.Json { } -#if !(WINDOWS_PHONE || SILVERLIGHT || NETFX_CORE || PORTABLE) +#if !(WINDOWS_PHONE || SILVERLIGHT || NETFX_CORE || PORTABLE40 || PORTABLE) /// /// Initializes a new instance of the class. /// diff --git a/Src/Newtonsoft.Json/Linq/IJEnumerable.cs b/Src/Newtonsoft.Json/Linq/IJEnumerable.cs index a5b01418..d4ab9d11 100644 --- a/Src/Newtonsoft.Json/Linq/IJEnumerable.cs +++ b/Src/Newtonsoft.Json/Linq/IJEnumerable.cs @@ -32,7 +32,7 @@ namespace Newtonsoft.Json.Linq /// /// The type of token public interface IJEnumerable< -#if !(NET20 || NET35 || SILVERLIGHT) +#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE40) out #endif T> : IEnumerable where T : JToken diff --git a/Src/Newtonsoft.Json/Linq/JContainer.cs b/Src/Newtonsoft.Json/Linq/JContainer.cs index 9ab9e4cc..c3ff182a 100644 --- a/Src/Newtonsoft.Json/Linq/JContainer.cs +++ b/Src/Newtonsoft.Json/Linq/JContainer.cs @@ -25,7 +25,9 @@ using System; using System.Collections.Generic; +#if !PORTABLE40 using System.Collections.Specialized; +#endif using System.Threading; using Newtonsoft.Json.Utilities; using System.Collections; @@ -43,17 +45,17 @@ namespace Newtonsoft.Json.Linq /// Represents a token that can contain other tokens. /// public abstract class JContainer : JToken, IList -#if !(SILVERLIGHT || NETFX_CORE || PORTABLE) +#if !(SILVERLIGHT || NETFX_CORE || PORTABLE || PORTABLE40) , ITypedList, IBindingList -#else +#elif PORTABLE , INotifyCollectionChanged #endif , IList -#if !(SILVERLIGHT || NET20 || NET35 || NETFX_CORE || PORTABLE) +#if !(SILVERLIGHT || NET20 || NET35 || NETFX_CORE || PORTABLE40 || PORTABLE) , INotifyCollectionChanged #endif { -#if !(SILVERLIGHT || NETFX_CORE || PORTABLE) +#if !(SILVERLIGHT || NETFX_CORE || PORTABLE40 || PORTABLE) internal ListChangedEventHandler _listChanged; internal AddingNewEventHandler _addingNew; @@ -75,7 +77,7 @@ namespace Newtonsoft.Json.Linq remove { _addingNew -= value; } } #endif -#if SILVERLIGHT || !(NET20 || NET35) +#if SILVERLIGHT || !(NET20 || NET35 || PORTABLE40) internal NotifyCollectionChangedEventHandler _collectionChanged; /// @@ -123,7 +125,7 @@ namespace Newtonsoft.Json.Linq return new List(); } - #if !(SILVERLIGHT || NETFX_CORE || PORTABLE) +#if !(SILVERLIGHT || NETFX_CORE || PORTABLE40 || PORTABLE) /// /// Raises the event. /// @@ -157,7 +159,7 @@ namespace Newtonsoft.Json.Linq } } #endif -#if SILVERLIGHT || !(NET20 || NET35) +#if SILVERLIGHT || !(NET20 || NET35 || PORTABLE40) /// /// Raises the event. /// @@ -350,11 +352,11 @@ namespace Newtonsoft.Json.Linq ChildrenTokens.Insert(index, item); -#if !(SILVERLIGHT || NETFX_CORE || PORTABLE) +#if !(SILVERLIGHT || NETFX_CORE || PORTABLE40 || PORTABLE) if (_listChanged != null) OnListChanged(new ListChangedEventArgs(ListChangedType.ItemAdded, index)); #endif -#if SILVERLIGHT || !(NET20 || NET35) +#if SILVERLIGHT || !(NET20 || NET35 || PORTABLE40) if (_collectionChanged != null) OnCollectionChanged(new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Add, item, index)); #endif @@ -384,11 +386,11 @@ namespace Newtonsoft.Json.Linq ChildrenTokens.RemoveAt(index); -#if !(SILVERLIGHT || NETFX_CORE || PORTABLE) +#if !(SILVERLIGHT || NETFX_CORE || PORTABLE40 || PORTABLE) if (_listChanged != null) OnListChanged(new ListChangedEventArgs(ListChangedType.ItemDeleted, index)); #endif -#if SILVERLIGHT || !(NET20 || NET35) +#if SILVERLIGHT || !(NET20 || NET35 || PORTABLE40) if (_collectionChanged != null) OnCollectionChanged(new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Remove, item, index)); #endif @@ -448,11 +450,11 @@ namespace Newtonsoft.Json.Linq existing.Previous = null; existing.Next = null; -#if !(SILVERLIGHT || NETFX_CORE || PORTABLE) +#if !(SILVERLIGHT || NETFX_CORE || PORTABLE || PORTABLE40) if (_listChanged != null) OnListChanged(new ListChangedEventArgs(ListChangedType.ItemChanged, index)); #endif -#if SILVERLIGHT || !(NET20 || NET35) +#if SILVERLIGHT || !(NET20 || NET35 || PORTABLE40) if (_collectionChanged != null) OnCollectionChanged(new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Replace, item, existing, index)); #endif @@ -471,11 +473,11 @@ namespace Newtonsoft.Json.Linq ChildrenTokens.Clear(); -#if !(SILVERLIGHT || NETFX_CORE || PORTABLE) +#if !(SILVERLIGHT || NETFX_CORE || PORTABLE40 || PORTABLE) if (_listChanged != null) OnListChanged(new ListChangedEventArgs(ListChangedType.Reset, -1)); #endif -#if SILVERLIGHT || !(NET20 || NET35) +#if SILVERLIGHT || !(NET20 || NET35 || PORTABLE40) if (_collectionChanged != null) OnCollectionChanged(new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Reset)); #endif @@ -745,7 +747,7 @@ namespace Newtonsoft.Json.Linq return hashCode; } -#if !(SILVERLIGHT || NETFX_CORE || PORTABLE) +#if !(SILVERLIGHT || NETFX_CORE || PORTABLE40 || PORTABLE) string ITypedList.GetListName(PropertyDescriptor[] listAccessors) { return string.Empty; @@ -924,7 +926,7 @@ namespace Newtonsoft.Json.Linq #region IBindingList Members -#if !(SILVERLIGHT || NETFX_CORE || PORTABLE) +#if !(SILVERLIGHT || NETFX_CORE || PORTABLE || PORTABLE40) void IBindingList.AddIndex(PropertyDescriptor property) { } diff --git a/Src/Newtonsoft.Json/Linq/JObject.cs b/Src/Newtonsoft.Json/Linq/JObject.cs index 455902e2..7ba340d5 100644 --- a/Src/Newtonsoft.Json/Linq/JObject.cs +++ b/Src/Newtonsoft.Json/Linq/JObject.cs @@ -26,9 +26,11 @@ using System; using System.Collections.Generic; using System.Collections.ObjectModel; +#if !PORTABLE40 using System.Collections.Specialized; +#endif using System.ComponentModel; -#if !(NET35 || NET20) +#if !(NET35 || NET20 || PORTABLE40) using System.Dynamic; using System.Linq.Expressions; #endif @@ -50,10 +52,10 @@ namespace Newtonsoft.Json.Linq /// /// public class JObject : JContainer, IDictionary, INotifyPropertyChanged -#if !(SILVERLIGHT || NETFX_CORE || PORTABLE) +#if !(SILVERLIGHT || NETFX_CORE || PORTABLE40 || PORTABLE) , ICustomTypeDescriptor #endif -#if !(SILVERLIGHT || NET20 || NETFX_CORE || PORTABLE) +#if !(SILVERLIGHT || NET20 || NETFX_CORE || PORTABLE40 || PORTABLE) , INotifyPropertyChanging #endif { @@ -73,7 +75,7 @@ namespace Newtonsoft.Json.Linq /// public event PropertyChangedEventHandler PropertyChanged; -#if !(SILVERLIGHT || NET20 || NETFX_CORE || PORTABLE) +#if !(SILVERLIGHT || NET20 || NETFX_CORE || PORTABLE || PORTABLE40) /// /// Occurs when a property value is changing. /// @@ -156,11 +158,11 @@ namespace Newtonsoft.Json.Linq internal void InternalPropertyChanged(JProperty childProperty) { OnPropertyChanged(childProperty.Name); -#if !(SILVERLIGHT || NETFX_CORE || PORTABLE) +#if !(SILVERLIGHT || NETFX_CORE || PORTABLE40 || PORTABLE) if (_listChanged != null) OnListChanged(new ListChangedEventArgs(ListChangedType.ItemChanged, IndexOfItem(childProperty))); #endif -#if SILVERLIGHT || !(NET20 || NET35) +#if SILVERLIGHT || !(NET20 || NET35 || PORTABLE40) if (_collectionChanged != null) OnCollectionChanged(new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Replace, childProperty, childProperty, IndexOfItem(childProperty))); #endif @@ -168,7 +170,7 @@ namespace Newtonsoft.Json.Linq internal void InternalPropertyChanging(JProperty childProperty) { -#if !(SILVERLIGHT || NET20 || NETFX_CORE || PORTABLE) +#if !(SILVERLIGHT || NET20 || NETFX_CORE || PORTABLE40 || PORTABLE) OnPropertyChanging(childProperty.Name); #endif } @@ -271,7 +273,7 @@ namespace Newtonsoft.Json.Linq } else { -#if !(SILVERLIGHT || NET20 || NETFX_CORE || PORTABLE) +#if !(SILVERLIGHT || NET20 || NETFX_CORE || PORTABLE40 || PORTABLE) OnPropertyChanging(propertyName); #endif Add(new JProperty(propertyName, value)); @@ -584,7 +586,7 @@ namespace Newtonsoft.Json.Linq PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); } -#if !(SILVERLIGHT || NETFX_CORE || PORTABLE || NET20) +#if !(SILVERLIGHT || NETFX_CORE || PORTABLE40 || PORTABLE || NET20) /// /// Raises the event with the provided arguments. /// @@ -596,7 +598,7 @@ namespace Newtonsoft.Json.Linq } #endif -#if !(SILVERLIGHT || NETFX_CORE || PORTABLE) +#if !(SILVERLIGHT || NETFX_CORE || PORTABLE40 || PORTABLE) // include custom type descriptor on JObject rather than use a provider because the properties are specific to a type #region ICustomTypeDescriptor /// @@ -755,7 +757,7 @@ namespace Newtonsoft.Json.Linq #endregion #endif -#if !(NET35 || NET20) +#if !(NET35 || NET20 || PORTABLE40) /// /// Returns the responsible for binding operations performed on this object. /// diff --git a/Src/Newtonsoft.Json/Linq/JPropertyDescriptor.cs b/Src/Newtonsoft.Json/Linq/JPropertyDescriptor.cs index 6f2282ba..377f6e8c 100644 --- a/Src/Newtonsoft.Json/Linq/JPropertyDescriptor.cs +++ b/Src/Newtonsoft.Json/Linq/JPropertyDescriptor.cs @@ -23,7 +23,7 @@ // OTHER DEALINGS IN THE SOFTWARE. #endregion -#if !(SILVERLIGHT || NETFX_CORE || PORTABLE) +#if !(SILVERLIGHT || NETFX_CORE || PORTABLE || PORTABLE40) using System; using System.ComponentModel; using Newtonsoft.Json.Utilities; diff --git a/Src/Newtonsoft.Json/Linq/JToken.cs b/Src/Newtonsoft.Json/Linq/JToken.cs index 5dee3ce6..1aa8f5df 100644 --- a/Src/Newtonsoft.Json/Linq/JToken.cs +++ b/Src/Newtonsoft.Json/Linq/JToken.cs @@ -25,12 +25,12 @@ using System; using System.Collections.Generic; -#if !(NET35 || NET20) +#if !(NET35 || NET20 || PORTABLE40) using System.Dynamic; using System.Linq.Expressions; #endif using System.IO; -#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE) +#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE40 || PORTABLE) using System.Numerics; #endif using System.Text; @@ -50,11 +50,11 @@ namespace Newtonsoft.Json.Linq /// Represents an abstract JSON token. /// public abstract class JToken : IJEnumerable, IJsonLineInfo -#if !(SILVERLIGHT || NETFX_CORE || PORTABLE) -, ICloneable +#if !(SILVERLIGHT || NETFX_CORE || PORTABLE40 || PORTABLE) + , ICloneable #endif -#if !(NET35 || NET20) -, IDynamicMetaObjectProvider +#if !(NET35 || NET20 || PORTABLE40) + , IDynamicMetaObjectProvider #endif { private JContainer _parent; @@ -455,7 +455,7 @@ namespace Newtonsoft.Json.Linq if (v == null || !ValidateToken(v, BooleanTypes, false)) throw new ArgumentException("Can not convert {0} to Boolean.".FormatWith(CultureInfo.InvariantCulture, GetType(value))); -#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE) +#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE40 || PORTABLE) if (v.Value is BigInteger) return Convert.ToBoolean((int)(BigInteger)v.Value); #endif @@ -497,7 +497,7 @@ namespace Newtonsoft.Json.Linq if (v == null || !ValidateToken(v, BooleanTypes, true)) throw new ArgumentException("Can not convert {0} to Boolean.".FormatWith(CultureInfo.InvariantCulture, GetType(value))); -#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE) +#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE40 || PORTABLE) if (v.Value is BigInteger) return Convert.ToBoolean((int)(BigInteger)v.Value); #endif @@ -516,7 +516,7 @@ namespace Newtonsoft.Json.Linq if (v == null || !ValidateToken(v, NumberTypes, false)) throw new ArgumentException("Can not convert {0} to Int64.".FormatWith(CultureInfo.InvariantCulture, GetType(value))); -#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE) +#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE40 || PORTABLE) if (v.Value is BigInteger) return (long)(BigInteger)v.Value; #endif @@ -585,7 +585,7 @@ namespace Newtonsoft.Json.Linq if (v == null || !ValidateToken(v, NumberTypes, true)) throw new ArgumentException("Can not convert {0} to Decimal.".FormatWith(CultureInfo.InvariantCulture, GetType(value))); -#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE) +#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE40 || PORTABLE) if (v.Value is BigInteger) return (decimal?)(BigInteger)v.Value; #endif @@ -607,7 +607,7 @@ namespace Newtonsoft.Json.Linq if (v == null || !ValidateToken(v, NumberTypes, true)) throw new ArgumentException("Can not convert {0} to Double.".FormatWith(CultureInfo.InvariantCulture, GetType(value))); -#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE) +#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE40 || PORTABLE) if (v.Value is BigInteger) return (double?)(BigInteger)v.Value; #endif @@ -629,7 +629,7 @@ namespace Newtonsoft.Json.Linq if (v == null || !ValidateToken(v, CharTypes, true)) throw new ArgumentException("Can not convert {0} to Char.".FormatWith(CultureInfo.InvariantCulture, GetType(value))); -#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE) +#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE40 || PORTABLE) if (v.Value is BigInteger) return (char?)(BigInteger)v.Value; #endif @@ -648,7 +648,7 @@ namespace Newtonsoft.Json.Linq if (v == null || !ValidateToken(v, NumberTypes, false)) throw new ArgumentException("Can not convert {0} to Int32.".FormatWith(CultureInfo.InvariantCulture, GetType(value))); -#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE) +#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE40 || PORTABLE) if (v.Value is BigInteger) return (int)(BigInteger)v.Value; #endif @@ -667,7 +667,7 @@ namespace Newtonsoft.Json.Linq if (v == null || !ValidateToken(v, NumberTypes, false)) throw new ArgumentException("Can not convert {0} to Int16.".FormatWith(CultureInfo.InvariantCulture, GetType(value))); -#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE) +#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE40 || PORTABLE) if (v.Value is BigInteger) return (short)(BigInteger)v.Value; #endif @@ -687,7 +687,7 @@ namespace Newtonsoft.Json.Linq if (v == null || !ValidateToken(v, NumberTypes, false)) throw new ArgumentException("Can not convert {0} to UInt16.".FormatWith(CultureInfo.InvariantCulture, GetType(value))); -#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE) +#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE40 || PORTABLE) if (v.Value is BigInteger) return (ushort)(BigInteger)v.Value; #endif @@ -707,7 +707,7 @@ namespace Newtonsoft.Json.Linq if (v == null || !ValidateToken(v, CharTypes, false)) throw new ArgumentException("Can not convert {0} to Char.".FormatWith(CultureInfo.InvariantCulture, GetType(value))); -#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE) +#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE40 || PORTABLE) if (v.Value is BigInteger) return (char)(BigInteger)v.Value; #endif @@ -726,7 +726,7 @@ namespace Newtonsoft.Json.Linq if (v == null || !ValidateToken(v, NumberTypes, false)) throw new ArgumentException("Can not convert {0} to Byte.".FormatWith(CultureInfo.InvariantCulture, GetType(value))); -#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE) +#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE40 || PORTABLE) if (v.Value is BigInteger) return (byte)(BigInteger)v.Value; #endif @@ -748,7 +748,7 @@ namespace Newtonsoft.Json.Linq if (v == null || !ValidateToken(v, NumberTypes, true)) throw new ArgumentException("Can not convert {0} to Int32.".FormatWith(CultureInfo.InvariantCulture, GetType(value))); -#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE) +#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE40 || PORTABLE) if (v.Value is BigInteger) return (int?)(BigInteger)v.Value; #endif @@ -770,7 +770,7 @@ namespace Newtonsoft.Json.Linq if (v == null || !ValidateToken(v, NumberTypes, true)) throw new ArgumentException("Can not convert {0} to Int16.".FormatWith(CultureInfo.InvariantCulture, GetType(value))); -#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE) +#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE40 || PORTABLE) if (v.Value is BigInteger) return (short?)(BigInteger)v.Value; #endif @@ -793,7 +793,7 @@ namespace Newtonsoft.Json.Linq if (v == null || !ValidateToken(v, NumberTypes, true)) throw new ArgumentException("Can not convert {0} to UInt16.".FormatWith(CultureInfo.InvariantCulture, GetType(value))); -#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE) +#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE40 || PORTABLE) if (v.Value is BigInteger) return (ushort?)(BigInteger)v.Value; #endif @@ -815,7 +815,7 @@ namespace Newtonsoft.Json.Linq if (v == null || !ValidateToken(v, NumberTypes, true)) throw new ArgumentException("Can not convert {0} to Byte.".FormatWith(CultureInfo.InvariantCulture, GetType(value))); -#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE) +#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE40 || PORTABLE) if (v.Value is BigInteger) return (byte?)(BigInteger)v.Value; #endif @@ -856,7 +856,7 @@ namespace Newtonsoft.Json.Linq if (v == null || !ValidateToken(v, NumberTypes, true)) throw new ArgumentException("Can not convert {0} to Int64.".FormatWith(CultureInfo.InvariantCulture, GetType(value))); -#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE) +#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE40 || PORTABLE) if (v.Value is BigInteger) return (long?)(BigInteger)v.Value; #endif @@ -878,7 +878,7 @@ namespace Newtonsoft.Json.Linq if (v == null || !ValidateToken(v, NumberTypes, true)) throw new ArgumentException("Can not convert {0} to Single.".FormatWith(CultureInfo.InvariantCulture, GetType(value))); -#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE) +#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE40 || PORTABLE) if (v.Value is BigInteger) return (float?)(BigInteger)v.Value; #endif @@ -897,7 +897,7 @@ namespace Newtonsoft.Json.Linq if (v == null || !ValidateToken(v, NumberTypes, false)) throw new ArgumentException("Can not convert {0} to Decimal.".FormatWith(CultureInfo.InvariantCulture, GetType(value))); -#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE) +#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE40 || PORTABLE) if (v.Value is BigInteger) return (decimal)(BigInteger)v.Value; #endif @@ -920,7 +920,7 @@ namespace Newtonsoft.Json.Linq if (v == null || !ValidateToken(v, NumberTypes, true)) throw new ArgumentException("Can not convert {0} to UInt32.".FormatWith(CultureInfo.InvariantCulture, GetType(value))); -#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE) +#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE40 || PORTABLE) if (v.Value is BigInteger) return (uint?)(BigInteger)v.Value; #endif @@ -943,7 +943,7 @@ namespace Newtonsoft.Json.Linq if (v == null || !ValidateToken(v, NumberTypes, true)) throw new ArgumentException("Can not convert {0} to UInt64.".FormatWith(CultureInfo.InvariantCulture, GetType(value))); -#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE) +#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE40 || PORTABLE) if (v.Value is BigInteger) return (ulong?)(BigInteger)v.Value; #endif @@ -962,7 +962,7 @@ namespace Newtonsoft.Json.Linq if (v == null || !ValidateToken(v, NumberTypes, false)) throw new ArgumentException("Can not convert {0} to Double.".FormatWith(CultureInfo.InvariantCulture, GetType(value))); -#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE) +#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE40 || PORTABLE) if (v.Value is BigInteger) return (double) (BigInteger) v.Value; #endif @@ -981,7 +981,7 @@ namespace Newtonsoft.Json.Linq if (v == null || !ValidateToken(v, NumberTypes, false)) throw new ArgumentException("Can not convert {0} to Single.".FormatWith(CultureInfo.InvariantCulture, GetType(value))); -#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE) +#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE40 || PORTABLE) if (v.Value is BigInteger) return (float)(BigInteger)v.Value; #endif @@ -1007,7 +1007,7 @@ namespace Newtonsoft.Json.Linq return null; if (v.Value is byte[]) return Convert.ToBase64String((byte[]) v.Value); -#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE) +#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE40 || PORTABLE) if (v.Value is BigInteger) return ((BigInteger)v.Value).ToString(CultureInfo.InvariantCulture); #endif @@ -1027,7 +1027,7 @@ namespace Newtonsoft.Json.Linq if (v == null || !ValidateToken(v, NumberTypes, false)) throw new ArgumentException("Can not convert {0} to UInt32.".FormatWith(CultureInfo.InvariantCulture, GetType(value))); -#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE) +#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE40 || PORTABLE) if (v.Value is BigInteger) return (uint)(BigInteger)v.Value; #endif @@ -1047,7 +1047,7 @@ namespace Newtonsoft.Json.Linq if (v == null || !ValidateToken(v, NumberTypes, false)) throw new ArgumentException("Can not convert {0} to UInt64.".FormatWith(CultureInfo.InvariantCulture, GetType(value))); -#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE) +#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE40 || PORTABLE) if (v.Value is BigInteger) return (ulong)(BigInteger)v.Value; #endif @@ -1071,7 +1071,7 @@ namespace Newtonsoft.Json.Linq if (v.Value is string) return Convert.FromBase64String(Convert.ToString(v.Value, CultureInfo.InvariantCulture)); -#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE) +#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE40 || PORTABLE) if (v.Value is BigInteger) return ((BigInteger)v.Value).ToByteArray(); #endif @@ -1170,7 +1170,7 @@ namespace Newtonsoft.Json.Linq return (v.Value is Uri) ? (Uri)v.Value : new Uri(Convert.ToString(v.Value, CultureInfo.InvariantCulture)); } -#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE) +#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE40 || PORTABLE) /// /// Performs an explicit conversion from to . /// @@ -1415,7 +1415,7 @@ namespace Newtonsoft.Json.Linq return new JValue(value); } -#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE) +#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE40 || PORTABLE) /// /// Performs an implicit conversion from to . /// @@ -1489,7 +1489,7 @@ namespace Newtonsoft.Json.Linq return new JValue(value); } -#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE) +#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE40 || PORTABLE) /// /// Performs an implicit conversion from to . /// @@ -1714,7 +1714,7 @@ namespace Newtonsoft.Json.Linq return (TimeSpan?)this; case PrimitiveTypeCode.TimeSpan: return (TimeSpan)this; -#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE) +#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE40 || PORTABLE) case PrimitiveTypeCode.BigIntegerNullable: return (BigInteger?)this; case PrimitiveTypeCode.BigInteger: @@ -1881,7 +1881,7 @@ namespace Newtonsoft.Json.Linq return p.Evaluate(this, errorWhenNoMatch); } -#if !(NET35 || NET20) +#if !(NET35 || NET20 || PORTABLE40) /// /// Returns the responsible for binding operations performed on this object. /// @@ -1907,7 +1907,7 @@ namespace Newtonsoft.Json.Linq } #endif -#if !(SILVERLIGHT || NETFX_CORE || PORTABLE) +#if !(SILVERLIGHT || NETFX_CORE || PORTABLE || PORTABLE40) object ICloneable.Clone() { return DeepClone(); diff --git a/Src/Newtonsoft.Json/Linq/JTokenWriter.cs b/Src/Newtonsoft.Json/Linq/JTokenWriter.cs index 27feebdf..67728c0a 100644 --- a/Src/Newtonsoft.Json/Linq/JTokenWriter.cs +++ b/Src/Newtonsoft.Json/Linq/JTokenWriter.cs @@ -25,7 +25,7 @@ using System; using System.Globalization; -#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE) +#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE40 || PORTABLE) using System.Numerics; #endif using Newtonsoft.Json.Utilities; @@ -330,7 +330,7 @@ namespace Newtonsoft.Json.Linq { base.WriteValue(value); string s = null; -#if !(NETFX_CORE || PORTABLE) +#if !(NETFX_CORE || PORTABLE40 || PORTABLE) s = value.ToString(CultureInfo.InvariantCulture); #else s = value.ToString(); @@ -432,7 +432,7 @@ namespace Newtonsoft.Json.Linq AddValue(value, JsonToken.String); } -#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE) +#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE || PORTABLE40) /// /// Writes a value. /// diff --git a/Src/Newtonsoft.Json/Linq/JValue.cs b/Src/Newtonsoft.Json/Linq/JValue.cs index 264a1130..c090a5a8 100644 --- a/Src/Newtonsoft.Json/Linq/JValue.cs +++ b/Src/Newtonsoft.Json/Linq/JValue.cs @@ -27,11 +27,11 @@ using System; using System.Collections.Generic; using Newtonsoft.Json.Utilities; using System.Globalization; -#if !(NET35 || NET20) +#if !(NET35 || NET20 || PORTABLE40) using System.Dynamic; using System.Linq.Expressions; #endif -#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE) +#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE40 || PORTABLE) using System.Numerics; #endif @@ -194,7 +194,7 @@ namespace Newtonsoft.Json.Linq get { return false; } } -#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE) +#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE40 || PORTABLE) private static int CompareBigInteger(BigInteger i1, object i2) { int result = i1.CompareTo(ConvertUtils.ToBigInteger(i2)); @@ -231,7 +231,7 @@ namespace Newtonsoft.Json.Linq switch (valueType) { case JTokenType.Integer: -#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE) +#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE40 || PORTABLE) if (objA is BigInteger) return CompareBigInteger((BigInteger)objA, objB); if (objB is BigInteger) @@ -244,7 +244,7 @@ namespace Newtonsoft.Json.Linq else return Convert.ToInt64(objA, CultureInfo.InvariantCulture).CompareTo(Convert.ToInt64(objB, CultureInfo.InvariantCulture)); case JTokenType.Float: -#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE) +#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE40 || PORTABLE) if (objA is BigInteger) return CompareBigInteger((BigInteger)objA, objB); if (objB is BigInteger) @@ -347,7 +347,7 @@ namespace Newtonsoft.Json.Linq return d1.CompareTo(d2); } -#if !(NET35 || NET20) +#if !(NET35 || NET20 || PORTABLE40) private static bool Operation(ExpressionType operation, object objA, object objB, out object result) { if (objA is string || objB is string) @@ -359,7 +359,7 @@ namespace Newtonsoft.Json.Linq } } -#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE) +#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE40 || PORTABLE) if (objA is BigInteger || objB is BigInteger) { if (objA == null || objB == null) @@ -524,7 +524,7 @@ namespace Newtonsoft.Json.Linq { if (value == null) return JTokenType.Null; -#if !(NETFX_CORE || PORTABLE) +#if !(NETFX_CORE || PORTABLE40 || PORTABLE) else if (value == DBNull.Value) return JTokenType.Null; #endif @@ -535,7 +535,7 @@ namespace Newtonsoft.Json.Linq return JTokenType.Integer; else if (value is Enum) return JTokenType.Integer; -#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE) +#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE40 || PORTABLE) else if (value is BigInteger) return JTokenType.Integer; #endif @@ -637,12 +637,12 @@ namespace Newtonsoft.Json.Linq writer.WriteUndefined(); return; case JTokenType.Integer: -#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE) +#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE40 || PORTABLE) if (_value is BigInteger) writer.WriteValue((BigInteger)_value); else #endif - writer.WriteValue(Convert.ToInt64(_value, CultureInfo.InvariantCulture)); + writer.WriteValue(Convert.ToInt64(_value, CultureInfo.InvariantCulture)); return; case JTokenType.Float: if (_value is decimal) @@ -802,7 +802,7 @@ namespace Newtonsoft.Json.Linq return _value.ToString(); } -#if !(NET35 || NET20) +#if !(NET35 || NET20 || PORTABLE40) /// /// Returns the responsible for binding operations performed on this object. /// @@ -929,7 +929,7 @@ namespace Newtonsoft.Json.Linq if (_value is DateTimeOffset) return TypeCode.DateTime; #endif -#if !(NET20 || NET35 || SILVERLIGHT) +#if !(NET20 || NET35 || PORTABLE40 || SILVERLIGHT) if (_value is BigInteger) return TypeCode.Object; #endif diff --git a/Src/Newtonsoft.Json/Properties/AssemblyInfo.cs b/Src/Newtonsoft.Json/Properties/AssemblyInfo.cs index 6358d699..4f8c96a8 100644 --- a/Src/Newtonsoft.Json/Properties/AssemblyInfo.cs +++ b/Src/Newtonsoft.Json/Properties/AssemblyInfo.cs @@ -36,6 +36,8 @@ using System.Security; [assembly: AssemblyTitle("Json.NET Windows Phone")] #elif SILVERLIGHT [assembly: AssemblyTitle("Json.NET Silverlight")] +#elif PORTABLE40 +[assembly: AssemblyTitle("Json.NET Portable .NET 4.0")] #elif PORTABLE [assembly: AssemblyTitle("Json.NET Portable")] #elif NETFX_CORE @@ -70,7 +72,7 @@ using System.Security; [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] -#if !PORTABLE +#if !(PORTABLE40 || PORTABLE) // Setting ComVisible to false makes the types in this assembly not visible // to COM componenets. If you need to access a type in this assembly from // COM, set the ComVisible attribute to true on that type. @@ -90,6 +92,6 @@ using System.Security; // You can specify all the values or you can default the Revision and Build Numbers // by using the '*' as shown below: [assembly: AssemblyVersion("4.5.0.0")] -[assembly: AssemblyFileVersion("5.0.1.16001")] +[assembly: AssemblyFileVersion("5.0.1.16006")] [assembly: CLSCompliant(true)] diff --git a/Src/Newtonsoft.Json/Schema/JsonSchemaException.cs b/Src/Newtonsoft.Json/Schema/JsonSchemaException.cs index 3fc70a5f..448bd4a4 100644 --- a/Src/Newtonsoft.Json/Schema/JsonSchemaException.cs +++ b/Src/Newtonsoft.Json/Schema/JsonSchemaException.cs @@ -31,7 +31,7 @@ namespace Newtonsoft.Json.Schema /// /// Returns detailed information about the schema exception. /// -#if !(SILVERLIGHT || WINDOWS_PHONE || NETFX_CORE || PORTABLE) +#if !(SILVERLIGHT || WINDOWS_PHONE || NETFX_CORE || PORTABLE40 || PORTABLE) [Serializable] #endif public class JsonSchemaException : JsonException @@ -83,7 +83,7 @@ namespace Newtonsoft.Json.Schema { } - #if !(WINDOWS_PHONE || SILVERLIGHT || NETFX_CORE || PORTABLE) +#if !(WINDOWS_PHONE || SILVERLIGHT || NETFX_CORE || PORTABLE40 || PORTABLE) /// /// Initializes a new instance of the class. /// diff --git a/Src/Newtonsoft.Json/Schema/JsonSchemaGenerator.cs b/Src/Newtonsoft.Json/Schema/JsonSchemaGenerator.cs index 6f552ce7..f48b5f6a 100644 --- a/Src/Newtonsoft.Json/Schema/JsonSchemaGenerator.cs +++ b/Src/Newtonsoft.Json/Schema/JsonSchemaGenerator.cs @@ -179,7 +179,7 @@ namespace Newtonsoft.Json.Schema if (containerAttribute != null && !string.IsNullOrEmpty(containerAttribute.Description)) return containerAttribute.Description; -#if !(NETFX_CORE || PORTABLE) +#if !(NETFX_CORE || PORTABLE40 || PORTABLE) DescriptionAttribute descriptionAttribute = ReflectionUtils.GetAttribute(type); if (descriptionAttribute != null) return descriptionAttribute.Description; diff --git a/Src/Newtonsoft.Json/Serialization/DefaultContractResolver.cs b/Src/Newtonsoft.Json/Serialization/DefaultContractResolver.cs index b581f5ba..f09e2878 100644 --- a/Src/Newtonsoft.Json/Serialization/DefaultContractResolver.cs +++ b/Src/Newtonsoft.Json/Serialization/DefaultContractResolver.cs @@ -25,18 +25,18 @@ using System; using System.Collections; -#if !(NET35 || NET20 || SILVERLIGHT || PORTABLE) +#if !(NET35 || NET20 || SILVERLIGHT || PORTABLE || PORTABLE40) using System.Collections.Concurrent; #endif using System.Collections.Generic; using System.ComponentModel; -#if !(NET35 || NET20) +#if !(NET35 || NET20 || PORTABLE40) using System.Dynamic; #endif using System.Globalization; using System.Reflection; using System.Runtime.Serialization; -#if !(NETFX_CORE || PORTABLE) +#if !(NETFX_CORE || PORTABLE || PORTABLE40) using System.Security.Permissions; #endif using System.Xml.Serialization; @@ -94,16 +94,16 @@ namespace Newtonsoft.Json.Serialization } private static readonly IList BuiltInConverters = new List { -#if !(SILVERLIGHT || NET20 || NETFX_CORE || PORTABLE) +#if !(SILVERLIGHT || NET20 || NETFX_CORE || PORTABLE40 || PORTABLE) new EntityKeyMemberConverter(), #endif -#if !(NET35 || NET20) +#if !(NET35 || NET20 || PORTABLE40) new ExpandoObjectConverter(), #endif -#if (!(SILVERLIGHT) || WINDOWS_PHONE) +#if (!(SILVERLIGHT || PORTABLE40) || WINDOWS_PHONE) new XmlNodeConverter(), #endif -#if !(SILVERLIGHT || NETFX_CORE || PORTABLE) +#if !(SILVERLIGHT || NETFX_CORE || PORTABLE40 || PORTABLE) new BinaryConverter(), new DataSetConverter(), new DataTableConverter(), @@ -133,7 +133,7 @@ namespace Newtonsoft.Json.Serialization get { return JsonTypeReflector.DynamicCodeGeneration; } } -#if !(NETFX_CORE || PORTABLE) +#if !(NETFX_CORE || PORTABLE40 || PORTABLE) /// /// Gets or sets the default members search flags. /// @@ -373,7 +373,7 @@ namespace Newtonsoft.Json.Serialization } else if (contract.MemberSerialization == MemberSerialization.Fields) { -#if !(SILVERLIGHT || NETFX_CORE || PORTABLE) +#if !(SILVERLIGHT || NETFX_CORE || PORTABLE40 || PORTABLE) // mimic DataContractSerializer behaviour when populating fields by overriding default creator to create an uninitialized object // note that this is only possible when the application is fully trusted so fall back to using the default constructor (if available) in partial trust if (JsonTypeReflector.FullyTrusted) @@ -571,7 +571,7 @@ namespace Newtonsoft.Json.Serialization if (onDeserialized != null) { // ConcurrentDictionary throws an error here so don't use its OnDeserialized - http://json.codeplex.com/discussions/257093 -#if !(NET35 || NET20 || SILVERLIGHT || WINDOWS_PHONE || PORTABLE) +#if !(NET35 || NET20 || SILVERLIGHT || WINDOWS_PHONE || PORTABLE || PORTABLE40) if (!t.IsGenericType() || (t.GetGenericTypeDefinition() != typeof(ConcurrentDictionary<,>))) contract.OnDeserializedCallbacks.AddRange(onDeserialized); #else @@ -715,7 +715,7 @@ namespace Newtonsoft.Json.Serialization return contract; } -#if !(SILVERLIGHT || NETFX_CORE || PORTABLE) +#if !(SILVERLIGHT || NETFX_CORE || PORTABLE40 || PORTABLE) /// /// Creates a for the given type. /// @@ -738,7 +738,7 @@ namespace Newtonsoft.Json.Serialization } #endif -#if !(NET35 || NET20) +#if !(NET35 || NET20 || PORTABLE40) /// /// Creates a for the given type. /// @@ -802,12 +802,12 @@ namespace Newtonsoft.Json.Serialization if (CanConvertToString(t)) return CreateStringContract(objectType); -#if !(SILVERLIGHT || NETFX_CORE || PORTABLE) +#if !(SILVERLIGHT || NETFX_CORE || PORTABLE40 || PORTABLE) if (!IgnoreSerializableInterface && typeof(ISerializable).IsAssignableFrom(t)) return CreateISerializableContract(objectType); #endif -#if !(NET35 || NET20) +#if !(NET35 || NET20 || PORTABLE40) if (typeof(IDynamicMetaObjectProvider).IsAssignableFrom(t)) return CreateDynamicContract(objectType); #endif @@ -817,7 +817,7 @@ namespace Newtonsoft.Json.Serialization internal static bool CanConvertToString(Type type) { -#if !(NETFX_CORE || PORTABLE) +#if !(NETFX_CORE || PORTABLE40 || PORTABLE) TypeConverter converter = ConvertUtils.GetConverter(type); // use the objectType's TypeConverter if it has one and can convert to a string @@ -921,7 +921,7 @@ namespace Newtonsoft.Json.Serialization // warning - this method use to cause errors with Intellitrace. Retest in VS Ultimate after changes IValueProvider valueProvider; -#if !(SILVERLIGHT || PORTABLE || NETFX_CORE) +#if !(SILVERLIGHT || PORTABLE40 || PORTABLE || NETFX_CORE) if (DynamicCodeGeneration) valueProvider = new DynamicValueProvider(member); else @@ -1018,10 +1018,10 @@ namespace Newtonsoft.Json.Serialization bool hasJsonIgnoreAttribute = JsonTypeReflector.GetAttribute(attributeProvider) != null -#if !(SILVERLIGHT || NETFX_CORE || PORTABLE) +#if !(SILVERLIGHT || NETFX_CORE || PORTABLE40 || PORTABLE) || JsonTypeReflector.GetAttribute(attributeProvider) != null #endif - ; +; if (memberSerialization != MemberSerialization.OptIn) { diff --git a/Src/Newtonsoft.Json/Serialization/DefaultSerializationBinder.cs b/Src/Newtonsoft.Json/Serialization/DefaultSerializationBinder.cs index 3ce9000f..1d743665 100644 --- a/Src/Newtonsoft.Json/Serialization/DefaultSerializationBinder.cs +++ b/Src/Newtonsoft.Json/Serialization/DefaultSerializationBinder.cs @@ -49,7 +49,7 @@ namespace Newtonsoft.Json.Serialization { Assembly assembly; -#if !(SILVERLIGHT || NETFX_CORE || PORTABLE) +#if !(SILVERLIGHT || NETFX_CORE || PORTABLE40 || PORTABLE) // look, I don't like using obsolete methods as much as you do but this is the only way // Assembly.Load won't check the GAC for a partial name #pragma warning disable 618,612 diff --git a/Src/Newtonsoft.Json/Serialization/DiagnosticsTraceWriter.cs b/Src/Newtonsoft.Json/Serialization/DiagnosticsTraceWriter.cs index f9555b98..96c75a95 100644 --- a/Src/Newtonsoft.Json/Serialization/DiagnosticsTraceWriter.cs +++ b/Src/Newtonsoft.Json/Serialization/DiagnosticsTraceWriter.cs @@ -1,4 +1,4 @@ -#if !(SILVERLIGHT || PORTABLE || NETFX_CORE) +#if !(SILVERLIGHT || PORTABLE40 || PORTABLE || NETFX_CORE) using System; using System.Diagnostics; using DiagnosticsTrace = System.Diagnostics.Trace; diff --git a/Src/Newtonsoft.Json/Serialization/DynamicValueProvider.cs b/Src/Newtonsoft.Json/Serialization/DynamicValueProvider.cs index a6d178f5..bb6a93d6 100644 --- a/Src/Newtonsoft.Json/Serialization/DynamicValueProvider.cs +++ b/Src/Newtonsoft.Json/Serialization/DynamicValueProvider.cs @@ -23,7 +23,7 @@ // OTHER DEALINGS IN THE SOFTWARE. #endregion -#if !(SILVERLIGHT || PORTABLE || NETFX_CORE) +#if !(SILVERLIGHT || PORTABLE40 || PORTABLE || NETFX_CORE) using System; using System.Collections.Generic; #if NET20 diff --git a/Src/Newtonsoft.Json/Serialization/JsonArrayContract.cs b/Src/Newtonsoft.Json/Serialization/JsonArrayContract.cs index ed948493..f0631c22 100644 --- a/Src/Newtonsoft.Json/Serialization/JsonArrayContract.cs +++ b/Src/Newtonsoft.Json/Serialization/JsonArrayContract.cs @@ -110,7 +110,7 @@ namespace Newtonsoft.Json.Serialization || ReflectionUtils.IsGenericDefinition(underlyingType, typeof(IList<>))) CreatedType = ReflectionUtils.MakeGenericType(typeof(List<>), CollectionItemType); -#if !(NET20 || NET35) +#if !(NET20 || NET35 || PORTABLE40) if (ReflectionUtils.IsGenericDefinition(underlyingType, typeof(ISet<>))) CreatedType = ReflectionUtils.MakeGenericType(typeof(HashSet<>), CollectionItemType); #endif @@ -119,7 +119,7 @@ namespace Newtonsoft.Json.Serialization canDeserialize = true; ShouldCreateWrapper = true; } -#if !(NET40 || NET35 || NET20 || SILVERLIGHT || WINDOWS_PHONE) +#if !(NET40 || NET35 || NET20 || SILVERLIGHT || WINDOWS_PHONE || PORTABLE40) else if (ReflectionUtils.ImplementsGenericDefinition(underlyingType, typeof (IReadOnlyCollection<>), out tempCollectionType)) { CollectionItemType = underlyingType.GetGenericArguments()[0]; diff --git a/Src/Newtonsoft.Json/Serialization/JsonDictionaryContract.cs b/Src/Newtonsoft.Json/Serialization/JsonDictionaryContract.cs index 0ec48de6..6c6ccae0 100644 --- a/Src/Newtonsoft.Json/Serialization/JsonDictionaryContract.cs +++ b/Src/Newtonsoft.Json/Serialization/JsonDictionaryContract.cs @@ -90,7 +90,7 @@ namespace Newtonsoft.Json.Serialization if (ReflectionUtils.IsGenericDefinition(UnderlyingType, typeof(IDictionary<,>))) CreatedType = ReflectionUtils.MakeGenericType(typeof(Dictionary<,>), keyType, valueType); } -#if !(NET40 || NET35 || NET20 || SILVERLIGHT || WINDOWS_PHONE) +#if !(NET40 || NET35 || NET20 || SILVERLIGHT || WINDOWS_PHONE || PORTABLE40) else if (ReflectionUtils.ImplementsGenericDefinition(underlyingType, typeof(IReadOnlyDictionary<,>), out _genericCollectionDefinitionType)) { keyType = _genericCollectionDefinitionType.GetGenericArguments()[0]; diff --git a/Src/Newtonsoft.Json/Serialization/JsonDynamicContract.cs b/Src/Newtonsoft.Json/Serialization/JsonDynamicContract.cs index 0d9abc3b..6092dbf3 100644 --- a/Src/Newtonsoft.Json/Serialization/JsonDynamicContract.cs +++ b/Src/Newtonsoft.Json/Serialization/JsonDynamicContract.cs @@ -23,7 +23,7 @@ // OTHER DEALINGS IN THE SOFTWARE. #endregion -#if !(NET35 || NET20) +#if !(NET35 || NET20 || PORTABLE40) using System; using System.Collections.Generic; using System.Dynamic; diff --git a/Src/Newtonsoft.Json/Serialization/JsonFormatterConverter.cs b/Src/Newtonsoft.Json/Serialization/JsonFormatterConverter.cs index 4ecbdb21..e6a5533c 100644 --- a/Src/Newtonsoft.Json/Serialization/JsonFormatterConverter.cs +++ b/Src/Newtonsoft.Json/Serialization/JsonFormatterConverter.cs @@ -23,7 +23,7 @@ // OTHER DEALINGS IN THE SOFTWARE. #endregion -#if !(SILVERLIGHT || NETFX_CORE || PORTABLE) +#if !(SILVERLIGHT || NETFX_CORE || PORTABLE40 || PORTABLE) using System; using System.Globalization; using System.Runtime.Serialization; diff --git a/Src/Newtonsoft.Json/Serialization/JsonObjectContract.cs b/Src/Newtonsoft.Json/Serialization/JsonObjectContract.cs index 0a4806d3..545e5d97 100644 --- a/Src/Newtonsoft.Json/Serialization/JsonObjectContract.cs +++ b/Src/Newtonsoft.Json/Serialization/JsonObjectContract.cs @@ -119,7 +119,7 @@ namespace Newtonsoft.Json.Serialization ConstructorParameters = new JsonPropertyCollection(UnderlyingType); } -#if !(SILVERLIGHT || NETFX_CORE || PORTABLE) +#if !(SILVERLIGHT || NETFX_CORE || PORTABLE40 || PORTABLE) #if !(NET20 || NET35) [SecuritySafeCritical] #endif diff --git a/Src/Newtonsoft.Json/Serialization/JsonPrimitiveContract.cs b/Src/Newtonsoft.Json/Serialization/JsonPrimitiveContract.cs index 35c2973b..ed54fc98 100644 --- a/Src/Newtonsoft.Json/Serialization/JsonPrimitiveContract.cs +++ b/Src/Newtonsoft.Json/Serialization/JsonPrimitiveContract.cs @@ -24,7 +24,7 @@ #endregion using System; -#if !(PORTABLE || NET35 || NET20 || WINDOWS_PHONE || SILVERLIGHT) +#if !(PORTABLE || PORTABLE40 || NET35 || NET20 || WINDOWS_PHONE || SILVERLIGHT) using System.Numerics; #endif using Newtonsoft.Json.Utilities; diff --git a/Src/Newtonsoft.Json/Serialization/JsonSerializerInternalReader.cs b/Src/Newtonsoft.Json/Serialization/JsonSerializerInternalReader.cs index 5be873ed..d27f27ce 100644 --- a/Src/Newtonsoft.Json/Serialization/JsonSerializerInternalReader.cs +++ b/Src/Newtonsoft.Json/Serialization/JsonSerializerInternalReader.cs @@ -27,13 +27,13 @@ using System; using System.Collections; using System.Collections.Generic; using System.Collections.ObjectModel; -#if !(NET35 || NET20) +#if !(NET35 || NET20 || PORTABLE40) using System.ComponentModel; using System.Dynamic; #endif using System.Diagnostics; using System.Globalization; -#if !(PORTABLE || NET35 || NET20 || SILVERLIGHT) +#if !(PORTABLE || PORTABLE40 || NET35 || NET20 || SILVERLIGHT) using System.Numerics; #endif using System.Reflection; @@ -58,7 +58,7 @@ namespace Newtonsoft.Json.Serialization } private JsonSerializerProxy _internalSerializer; -#if !(SILVERLIGHT || NETFX_CORE || PORTABLE) +#if !(SILVERLIGHT || NETFX_CORE || PORTABLE40 || PORTABLE) private JsonFormatterConverter _formatterConverter; #endif @@ -187,7 +187,7 @@ namespace Newtonsoft.Json.Serialization return _internalSerializer; } -#if !(SILVERLIGHT || NETFX_CORE || PORTABLE) +#if !(SILVERLIGHT || NETFX_CORE || PORTABLE40 || PORTABLE) private JsonFormatterConverter GetFormatterConverter() { if (_formatterConverter == null) @@ -276,7 +276,7 @@ namespace Newtonsoft.Json.Serialization return EnsureType(reader, constructorName, CultureInfo.InvariantCulture, contract, objectType); case JsonToken.Null: case JsonToken.Undefined: -#if !(NETFX_CORE || PORTABLE) +#if !(NETFX_CORE || PORTABLE40 || PORTABLE) if (objectType == typeof (DBNull)) return DBNull.Value; #endif @@ -443,12 +443,12 @@ namespace Newtonsoft.Json.Serialization return targetDictionary; } -#if !(NET35 || NET20) +#if !(NET35 || NET20 || PORTABLE40) case JsonContractType.Dynamic: JsonDynamicContract dynamicContract = (JsonDynamicContract) contract; return CreateDynamic(reader, dynamicContract, member, id); #endif -#if !(SILVERLIGHT || NETFX_CORE || PORTABLE) +#if !(SILVERLIGHT || NETFX_CORE || PORTABLE40 || PORTABLE) case JsonContractType.Serializable: JsonISerializableContract serializableContract = (JsonISerializableContract) contract; return CreateISerializable(reader, serializableContract, id); @@ -540,7 +540,7 @@ To fix this error either change the JSON to a {1} or change the deserialized typ TraceWriter.Trace(TraceLevel.Verbose, JsonPosition.FormatMessage(reader as IJsonLineInfo, reader.Path, "Resolved type '{0}' to {1}.".FormatWith(CultureInfo.InvariantCulture, qualifiedTypeName, specifiedType)), null); if (objectType != null -#if !(NET35 || NET20) +#if !(NET35 || NET20 || PORTABLE40) && objectType != typeof (IDynamicMetaObjectProvider) #endif && !objectType.IsAssignableFrom(specifiedType)) @@ -669,7 +669,7 @@ To fix this error either change the JSON to a {1} or change the deserialized typ private bool HasDefinedType(Type type) { return (type != null && type != typeof (object) && !typeof (JToken).IsSubclassOf(type) -#if !(NET35 || NET20) +#if !(NET35 || NET20 || PORTABLE40) && type != typeof (IDynamicMetaObjectProvider) #endif ); @@ -703,7 +703,7 @@ To fix this error either change the JSON to a {1} or change the deserialized typ return Enum.ToObject(contract.NonNullableUnderlyingType, value); } -#if !(PORTABLE || NET35 || NET20 || SILVERLIGHT) +#if !(PORTABLE || PORTABLE40 || NET35 || NET20 || SILVERLIGHT) if (value is BigInteger) return ConvertUtils.FromBigInteger((BigInteger)value, targetType); #endif @@ -1262,7 +1262,7 @@ To fix this error either change the JSON to a {1} or change the deserialized typ return underlyingList; } -#if !(SILVERLIGHT || NETFX_CORE || PORTABLE) +#if !(SILVERLIGHT || NETFX_CORE || PORTABLE40 || PORTABLE) private object CreateISerializable(JsonReader reader, JsonISerializableContract contract, string id) { Type objectType = contract.UnderlyingType; @@ -1320,7 +1320,7 @@ To fix this error either change the environment to be fully trusted, change the } #endif -#if !(NET35 || NET20) +#if !(NET35 || NET20 || PORTABLE40) private object CreateDynamic(JsonReader reader, JsonDynamicContract contract, JsonProperty member, string id) { IDynamicMetaObjectProvider newObject; diff --git a/Src/Newtonsoft.Json/Serialization/JsonSerializerInternalWriter.cs b/Src/Newtonsoft.Json/Serialization/JsonSerializerInternalWriter.cs index b1d6e8e0..a446de9d 100644 --- a/Src/Newtonsoft.Json/Serialization/JsonSerializerInternalWriter.cs +++ b/Src/Newtonsoft.Json/Serialization/JsonSerializerInternalWriter.cs @@ -27,7 +27,7 @@ using System; using System.Collections; using System.Collections.Generic; using System.ComponentModel; -#if !(NET35 || NET20) +#if !(NET35 || NET20 || PORTABLE40) using System.Dynamic; #endif using System.Diagnostics; @@ -148,12 +148,12 @@ namespace Newtonsoft.Json.Serialization JsonDictionaryContract dictionaryContract = (JsonDictionaryContract) valueContract; SerializeDictionary(writer, (value is IDictionary) ? (IDictionary) value : dictionaryContract.CreateWrapper(value), dictionaryContract, member, containerContract, containerProperty); break; -#if !(NET35 || NET20) +#if !(NET35 || NET20 || PORTABLE40) case JsonContractType.Dynamic: SerializeDynamic(writer, (IDynamicMetaObjectProvider)value, (JsonDynamicContract)valueContract, member, containerContract, containerProperty); break; #endif -#if !(SILVERLIGHT || NETFX_CORE || PORTABLE) +#if !(SILVERLIGHT || NETFX_CORE || PORTABLE40 || PORTABLE) case JsonContractType.Serializable: SerializeISerializable(writer, (ISerializable)value, (JsonISerializableContract)valueContract, member, containerContract, containerProperty); break; @@ -292,7 +292,7 @@ namespace Newtonsoft.Json.Serialization internal static bool TryConvertToString(object value, Type type, out string s) { -#if !(NETFX_CORE || PORTABLE) +#if !(NETFX_CORE || PORTABLE40 || PORTABLE) TypeConverter converter = ConvertUtils.GetConverter(type); // use the objectType's TypeConverter if it has one and can convert to a string @@ -671,7 +671,7 @@ namespace Newtonsoft.Json.Serialization return writeMetadataObject; } -#if !(SILVERLIGHT || NETFX_CORE || PORTABLE) +#if !(SILVERLIGHT || NETFX_CORE || PORTABLE40 || PORTABLE) #if !(NET20 || NET35) [SecuritySafeCritical] #endif @@ -709,7 +709,7 @@ To fix this error either change the environment to be fully trusted, change the } #endif -#if !(NET35 || NET20) +#if !(NET35 || NET20 || PORTABLE40) private void SerializeDynamic(JsonWriter writer, IDynamicMetaObjectProvider value, JsonDynamicContract contract, JsonProperty member, JsonContainerContract collectionContract, JsonProperty containerProperty) { OnSerializing(writer, contract, value); diff --git a/Src/Newtonsoft.Json/Serialization/JsonTypeReflector.cs b/Src/Newtonsoft.Json/Serialization/JsonTypeReflector.cs index fdbe6876..8ab59fa7 100644 --- a/Src/Newtonsoft.Json/Serialization/JsonTypeReflector.cs +++ b/Src/Newtonsoft.Json/Serialization/JsonTypeReflector.cs @@ -28,7 +28,7 @@ using System.ComponentModel; using System.Globalization; using System.Reflection; using System.Security; -#if !(NETFX_CORE || PORTABLE) +#if !(NETFX_CORE || PORTABLE || PORTABLE40) using System.Security.Permissions; #endif using Newtonsoft.Json.Utilities; @@ -63,7 +63,7 @@ namespace Newtonsoft.Json.Serialization public const string SpecifiedPostfix = "Specified"; private static readonly ThreadSafeStore JsonConverterTypeCache = new ThreadSafeStore(GetJsonConverterTypeFromAttribute); -#if !(SILVERLIGHT || NET20 || NETFX_CORE || PORTABLE) +#if !(SILVERLIGHT || NET20 || NETFX_CORE || PORTABLE40 || PORTABLE) private static readonly ThreadSafeStore AssociatedMetadataTypesCache = new ThreadSafeStore(GetAssociateMetadataTypeFromAttribute); private const string MetadataTypeAttributeTypeName = @@ -108,7 +108,7 @@ namespace Newtonsoft.Json.Serialization return GetJsonContainerAttribute(type) as JsonDictionaryAttribute; } -#if !(SILVERLIGHT || NETFX_CORE || PORTABLE) +#if !(SILVERLIGHT || NETFX_CORE || PORTABLE || PORTABLE40) public static SerializableAttribute GetSerializableAttribute(Type type) { return CachedAttributeGetter.GetAttribute(type); @@ -166,7 +166,7 @@ namespace Newtonsoft.Json.Serialization return MemberSerialization.OptIn; #endif -#if !(SILVERLIGHT || NETFX_CORE || PORTABLE) +#if !(SILVERLIGHT || NETFX_CORE || PORTABLE40 || PORTABLE) if (!ignoreSerializableAttribute) { SerializableAttribute serializableAttribute = GetSerializableAttribute(objectType); @@ -206,7 +206,7 @@ namespace Newtonsoft.Json.Serialization return null; } -#if !(NETFX_CORE || PORTABLE) +#if !(NETFX_CORE || PORTABLE40 || PORTABLE) public static TypeConverter GetTypeConverter(Type type) { #if !SILVERLIGHT @@ -222,7 +222,7 @@ namespace Newtonsoft.Json.Serialization } #endif -#if !(SILVERLIGHT || NET20 || NETFX_CORE || PORTABLE) +#if !(SILVERLIGHT || NET20 || NETFX_CORE || PORTABLE40 || PORTABLE) private static Type GetAssociatedMetadataType(Type type) { return AssociatedMetadataTypesCache.Get(type); @@ -267,7 +267,7 @@ namespace Newtonsoft.Json.Serialization { T attribute; -#if !(SILVERLIGHT || NET20 || NETFX_CORE || PORTABLE) +#if !(SILVERLIGHT || NET20 || NETFX_CORE || PORTABLE40 || PORTABLE) Type metadataType = GetAssociatedMetadataType(type); if (metadataType != null) { @@ -295,7 +295,7 @@ namespace Newtonsoft.Json.Serialization { T attribute; -#if !(SILVERLIGHT || NET20 || NETFX_CORE || PORTABLE) +#if !(SILVERLIGHT || NET20 || NETFX_CORE || PORTABLE40 || PORTABLE) Type metadataType = GetAssociatedMetadataType(memberInfo.DeclaringType); if (metadataType != null) { @@ -366,7 +366,7 @@ namespace Newtonsoft.Json.Serialization { if (_dynamicCodeGeneration == null) { -#if !(SILVERLIGHT || NETFX_CORE || PORTABLE) +#if !(SILVERLIGHT || NETFX_CORE || PORTABLE40 || PORTABLE) try { new ReflectionPermission(ReflectionPermissionFlag.MemberAccess).Demand(); @@ -395,9 +395,9 @@ namespace Newtonsoft.Json.Serialization { if (_fullyTrusted == null) { -#if (NETFX_CORE || SILVERLIGHT || PORTABLE) +#if (NETFX_CORE || SILVERLIGHT || PORTABLE || PORTABLE40) _fullyTrusted = false; -#elif !(NET20 || NET35) +#elif !(NET20 || NET35 || PORTABLE40) AppDomain appDomain = AppDomain.CurrentDomain; _fullyTrusted = appDomain.IsHomogenous && appDomain.IsFullyTrusted; @@ -422,7 +422,7 @@ namespace Newtonsoft.Json.Serialization { get { -#if !(SILVERLIGHT || PORTABLE || NETFX_CORE) +#if !(SILVERLIGHT || PORTABLE40 || PORTABLE || NETFX_CORE) if (DynamicCodeGeneration) return DynamicReflectionDelegateFactory.Instance; #endif diff --git a/Src/Newtonsoft.Json/SerializationBinder.cs b/Src/Newtonsoft.Json/SerializationBinder.cs index 69307475..864951e6 100644 --- a/Src/Newtonsoft.Json/SerializationBinder.cs +++ b/Src/Newtonsoft.Json/SerializationBinder.cs @@ -1,4 +1,4 @@ -#if SILVERLIGHT || PocketPC || NETFX_CORE || PORTABLE +#if SILVERLIGHT || PocketPC || NETFX_CORE || PORTABLE40 || PORTABLE using System; using System.Reflection; diff --git a/Src/Newtonsoft.Json/TraceLevel.cs b/Src/Newtonsoft.Json/TraceLevel.cs index cef37955..c6106b7d 100644 --- a/Src/Newtonsoft.Json/TraceLevel.cs +++ b/Src/Newtonsoft.Json/TraceLevel.cs @@ -1,4 +1,4 @@ -#if (NETFX_CORE || SILVERLIGHT || PORTABLE) +#if (NETFX_CORE || SILVERLIGHT || PORTABLE40 || PORTABLE) using Newtonsoft.Json.Serialization; namespace Newtonsoft.Json diff --git a/Src/Newtonsoft.Json/Utilities/CollectionUtils.cs b/Src/Newtonsoft.Json/Utilities/CollectionUtils.cs index d71ab96c..d9a9c8d4 100644 --- a/Src/Newtonsoft.Json/Utilities/CollectionUtils.cs +++ b/Src/Newtonsoft.Json/Utilities/CollectionUtils.cs @@ -106,7 +106,7 @@ namespace Newtonsoft.Json.Utilities return true; if (ReflectionUtils.ImplementsGenericDefinition(type, typeof(IDictionary<,>))) return true; -#if !(NET40 || NET35 || NET20 || SILVERLIGHT || WINDOWS_PHONE) +#if !(NET40 || NET35 || NET20 || SILVERLIGHT || WINDOWS_PHONE || PORTABLE40) if (ReflectionUtils.ImplementsGenericDefinition(type, typeof(IReadOnlyDictionary<,>))) return true; #endif diff --git a/Src/Newtonsoft.Json/Utilities/ConvertUtils.cs b/Src/Newtonsoft.Json/Utilities/ConvertUtils.cs index f7d6f903..5f77be20 100644 --- a/Src/Newtonsoft.Json/Utilities/ConvertUtils.cs +++ b/Src/Newtonsoft.Json/Utilities/ConvertUtils.cs @@ -27,7 +27,7 @@ using System; using System.Collections.Generic; using System.Globalization; using System.ComponentModel; -#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE) +#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE40 || PORTABLE) using System.Numerics; #endif using Newtonsoft.Json.Serialization; @@ -36,7 +36,7 @@ using System.Reflection; using Newtonsoft.Json.Utilities.LinqBridge; #endif -#if !(SILVERLIGHT || NETFX_CORE || PORTABLE) +#if !(SILVERLIGHT || NETFX_CORE || PORTABLE40 || PORTABLE) using System.Data.SqlTypes; #endif @@ -139,14 +139,14 @@ namespace Newtonsoft.Json.Utilities { typeof(Guid?), PrimitiveTypeCode.GuidNullable }, { typeof(TimeSpan), PrimitiveTypeCode.TimeSpan }, { typeof(TimeSpan?), PrimitiveTypeCode.TimeSpanNullable }, -#if !(PORTABLE || NET35 || NET20 || WINDOWS_PHONE || SILVERLIGHT) +#if !(PORTABLE || PORTABLE40 || NET35 || NET20 || WINDOWS_PHONE || SILVERLIGHT) { typeof(BigInteger), PrimitiveTypeCode.BigInteger }, { typeof(BigInteger?), PrimitiveTypeCode.BigIntegerNullable }, #endif { typeof(Uri), PrimitiveTypeCode.Uri }, { typeof(string), PrimitiveTypeCode.String }, { typeof(byte[]), PrimitiveTypeCode.Bytes }, -#if !(PORTABLE || NETFX_CORE) +#if !(PORTABLE || PORTABLE40 || NETFX_CORE) { typeof(DBNull), PrimitiveTypeCode.DBNull } #endif }; @@ -223,7 +223,7 @@ namespace Newtonsoft.Json.Utilities public static TimeSpan ParseTimeSpan(string input) { -#if !(NET35 || NET20) +#if !(NET35 || NET20 || PORTABLE40) return TimeSpan.Parse((string) input, CultureInfo.InvariantCulture); #else return TimeSpan.Parse((string)input); @@ -287,7 +287,7 @@ namespace Newtonsoft.Json.Utilities return o => call(null, o); } -#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE) +#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE || PORTABLE40) internal static BigInteger ToBigInteger(object value) { if (value is BigInteger) @@ -392,14 +392,14 @@ namespace Newtonsoft.Json.Utilities return ParseTimeSpan((string) initialValue); } -#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE) +#if !(NET20 || NET35 || SILVERLIGHT || PORTABLE40 || PORTABLE) if (targetType == typeof(BigInteger)) return ToBigInteger(initialValue); if (initialValue is BigInteger) return FromBigInteger((BigInteger)initialValue, targetType); #endif -#if !(NETFX_CORE || PORTABLE) +#if !(NETFX_CORE || PORTABLE40 || PORTABLE) // see if source or target types have a TypeConverter that converts between the two TypeConverter toConverter = GetConverter(initialType); @@ -423,7 +423,7 @@ namespace Newtonsoft.Json.Utilities #endif } #endif -#if !(NETFX_CORE || PORTABLE) +#if !(NETFX_CORE || PORTABLE40 || PORTABLE) // handle DBNull and INullable if (initialValue == DBNull.Value) { @@ -433,7 +433,7 @@ namespace Newtonsoft.Json.Utilities throw new Exception("Can not convert null {0} into non-nullable {1}.".FormatWith(CultureInfo.InvariantCulture, initialType, targetType)); } #endif -#if !(SILVERLIGHT || NETFX_CORE || PORTABLE) +#if !(SILVERLIGHT || NETFX_CORE || PORTABLE40 || PORTABLE) if (initialValue is INullable) return EnsureTypeAssignable(ToValue((INullable)initialValue), initialType, targetType); #endif @@ -520,7 +520,7 @@ namespace Newtonsoft.Json.Utilities throw new ArgumentException("Could not cast or convert from {0} to {1}.".FormatWith(CultureInfo.InvariantCulture, (initialType != null) ? initialType.ToString() : "{null}", targetType)); } -#if !(SILVERLIGHT || NETFX_CORE || PORTABLE) +#if !(SILVERLIGHT || NETFX_CORE || PORTABLE40 || PORTABLE) public static object ToValue(INullable nullableValue) { if (nullableValue == null) @@ -540,7 +540,7 @@ namespace Newtonsoft.Json.Utilities } #endif -#if !(NETFX_CORE || PORTABLE) +#if !(NETFX_CORE || PORTABLE40 || PORTABLE) internal static TypeConverter GetConverter(Type t) { return JsonTypeReflector.GetTypeConverter(t); diff --git a/Src/Newtonsoft.Json/Utilities/DateTimeUtils.cs b/Src/Newtonsoft.Json/Utilities/DateTimeUtils.cs index 9330c5bf..03b19c96 100644 --- a/Src/Newtonsoft.Json/Utilities/DateTimeUtils.cs +++ b/Src/Newtonsoft.Json/Utilities/DateTimeUtils.cs @@ -47,7 +47,7 @@ namespace Newtonsoft.Json.Utilities #endif } -#if !(NETFX_CORE || PORTABLE) +#if !(NETFX_CORE || PORTABLE40 || PORTABLE) public static XmlDateTimeSerializationMode ToSerializationMode(DateTimeKind kind) { switch (kind) diff --git a/Src/Newtonsoft.Json/Utilities/DictionaryWrapper.cs b/Src/Newtonsoft.Json/Utilities/DictionaryWrapper.cs index 699b0fba..d8954f82 100644 --- a/Src/Newtonsoft.Json/Utilities/DictionaryWrapper.cs +++ b/Src/Newtonsoft.Json/Utilities/DictionaryWrapper.cs @@ -45,7 +45,7 @@ namespace Newtonsoft.Json.Utilities { private readonly IDictionary _dictionary; private readonly IDictionary _genericDictionary; -#if !(NET40 || NET35 || NET20 || SILVERLIGHT || WINDOWS_PHONE) +#if !(NET40 || NET35 || NET20 || SILVERLIGHT || WINDOWS_PHONE || PORTABLE40) private readonly IReadOnlyDictionary _readOnlyDictionary; #endif private object _syncRoot; @@ -64,7 +64,7 @@ namespace Newtonsoft.Json.Utilities _genericDictionary = dictionary; } -#if !(NET40 || NET35 || NET20 || SILVERLIGHT || WINDOWS_PHONE) +#if !(NET40 || NET35 || NET20 || SILVERLIGHT || WINDOWS_PHONE || PORTABLE40) public DictionaryWrapper(IReadOnlyDictionary dictionary) { ValidationUtils.ArgumentNotNull(dictionary, "dictionary"); @@ -87,7 +87,7 @@ namespace Newtonsoft.Json.Utilities { if (_dictionary != null) return _dictionary.Contains(key); -#if !(NET40 || NET35 || NET20 || SILVERLIGHT || WINDOWS_PHONE) +#if !(NET40 || NET35 || NET20 || SILVERLIGHT || WINDOWS_PHONE || PORTABLE40) else if (_readOnlyDictionary != null) return _readOnlyDictionary.ContainsKey(key); #endif @@ -101,7 +101,7 @@ namespace Newtonsoft.Json.Utilities { if (_dictionary != null) return _dictionary.Keys.Cast().ToList(); -#if !(NET40 || NET35 || NET20 || SILVERLIGHT || WINDOWS_PHONE) +#if !(NET40 || NET35 || NET20 || SILVERLIGHT || WINDOWS_PHONE || PORTABLE40) else if (_readOnlyDictionary != null) return _readOnlyDictionary.Keys.ToList(); #endif @@ -124,7 +124,7 @@ namespace Newtonsoft.Json.Utilities return false; } } -#if !(NET40 || NET35 || NET20 || SILVERLIGHT || WINDOWS_PHONE) +#if !(NET40 || NET35 || NET20 || SILVERLIGHT || WINDOWS_PHONE || PORTABLE40) else if (_readOnlyDictionary != null) { throw new NotSupportedException(); @@ -151,7 +151,7 @@ namespace Newtonsoft.Json.Utilities return true; } } -#if !(NET40 || NET35 || NET20 || SILVERLIGHT || WINDOWS_PHONE) +#if !(NET40 || NET35 || NET20 || SILVERLIGHT || WINDOWS_PHONE || PORTABLE40) else if (_readOnlyDictionary != null) { throw new NotSupportedException(); @@ -169,7 +169,7 @@ namespace Newtonsoft.Json.Utilities { if (_dictionary != null) return _dictionary.Values.Cast().ToList(); -#if !(NET40 || NET35 || NET20 || SILVERLIGHT || WINDOWS_PHONE) +#if !(NET40 || NET35 || NET20 || SILVERLIGHT || WINDOWS_PHONE || PORTABLE40) else if (_readOnlyDictionary != null) return _readOnlyDictionary.Values.ToList(); #endif @@ -184,7 +184,7 @@ namespace Newtonsoft.Json.Utilities { if (_dictionary != null) return (TValue)_dictionary[key]; -#if !(NET40 || NET35 || NET20 || SILVERLIGHT || WINDOWS_PHONE) +#if !(NET40 || NET35 || NET20 || SILVERLIGHT || WINDOWS_PHONE || PORTABLE40) else if (_readOnlyDictionary != null) return _readOnlyDictionary[key]; #endif @@ -195,7 +195,7 @@ namespace Newtonsoft.Json.Utilities { if (_dictionary != null) _dictionary[key] = value; -#if !(NET40 || NET35 || NET20 || SILVERLIGHT || WINDOWS_PHONE) +#if !(NET40 || NET35 || NET20 || SILVERLIGHT || WINDOWS_PHONE || PORTABLE40) else if (_readOnlyDictionary != null) throw new NotSupportedException(); #endif @@ -208,7 +208,7 @@ namespace Newtonsoft.Json.Utilities { if (_dictionary != null) ((IList)_dictionary).Add(item); -#if !(NET40 || NET35 || NET20 || SILVERLIGHT || WINDOWS_PHONE) +#if !(NET40 || NET35 || NET20 || SILVERLIGHT || WINDOWS_PHONE || PORTABLE40) else if (_readOnlyDictionary != null) throw new NotSupportedException(); #endif @@ -220,7 +220,7 @@ namespace Newtonsoft.Json.Utilities { if (_dictionary != null) _dictionary.Clear(); -#if !(NET40 || NET35 || NET20 || SILVERLIGHT || WINDOWS_PHONE) +#if !(NET40 || NET35 || NET20 || SILVERLIGHT || WINDOWS_PHONE || PORTABLE40) else if (_readOnlyDictionary != null) throw new NotSupportedException(); #endif @@ -232,7 +232,7 @@ namespace Newtonsoft.Json.Utilities { if (_dictionary != null) return ((IList)_dictionary).Contains(item); -#if !(NET40 || NET35 || NET20 || SILVERLIGHT || WINDOWS_PHONE) +#if !(NET40 || NET35 || NET20 || SILVERLIGHT || WINDOWS_PHONE || PORTABLE40) else if (_readOnlyDictionary != null) return _readOnlyDictionary.Contains(item); #endif @@ -249,7 +249,7 @@ namespace Newtonsoft.Json.Utilities array[arrayIndex++] = new KeyValuePair((TKey)item.Key, (TValue)item.Value); } } -#if !(NET40 || NET35 || NET20 || SILVERLIGHT || WINDOWS_PHONE) +#if !(NET40 || NET35 || NET20 || SILVERLIGHT || WINDOWS_PHONE || PORTABLE40) else if (_readOnlyDictionary != null) { throw new NotSupportedException(); @@ -267,7 +267,7 @@ namespace Newtonsoft.Json.Utilities { if (_dictionary != null) return _dictionary.Count; -#if !(NET40 || NET35 || NET20 || SILVERLIGHT || WINDOWS_PHONE) +#if !(NET40 || NET35 || NET20 || SILVERLIGHT || WINDOWS_PHONE || PORTABLE40) else if (_readOnlyDictionary != null) return _readOnlyDictionary.Count; #endif @@ -282,7 +282,7 @@ namespace Newtonsoft.Json.Utilities { if (_dictionary != null) return _dictionary.IsReadOnly; -#if !(NET40 || NET35 || NET20 || SILVERLIGHT || WINDOWS_PHONE) +#if !(NET40 || NET35 || NET20 || SILVERLIGHT || WINDOWS_PHONE || PORTABLE40) else if (_readOnlyDictionary != null) return true; #endif @@ -314,7 +314,7 @@ namespace Newtonsoft.Json.Utilities return true; } } -#if !(NET40 || NET35 || NET20 || SILVERLIGHT || WINDOWS_PHONE) +#if !(NET40 || NET35 || NET20 || SILVERLIGHT || WINDOWS_PHONE || PORTABLE40) else if (_readOnlyDictionary != null) { throw new NotSupportedException(); @@ -330,7 +330,7 @@ namespace Newtonsoft.Json.Utilities { if (_dictionary != null) return _dictionary.Cast().Select(de => new KeyValuePair((TKey)de.Key, (TValue)de.Value)).GetEnumerator(); -#if !(NET40 || NET35 || NET20 || SILVERLIGHT || WINDOWS_PHONE) +#if !(NET40 || NET35 || NET20 || SILVERLIGHT || WINDOWS_PHONE || PORTABLE40) else if (_readOnlyDictionary != null) return _readOnlyDictionary.GetEnumerator(); #endif @@ -347,7 +347,7 @@ namespace Newtonsoft.Json.Utilities { if (_dictionary != null) _dictionary.Add(key, value); -#if !(NET40 || NET35 || NET20 || SILVERLIGHT || WINDOWS_PHONE) +#if !(NET40 || NET35 || NET20 || SILVERLIGHT || WINDOWS_PHONE || PORTABLE40) else if (_readOnlyDictionary != null) throw new NotSupportedException(); #endif @@ -361,7 +361,7 @@ namespace Newtonsoft.Json.Utilities { if (_dictionary != null) return _dictionary[key]; -#if !(NET40 || NET35 || NET20 || SILVERLIGHT || WINDOWS_PHONE) +#if !(NET40 || NET35 || NET20 || SILVERLIGHT || WINDOWS_PHONE || PORTABLE40) else if (_readOnlyDictionary != null) return _readOnlyDictionary[(TKey)key]; #endif @@ -372,7 +372,7 @@ namespace Newtonsoft.Json.Utilities { if (_dictionary != null) _dictionary[key] = value; -#if !(NET40 || NET35 || NET20 || SILVERLIGHT || WINDOWS_PHONE) +#if !(NET40 || NET35 || NET20 || SILVERLIGHT || WINDOWS_PHONE || PORTABLE40) else if (_readOnlyDictionary != null) throw new NotSupportedException(); #endif @@ -426,7 +426,7 @@ namespace Newtonsoft.Json.Utilities { if (_dictionary != null) return _dictionary.GetEnumerator(); -#if !(NET40 || NET35 || NET20 || SILVERLIGHT || WINDOWS_PHONE) +#if !(NET40 || NET35 || NET20 || SILVERLIGHT || WINDOWS_PHONE || PORTABLE40) else if (_readOnlyDictionary != null) return new DictionaryEnumerator(_readOnlyDictionary.GetEnumerator()); #endif @@ -438,7 +438,7 @@ namespace Newtonsoft.Json.Utilities { if (_genericDictionary != null) return _genericDictionary.ContainsKey((TKey)key); -#if !(NET40 || NET35 || NET20 || SILVERLIGHT || WINDOWS_PHONE) +#if !(NET40 || NET35 || NET20 || SILVERLIGHT || WINDOWS_PHONE || PORTABLE40) else if (_readOnlyDictionary != null) return _readOnlyDictionary.ContainsKey((TKey)key); #endif @@ -452,7 +452,7 @@ namespace Newtonsoft.Json.Utilities { if (_genericDictionary != null) return false; -#if !(NET40 || NET35 || NET20 || SILVERLIGHT || WINDOWS_PHONE) +#if !(NET40 || NET35 || NET20 || SILVERLIGHT || WINDOWS_PHONE || PORTABLE40) else if (_readOnlyDictionary != null) return true; #endif @@ -467,7 +467,7 @@ namespace Newtonsoft.Json.Utilities { if (_genericDictionary != null) return _genericDictionary.Keys.ToList(); -#if !(NET40 || NET35 || NET20 || SILVERLIGHT || WINDOWS_PHONE) +#if !(NET40 || NET35 || NET20 || SILVERLIGHT || WINDOWS_PHONE || PORTABLE40) else if (_readOnlyDictionary != null) return _readOnlyDictionary.Keys.ToList(); #endif @@ -480,7 +480,7 @@ namespace Newtonsoft.Json.Utilities { if (_dictionary != null) _dictionary.Remove(key); -#if !(NET40 || NET35 || NET20 || SILVERLIGHT || WINDOWS_PHONE) +#if !(NET40 || NET35 || NET20 || SILVERLIGHT || WINDOWS_PHONE || PORTABLE40) else if (_readOnlyDictionary != null) throw new NotSupportedException(); #endif @@ -494,7 +494,7 @@ namespace Newtonsoft.Json.Utilities { if (_genericDictionary != null) return _genericDictionary.Values.ToList(); -#if !(NET40 || NET35 || NET20 || SILVERLIGHT || WINDOWS_PHONE) +#if !(NET40 || NET35 || NET20 || SILVERLIGHT || WINDOWS_PHONE || PORTABLE40) else if (_readOnlyDictionary != null) return _readOnlyDictionary.Values.ToList(); #endif @@ -507,7 +507,7 @@ namespace Newtonsoft.Json.Utilities { if (_dictionary != null) _dictionary.CopyTo(array, index); -#if !(NET40 || NET35 || NET20 || SILVERLIGHT || WINDOWS_PHONE) +#if !(NET40 || NET35 || NET20 || SILVERLIGHT || WINDOWS_PHONE || PORTABLE40) else if (_readOnlyDictionary != null) throw new NotSupportedException(); #endif @@ -543,7 +543,7 @@ namespace Newtonsoft.Json.Utilities { if (_dictionary != null) return _dictionary; -#if !(NET40 || NET35 || NET20 || SILVERLIGHT || WINDOWS_PHONE) +#if !(NET40 || NET35 || NET20 || SILVERLIGHT || WINDOWS_PHONE || PORTABLE40) else if (_readOnlyDictionary != null) return _readOnlyDictionary; #endif diff --git a/Src/Newtonsoft.Json/Utilities/DynamicProxy.cs b/Src/Newtonsoft.Json/Utilities/DynamicProxy.cs index 4d3e342c..ca049e8a 100644 --- a/Src/Newtonsoft.Json/Utilities/DynamicProxy.cs +++ b/Src/Newtonsoft.Json/Utilities/DynamicProxy.cs @@ -23,7 +23,7 @@ // OTHER DEALINGS IN THE SOFTWARE. #endregion -#if !(NET35 || NET20) +#if !(NET35 || NET20 || PORTABLE40) using System; using System.Collections.Generic; using System.Dynamic; diff --git a/Src/Newtonsoft.Json/Utilities/DynamicProxyMetaObject.cs b/Src/Newtonsoft.Json/Utilities/DynamicProxyMetaObject.cs index d17e19e4..e20d7b6e 100644 --- a/Src/Newtonsoft.Json/Utilities/DynamicProxyMetaObject.cs +++ b/Src/Newtonsoft.Json/Utilities/DynamicProxyMetaObject.cs @@ -23,7 +23,7 @@ // OTHER DEALINGS IN THE SOFTWARE. #endregion -#if !(NET35 || NET20) +#if !(NET35 || NET20 || PORTABLE40) using System; using System.Collections.Generic; using System.Dynamic; diff --git a/Src/Newtonsoft.Json/Utilities/DynamicReflectionDelegateFactory.cs b/Src/Newtonsoft.Json/Utilities/DynamicReflectionDelegateFactory.cs index 8648d834..cf15db57 100644 --- a/Src/Newtonsoft.Json/Utilities/DynamicReflectionDelegateFactory.cs +++ b/Src/Newtonsoft.Json/Utilities/DynamicReflectionDelegateFactory.cs @@ -23,7 +23,7 @@ // OTHER DEALINGS IN THE SOFTWARE. #endregion -#if !(SILVERLIGHT || PORTABLE || NETFX_CORE) +#if !(SILVERLIGHT || PORTABLE || NETFX_CORE || PORTABLE40) using System; using System.Collections.Generic; #if NET20 diff --git a/Src/Newtonsoft.Json/Utilities/DynamicUtils.cs b/Src/Newtonsoft.Json/Utilities/DynamicUtils.cs index c76a739a..cd1a36dd 100644 --- a/Src/Newtonsoft.Json/Utilities/DynamicUtils.cs +++ b/Src/Newtonsoft.Json/Utilities/DynamicUtils.cs @@ -23,7 +23,7 @@ // OTHER DEALINGS IN THE SOFTWARE. #endregion -#if !(NET35 || NET20) +#if !(NET35 || NET20 || PORTABLE40) using System; using System.Collections.Generic; using System.Dynamic; diff --git a/Src/Newtonsoft.Json/Utilities/DynamicWrapper.cs b/Src/Newtonsoft.Json/Utilities/DynamicWrapper.cs index 9b9c384b..d65edf79 100644 --- a/Src/Newtonsoft.Json/Utilities/DynamicWrapper.cs +++ b/Src/Newtonsoft.Json/Utilities/DynamicWrapper.cs @@ -23,7 +23,7 @@ // OTHER DEALINGS IN THE SOFTWARE. #endregion -#if !(SILVERLIGHT || NETFX_CORE || PORTABLE) +#if !(SILVERLIGHT || NETFX_CORE || PORTABLE40 || PORTABLE) using System; using System.Collections.Generic; using System.IO; diff --git a/Src/Newtonsoft.Json/Utilities/ILGeneratorExtensions.cs b/Src/Newtonsoft.Json/Utilities/ILGeneratorExtensions.cs index b27a28d9..59fb4430 100644 --- a/Src/Newtonsoft.Json/Utilities/ILGeneratorExtensions.cs +++ b/Src/Newtonsoft.Json/Utilities/ILGeneratorExtensions.cs @@ -23,7 +23,7 @@ // OTHER DEALINGS IN THE SOFTWARE. #endregion -#if !(SILVERLIGHT || PORTABLE || NETFX_CORE) +#if !(SILVERLIGHT || PORTABLE40 || PORTABLE || NETFX_CORE) using System; using System.Reflection.Emit; using System.Reflection; diff --git a/Src/Newtonsoft.Json/Utilities/ReflectionUtils.cs b/Src/Newtonsoft.Json/Utilities/ReflectionUtils.cs index e1f75746..cd7dd980 100644 --- a/Src/Newtonsoft.Json/Utilities/ReflectionUtils.cs +++ b/Src/Newtonsoft.Json/Utilities/ReflectionUtils.cs @@ -25,7 +25,7 @@ using System; using System.Collections.Generic; -#if !(PORTABLE || NET35 || NET20 || WINDOWS_PHONE || SILVERLIGHT) +#if !(PORTABLE || PORTABLE40 || NET35 || NET20 || WINDOWS_PHONE || SILVERLIGHT) using System.Numerics; #endif using System.Reflection; @@ -43,7 +43,7 @@ using Newtonsoft.Json.Serialization; namespace Newtonsoft.Json.Utilities { -#if NETFX_CORE || PORTABLE +#if (NETFX_CORE || PORTABLE || PORTABLE40) internal enum MemberTypes { Property, @@ -52,7 +52,9 @@ namespace Newtonsoft.Json.Utilities Method, Other } +#endif +#if NETFX_CORE || PORTABLE [Flags] internal enum BindingFlags { @@ -85,7 +87,7 @@ namespace Newtonsoft.Json.Utilities static ReflectionUtils() { -#if !(NETFX_CORE || PORTABLE) +#if !(NETFX_CORE || PORTABLE40 || PORTABLE) EmptyTypes = Type.EmptyTypes; #else EmptyTypes = new Type[0]; @@ -690,13 +692,18 @@ namespace Newtonsoft.Json.Utilities if (provider is MemberInfo) return (T[])Attribute.GetCustomAttributes((MemberInfo)provider, typeof(T), inherit); +#if !PORTABLE40 if (provider is Module) return (T[])Attribute.GetCustomAttributes((Module)provider, typeof(T), inherit); +#endif if (provider is ParameterInfo) return (T[])Attribute.GetCustomAttributes((ParameterInfo)provider, typeof(T), inherit); +#if !PORTABLE40 return (T[])((ICustomAttributeProvider)attributeProvider).GetCustomAttributes(typeof(T), inherit); +#endif + throw new Exception("Cannot get attributes from '{0}'.".FormatWith(CultureInfo.InvariantCulture, provider)); } #else public static T[] GetAttributes(object provider, bool inherit) where T : Attribute @@ -954,7 +961,7 @@ namespace Newtonsoft.Json.Utilities return 0m; case PrimitiveTypeCode.DateTime: return new DateTime(); -#if !(PORTABLE || NET35 || NET20 || WINDOWS_PHONE || SILVERLIGHT) +#if !(PORTABLE || PORTABLE40 || NET35 || NET20 || WINDOWS_PHONE || SILVERLIGHT) case PrimitiveTypeCode.BigInteger: return new BigInteger(); #endif diff --git a/Src/Newtonsoft.Json/Utilities/StringUtils.cs b/Src/Newtonsoft.Json/Utilities/StringUtils.cs index 4f89601a..974afdae 100644 --- a/Src/Newtonsoft.Json/Utilities/StringUtils.cs +++ b/Src/Newtonsoft.Json/Utilities/StringUtils.cs @@ -182,7 +182,7 @@ namespace Newtonsoft.Json.Utilities public static bool IsHighSurrogate(char c) { -#if !(SILVERLIGHT || PORTABLE) +#if !(SILVERLIGHT || PORTABLE40 || PORTABLE) return char.IsHighSurrogate(c); #else return (c >= 55296 && c <= 56319); @@ -191,7 +191,7 @@ namespace Newtonsoft.Json.Utilities public static bool IsLowSurrogate(char c) { -#if !(SILVERLIGHT || PORTABLE) +#if !(SILVERLIGHT || PORTABLE40 || PORTABLE) return char.IsLowSurrogate(c); #else return (c >= 56320 && c <= 57343); diff --git a/Src/Newtonsoft.Json/Utilities/TypeExtensions.cs b/Src/Newtonsoft.Json/Utilities/TypeExtensions.cs index 1f79e967..b88b540c 100644 --- a/Src/Newtonsoft.Json/Utilities/TypeExtensions.cs +++ b/Src/Newtonsoft.Json/Utilities/TypeExtensions.cs @@ -89,7 +89,7 @@ namespace Newtonsoft.Json.Utilities public static MemberTypes MemberType(this MemberInfo memberInfo) { -#if !(NETFX_CORE || PORTABLE) +#if !(NETFX_CORE || PORTABLE || PORTABLE40) return memberInfo.MemberType; #else if (memberInfo is PropertyInfo) @@ -177,6 +177,41 @@ namespace Newtonsoft.Json.Utilities #endif } +#if PORTABLE40 + public static PropertyInfo GetProperty(this Type type, string name, BindingFlags bindingFlags, object placeholder1, Type propertyType, IList indexParameters, object placeholder2) + { + IList propertyInfos = type.GetProperties(bindingFlags); + + return propertyInfos.Where(p => + { + if (name != null && name != p.Name) + return false; + if (propertyType != null && propertyType != p.PropertyType) + return false; + if (indexParameters != null) + { + if (!p.GetIndexParameters().Select(ip => ip.ParameterType).SequenceEqual(indexParameters)) + return false; + } + + return true; + }).SingleOrDefault(); + } + + public static IEnumerable GetMember(this Type type, string name, MemberTypes memberType, BindingFlags bindingFlags) + { + return type.GetMembers(bindingFlags).Where(m => + { + if (name != null && name != m.Name) + return false; + if (m.MemberType() != memberType) + return false; + + return true; + }); + } +#endif + #if (NETFX_CORE || PORTABLE) public static MethodInfo GetBaseDefinition(this MethodInfo method) {