From 68533cdc19095b44479b3a925f61662ca964066d Mon Sep 17 00:00:00 2001 From: James Newton-King Date: Thu, 23 Mar 2017 21:04:04 +1300 Subject: [PATCH] -Additional JToken line info settings fixes --- Src/Newtonsoft.Json.Tests/Linq/JArrayTests.cs | 21 +++++++++++++++++-- Src/Newtonsoft.Json/Linq/JsonLoadSettings.cs | 9 ++++++++ 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/Src/Newtonsoft.Json.Tests/Linq/JArrayTests.cs b/Src/Newtonsoft.Json.Tests/Linq/JArrayTests.cs index 7cf72aa9..2e461a88 100644 --- a/Src/Newtonsoft.Json.Tests/Linq/JArrayTests.cs +++ b/Src/Newtonsoft.Json.Tests/Linq/JArrayTests.cs @@ -586,15 +586,32 @@ Parameter name: index"); { string json = "[1,2,3]"; - JArray a = JArray.Parse(json, new JsonLoadSettings + JArray a = JArray.Parse(json, new JsonLoadSettings()); + + Assert.AreEqual(true, ((IJsonLineInfo)a).HasLineInfo()); + Assert.AreEqual(true, ((IJsonLineInfo)a[0]).HasLineInfo()); + Assert.AreEqual(true, ((IJsonLineInfo)a[1]).HasLineInfo()); + Assert.AreEqual(true, ((IJsonLineInfo)a[2]).HasLineInfo()); + + a = JArray.Parse(json, new JsonLoadSettings { - LineInfoHandling = LineInfoHandling.Load + LineInfoHandling = LineInfoHandling.Ignore }); Assert.AreEqual(false, ((IJsonLineInfo)a).HasLineInfo()); Assert.AreEqual(false, ((IJsonLineInfo)a[0]).HasLineInfo()); Assert.AreEqual(false, ((IJsonLineInfo)a[1]).HasLineInfo()); Assert.AreEqual(false, ((IJsonLineInfo)a[2]).HasLineInfo()); + + a = JArray.Parse(json, new JsonLoadSettings + { + LineInfoHandling = LineInfoHandling.Load + }); + + Assert.AreEqual(true, ((IJsonLineInfo)a).HasLineInfo()); + Assert.AreEqual(true, ((IJsonLineInfo)a[0]).HasLineInfo()); + Assert.AreEqual(true, ((IJsonLineInfo)a[1]).HasLineInfo()); + Assert.AreEqual(true, ((IJsonLineInfo)a[2]).HasLineInfo()); } } } \ No newline at end of file diff --git a/Src/Newtonsoft.Json/Linq/JsonLoadSettings.cs b/Src/Newtonsoft.Json/Linq/JsonLoadSettings.cs index 5f2e70ff..de4aadd2 100644 --- a/Src/Newtonsoft.Json/Linq/JsonLoadSettings.cs +++ b/Src/Newtonsoft.Json/Linq/JsonLoadSettings.cs @@ -10,6 +10,15 @@ namespace Newtonsoft.Json.Linq private CommentHandling _commentHandling; private LineInfoHandling _lineInfoHandling; + /// + /// Initializes a new instance of the class. + /// + public JsonLoadSettings() + { + _lineInfoHandling = LineInfoHandling.Load; + _commentHandling = CommentHandling.Ignore; + } + /// /// Gets or sets how JSON comments are handled when loading JSON. ///