-Fixed BsonWriter failing silently when writing values outside of an Object or Array

-Fixed serializer attempting to use dynamic code generation in partial trust
This commit is contained in:
JamesNK
2011-05-21 04:05:48 +00:00
parent 6b2238c39c
commit 76706c6cd2
5 changed files with 19 additions and 2 deletions
@@ -625,5 +625,18 @@ namespace Newtonsoft.Json.Tests.Bson
Assert.IsFalse(reader.Read());
}
[Test]
[ExpectedException(typeof(JsonWriterException), ExpectedMessage = "Error writing String value. BSON must start with an Object or Array.")]
public void WriteValueOutsideOfObjectOrArray()
{
MemoryStream stream = new MemoryStream();
using (BsonWriter writer = new BsonWriter(stream))
{
writer.WriteValue("test");
writer.Flush();
}
}
}
}
@@ -41,5 +41,5 @@ using System.Runtime.InteropServices;
// by using the '*' as shown below:
[assembly: AssemblyVersion("4.0.2.0")]
#if !PocketPC
[assembly: AssemblyFileVersion("4.0.2.13707")]
[assembly: AssemblyFileVersion("4.0.2.13721")]
#endif
+3
View File
@@ -199,6 +199,9 @@ namespace Newtonsoft.Json.Bson
}
else
{
if (token.Type != BsonType.Object && token.Type != BsonType.Array)
throw new JsonWriterException("Error writing {0} value. BSON must start with an Object or Array.".FormatWith(CultureInfo.InvariantCulture, token.Type));
_parent = token;
_root = token;
}
@@ -110,7 +110,7 @@ using System.Security;
// by using the '*' as shown below:
[assembly: AssemblyVersion("4.0.2.0")]
#if !PocketPC
[assembly: AssemblyFileVersion("4.0.2.13707")]
[assembly: AssemblyFileVersion("4.0.2.13721")]
#endif
[assembly: CLSCompliant(true)]
@@ -271,6 +271,7 @@ namespace Newtonsoft.Json.Serialization
new ReflectionPermission(ReflectionPermissionFlag.MemberAccess).Demand();
new ReflectionPermission(ReflectionPermissionFlag.RestrictedMemberAccess).Demand();
new SecurityPermission(SecurityPermissionFlag.UnmanagedCode).Demand();
new SecurityPermission(PermissionState.Unrestricted).Demand();
_dynamicCodeGeneration = true;
}
catch (Exception)