Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/Newtonsoft.Json.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'Src/Newtonsoft.Json/Bson/BsonReader.cs')
-rw-r--r--Src/Newtonsoft.Json/Bson/BsonReader.cs26
1 files changed, 24 insertions, 2 deletions
diff --git a/Src/Newtonsoft.Json/Bson/BsonReader.cs b/Src/Newtonsoft.Json/Bson/BsonReader.cs
index a36bb92..0d17885 100644
--- a/Src/Newtonsoft.Json/Bson/BsonReader.cs
+++ b/Src/Newtonsoft.Json/Bson/BsonReader.cs
@@ -193,7 +193,7 @@ namespace Newtonsoft.Json.Bson
if (TokenType == JsonToken.Null)
return null;
if (TokenType == JsonToken.Bytes)
- return (byte[]) Value;
+ return (byte[])Value;
if (ReaderIsSerializerInArray())
return null;
@@ -238,7 +238,7 @@ namespace Newtonsoft.Json.Bson
if (TokenType == JsonToken.Integer || TokenType == JsonToken.Float)
{
SetToken(JsonToken.Float, Convert.ToDecimal(Value, CultureInfo.InvariantCulture));
- return (decimal) Value;
+ return (decimal)Value;
}
if (ReaderIsSerializerInArray())
@@ -247,6 +247,28 @@ namespace Newtonsoft.Json.Bson
throw new JsonReaderException("Error reading decimal. Expected a number but got {0}.".FormatWith(CultureInfo.InvariantCulture, TokenType));
}
+ /// <summary>
+ /// Reads the next JSON token from the stream as a <see cref="Nullable{Int32}"/>.
+ /// </summary>
+ /// <returns>A <see cref="Nullable{Int32}"/>.</returns>
+ public override int? ReadAsInt32()
+ {
+ Read();
+
+ if (TokenType == JsonToken.Integer || TokenType == JsonToken.Float)
+ {
+ SetToken(JsonToken.Float, Convert.ToInt32(Value, CultureInfo.InvariantCulture));
+ return (int)Value;
+ }
+ if (TokenType == JsonToken.Null)
+ return null;
+
+ if (ReaderIsSerializerInArray())
+ return null;
+
+ throw new JsonReaderException("Error reading integer. Expected a number but got {0}.".FormatWith(CultureInfo.InvariantCulture, TokenType));
+ }
+
#if !NET20
/// <summary>
/// Reads the next JSON token from the stream as a <see cref="Nullable{DateTimeOffset}"/>.