Json.net supports Bson however JValue convert every integer value to int64 bit..
In bson. int32 need 4 bytes and int64 need 8 bytes...so there is a room to improve it.
find JValue.cs
add a new constructor
public JValue(int value)
: this(value, JTokenType.Integer)
{ }
and then find
public override void WriteTo(JsonWriter writer, params JsonConverter[] converters)
add some codes here:
case JTokenType.Integer:
+ if (this._value is int)
+ {
+ writer.WriteValue(Convert.ToInt32(this._value, CultureInfo. InvariantCulture));
+ }
+ else
+ {
+ writer.WriteValue(Convert.ToInt64(_value, CultureInfo.InvariantCulture));
+ }
build it..it should work fine with bson from now on.