JSON.NET does not seem to want to serialize the GUID as its own BSU UUID, but instead displays the GUID as strings.
I tested BSON generation both from JObject (checking before serialization that JValue.Type == JTokenType.Guid ) and an anonymous type ( new { myUuid = new Guid() } ), in any case, no luck.
How to make JSON.NET serialize GUIDs as its own BSU UUID (16-byte binary value, subtype = 0x04)?
Code example:
var source = new { myInteger = 123L, myFloat = 10.0f, myString = "hello", myUuid = Guid.NewGuid(), myBytes = new byte[] { 1, 2, 3, 4, 5, 6, 7 }, myDatetime = DateTime.UtcNow, }; MemoryStream buffer = new MemoryStream(); BsonWriter writer = new BsonWriter(buffer); JsonSerializer serializer = new JsonSerializer(); serializer.Serialize(writer, source); byte[] myBson = buffer.ToArray();
source share