本文整理汇总了C#中MongoDB.Bson.IO.BsonDocumentWriter类的典型用法代码示例。如果您正苦于以下问题:C# BsonDocumentWriter类的具体用法?C# BsonDocumentWriter怎么用?C# BsonDocumentWriter使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
BsonDocumentWriter类属于MongoDB.Bson.IO命名空间,在下文中一共展示了BsonDocumentWriter类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: TestNoCircularReference
public void TestNoCircularReference()
{
var c2 = new C { X = 2 };
var c1 = new C { X = 1, NestedDocument = c2 };
var json = c1.ToJson();
var expected = "{ 'X' : 1, 'NestedDocument' : { 'X' : 2, 'NestedDocument' : null, 'BsonArray' : { '_csharpnull' : true } }, 'BsonArray' : { '_csharpnull' : true } }".Replace("'", "\"");
Assert.AreEqual(expected, json);
var memoryStream = new MemoryStream();
using (var writer = new BsonBinaryWriter(memoryStream))
{
BsonSerializer.Serialize(writer, c1);
Assert.AreEqual(0, writer.SerializationDepth);
}
var document = new BsonDocument();
using (var writer = new BsonDocumentWriter(document))
{
BsonSerializer.Serialize(writer, c1);
Assert.AreEqual(0, writer.SerializationDepth);
}
var stringWriter = new StringWriter();
using (var writer = new JsonWriter(stringWriter))
{
BsonSerializer.Serialize(writer, c1);
Assert.AreEqual(0, writer.SerializationDepth);
}
}
示例2: Serialize
/// <summary>
///
/// </summary>
/// <param name="nominalType"></param>
/// <param name="value"></param>
/// <param name="options"></param>
/// <returns></returns>
public static BsonDocument Serialize(Type nominalType, object value, IBsonSerializationOptions options)
{
var document = new BsonDocument();
var writerSettings = new BsonDocumentWriterSettings();
var writer = new BsonDocumentWriter(document, writerSettings);
BsonSerializer.Serialize(writer, nominalType, value, options);
return document;
}
示例3: Serizalize
public BsonDocument Serizalize(IEvent @event)
{
if (@event == null) throw new ArgumentNullException(nameof(@event));
var document = new BsonDocument();
using (var writer = new BsonDocumentWriter(document))
{
BsonSerializer.Serialize(writer, @event);
}
return document;
}
示例4: TestOneEmptyArray
public void TestOneEmptyArray()
{
var document = new BsonDocument();
using (var writer = new BsonDocumentWriter(document))
{
writer.WriteStartDocument();
writer.WriteStartArray("a");
writer.WriteEndArray();
writer.WriteEndDocument();
}
var json = document.ToJson();
var expected = "{ 'a' : [] }".Replace("'", "\"");
Assert.Equal(expected, json);
}
示例5: SerializeValue
public static BsonValue SerializeValue(this ISerializationExpression field, object value)
{
Ensure.IsNotNull(field, nameof(field));
var tempDocument = new BsonDocument();
using (var bsonWriter = new BsonDocumentWriter(tempDocument))
{
var context = BsonSerializationContext.CreateRoot(bsonWriter);
bsonWriter.WriteStartDocument();
bsonWriter.WriteName("value");
field.Serializer.Serialize(context, value);
bsonWriter.WriteEndDocument();
return tempDocument[0];
}
}
示例6: TestTwoNestedEmptyArrays
public void TestTwoNestedEmptyArrays()
{
var document = new BsonDocument();
using (var writer = new BsonDocumentWriter(document))
{
writer.WriteStartDocument();
writer.WriteStartDocument("nested");
writer.WriteStartArray("a");
writer.WriteEndArray();
writer.WriteStartArray("b");
writer.WriteEndArray();
writer.WriteEndDocument();
writer.WriteEndDocument();
}
var json = document.ToJson();
var expected = "{ 'nested' : { 'a' : [], 'b' : [] } }".Replace("'", "\"");
Assert.AreEqual(expected, json);
}
示例7: TestArrayWithNestedArrayWithTwoElements
public void TestArrayWithNestedArrayWithTwoElements()
{
var document = new BsonDocument();
using (var writer = new BsonDocumentWriter(document))
{
writer.WriteStartDocument();
writer.WriteStartArray("a");
writer.WriteStartArray();
writer.WriteString("a");
writer.WriteString("b");
writer.WriteEndArray();
writer.WriteEndArray();
writer.WriteEndDocument();
}
var json = document.ToJson();
var expected = "{ 'a' : [['a', 'b']] }".Replace("'", "\"");
Assert.Equal(expected, json);
}
示例8: SerializeValues
public static BsonArray SerializeValues(this ISerializationExpression field, IEnumerable values)
{
var tempDocument = new BsonDocument();
using (var bsonWriter = new BsonDocumentWriter(tempDocument))
{
var context = BsonSerializationContext.CreateRoot(bsonWriter);
bsonWriter.WriteStartDocument();
bsonWriter.WriteName("values");
bsonWriter.WriteStartArray();
foreach (var value in values)
{
field.Serializer.Serialize(context, value);
}
bsonWriter.WriteEndArray();
bsonWriter.WriteEndDocument();
return (BsonArray)tempDocument[0];
}
}
示例9: TestSerializeDeserialize
public void TestSerializeDeserialize()
{
var path = "c:/a/b/c/f.txt";
var data = new Data
{
Path = new ParsedPath(path, PathType.File)
};
var doc = new BsonDocument();
using (var writer = new BsonDocumentWriter(doc, new BsonDocumentWriterSettings()))
{
BsonSerializer.Serialize(writer, data);
}
Assert.AreEqual(doc["Path"], new BsonString(path));
using (var reader = new BsonDocumentReader(doc, new BsonDocumentReaderSettings()))
{
data = BsonSerializer.Deserialize<Data>(doc);
}
Assert.AreEqual(data.Path, new ParsedPath(path, PathType.File));
}
示例10: TestTwoInt64s
public void TestTwoInt64s()
{
var document = new BsonDocument();
using (var writer = new BsonDocumentWriter(document))
{
writer.WriteStartDocument();
writer.WriteInt64("a", 1);
writer.WriteInt64("b", 2);
writer.WriteEndDocument();
}
var json = document.ToJson();
var expected = "{ 'a' : NumberLong(1), 'b' : NumberLong(2) }".Replace("'", "\""); ;
Assert.Equal(expected, json);
}
示例11: TestTwoDoubles
public void TestTwoDoubles()
{
var document = new BsonDocument();
using (var writer = new BsonDocumentWriter(document))
{
writer.WriteStartDocument();
writer.WriteDouble("a", 1.5);
writer.WriteDouble("b", 2.5);
writer.WriteEndDocument();
}
var json = document.ToJson();
var expected = "{ 'a' : 1.5, 'b' : 2.5 }".Replace("'", "\""); ;
Assert.Equal(expected, json);
}
示例12: TestTwoDateTimes
public void TestTwoDateTimes()
{
var document = new BsonDocument();
using (var writer = new BsonDocumentWriter(document))
{
writer.WriteStartDocument();
writer.WriteDateTime("a", 0);
writer.WriteDateTime("b", 0);
writer.WriteEndDocument();
}
var json = document.ToJson();
var expected = "{ 'a' : ISODate('1970-01-01T00:00:00Z'), 'b' : ISODate('1970-01-01T00:00:00Z') }".Replace("'", "\""); ;
Assert.Equal(expected, json);
}
示例13: TestTwoBooleans
public void TestTwoBooleans()
{
var document = new BsonDocument();
using (var writer = new BsonDocumentWriter(document))
{
writer.WriteStartDocument();
writer.WriteBoolean("a", true);
writer.WriteBoolean("b", false);
writer.WriteEndDocument();
}
var json = document.ToJson();
var expected = "{ 'a' : true, 'b' : false }".Replace("'", "\""); ;
Assert.Equal(expected, json);
}
示例14: TestTwoNestedTimestamps
public void TestTwoNestedTimestamps()
{
var document = new BsonDocument();
using (var writer = new BsonDocumentWriter(document))
{
writer.WriteStartDocument();
writer.WriteStartDocument("nested");
writer.WriteTimestamp("a", 1);
writer.WriteTimestamp("b", 2);
writer.WriteEndDocument();
writer.WriteEndDocument();
}
var json = document.ToJson();
var expected = "{ 'nested' : { 'a' : Timestamp(0, 1), 'b' : Timestamp(0, 2) } }".Replace("'", "\"");
Assert.Equal(expected, json);
}
示例15: TestTwoMinKeys
public void TestTwoMinKeys()
{
var document = new BsonDocument();
using (var writer = new BsonDocumentWriter(document))
{
writer.WriteStartDocument();
writer.WriteMinKey("a");
writer.WriteMinKey("b");
writer.WriteEndDocument();
}
var json = document.ToJson();
var expected = "{ 'a' : MinKey, 'b' : MinKey }".Replace("'", "\""); ;
Assert.Equal(expected, json);
}